summaryrefslogtreecommitdiffstats
path: root/src/themes/serene/templates/post.html
diff options
context:
space:
mode:
Diffstat (limited to 'src/themes/serene/templates/post.html')
-rw-r--r--src/themes/serene/templates/post.html164
1 files changed, 164 insertions, 0 deletions
diff --git a/src/themes/serene/templates/post.html b/src/themes/serene/templates/post.html
new file mode 100644
index 0000000..07f9782
--- /dev/null
+++ b/src/themes/serene/templates/post.html
@@ -0,0 +1,164 @@
+{% extends "_base.html" %}
+
+{% block page %}post{% endblock page %}
+{% block lang -%}
+{%- set section = get_section(path=page.ancestors | last, metadata_only=true) -%}
+{%- if page.extra.lang %}{{page.extra.lang}}{% elif section.extra.lang %}{{section.extra.lang}}{% else %}{{page.lang}}{% endif -%}
+{%- endblock lang %}
+{% block title %}{{ page.title }}{% endblock title %}
+{% block desc %}
+ {%- set section = get_section(path=page.ancestors | last, metadata_only=true) -%}
+ {% if page.summary %}
+ {% set desc = page.summary %}
+ {% elif page.description %}
+ {% set desc = page.description %}
+ {% elif section.description %}
+ {% set desc = section.description %}
+ {% else %}
+ {% set desc = config.description %}
+ {% endif %}
+ {%- if page.extra.lang %}{% set og_lang = page.extra.lang %}{% elif section.extra.lang %}{% set og_lang = section.extra.lang %}{% else %}{% set og_lang = page.lang %}{% endif -%}
+ {{ <seo config
+ title={page.title}
+ desc={desc}
+ url={page.permalink}
+ page_type="article"
+ image={page.extra?.og_image or ""}
+ colocated_path={page.colocated_path or ""}
+ published={page.date or ""}
+ updated={page.updated or ""}
+ tags={page.taxonomies?.tags or []}
+ lang={og_lang} /> }}
+{% endblock desc %}
+
+{% block head %}
+{% if config.markdown.highlighting.style == "class" %}
+<link id="hl" rel="stylesheet" type="text/css" href="/giallo-{% if color_scheme == "dark" %}dark{% else %}light{% endif %}.css" />
+{% endif %}
+{% set enable_math = page.extra.math if page.extra.math is defined else (section.extra.math if section.extra.math is defined else (config.extra.math if config.extra.math is defined else false)) %}
+{% if enable_math %}
+<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.18.6/dist/katex.min.css" integrity="sha384-M59ezskvvpvT+a+C1x088YJ3DVmK+wZdX0UkVKalOI4Qi5Nwv0WrvpqHcfa2HQqB" crossorigin="anonymous">
+<script defer src="https://cdn.jsdelivr.net/npm/katex@0.18.6/dist/katex.min.js" integrity="sha384-7jGyG5zFwmEamqNWdCbpsPn+GTWEis3lnV7X/jXHyhFpJG7ExABLyMapabg8F4+p" crossorigin="anonymous"></script>
+<script defer src="https://cdn.jsdelivr.net/npm/katex@0.18.6/dist/contrib/auto-render.min.js" integrity="sha384-bjyGPfbij8/NDKJhSGZNP/khQVgtHUE5exjm4Ydllo42FwIgYsdLO2lXGmRBf5Mz" crossorigin="anonymous"></script>
+<script defer src="https://cdn.jsdelivr.net/npm/katex@0.18.6/dist/contrib/copy-tex.min.js" integrity="sha384-Pe2JWbaShhSRT0SESJ9XLPeAsi4yrNi7r/CiH0Coq7giBjK5a6Ae7XcybE8rNlQP" crossorigin="anonymous"></script>
+<script>
+ document.addEventListener("DOMContentLoaded", function () {
+ renderMathInElement(document.body, {
+ delimiters: [
+ { left: '$$', right: '$$', display: true },
+ { left: '$', right: '$', display: false },
+ { left: '\\(', right: '\\)', display: false },
+ { left: '\\[', right: '\\]', display: true }
+ ],
+ throwOnError: false
+ });
+ });
+</script>
+{% endif %}
+{% endblock head %}
+
+{% block content %}
+<div id="wrapper">
+ <div id="blank"></div>
+ <aside>
+ {% set show_toc = page.extra.toc if page.extra.toc is defined else (section.extra.toc if section.extra.toc is defined else (config.extra.toc if config.extra.toc is defined else false)) %}
+ {% if show_toc and page.toc %}
+ <nav>
+ <ul>
+ {% for h2 in page.toc %}
+ <li>
+ <a class="h2" href="#{{ h2.id | safe }}">{{ h2.title }}</a>
+ {% if h2.children %}
+ <ul>
+ {% for h3 in h2.children %}
+ <li>
+ <a class="h3" href="#{{ h3.id | safe }}">{{ h3.title }}</a>
+ </li>
+ {% endfor %}
+ </ul>
+ {% endif %}
+ </li>
+ {% endfor %}
+ </ul>
+ </nav>
+ {% endif %}
+ {% if section.extra.back_to_top %}
+ <button id="back-to-top" aria-label="back to top">
+ {% set icon = load_data(path="icon/arrow-up.svg") %}
+ {{ icon | safe }}
+ </button>
+ {% endif %}
+ </aside>
+ <main>
+ {{ <back_link path={get_url(path=section.path)} config /> }}
+
+ <div>
+ {% set allow_copy = page.extra.code_copy if page.extra.code_copy is defined else (section.extra.code_copy if section.extra.code_copy is defined else (config.extra.code_copy if config.extra.code_copy is defined else false)) %}
+ {% if allow_copy %}
+ {% set copy_icon = load_data(path="icon/copy.svg") %}
+ {% set check_icon = load_data(path="icon/check.svg") %}
+ <div id="copy-cfg" style="display: none;" data-copy-icon="{{ copy_icon }}" data-check-icon="{{ check_icon }}"></div>
+ {% endif %}
+ <article class="prose">
+ <h1>{{ page.title }}</h1>
+ {% set date_format = section.extra.date_format if section.extra.date_format is defined else (config.extra.date_format if config.extra.date_format is defined else "%b %-d, %Y") %}
+ <div id="post-info">
+ <div id="date">
+ <span id="publish">{{ page.date | date(format=date_format) }}</span>
+ {% if page.updated and page.updated != page.date -%}
+ <span>Updated on <span id="updated">{{ page.updated | date(format=date_format) }}</span></span>
+ {% endif -%}
+ </div>
+
+ {% if page.taxonomies.tags is defined %}
+ <div id="tags">
+ {% for tag in page.taxonomies.tags -%}
+ <a class="instant" href="{{ get_taxonomy_url(kind="tags", term=tag) }}"><span>#</span>{{ tag }}</a>
+ {%- endfor %}
+ </div>
+ {% endif %}
+ </div>
+
+ {% set show_outdated_alert = page.extra.outdated_alert if page.extra.outdated_alert is defined else (section.extra.outdated_alert if section.extra.outdated_alert is defined else (config.extra.outdated_alert if config.extra.outdated_alert is defined else false)) %}
+ {% set outdated_alert_days = page.extra.outdated_alert_days if page.extra.outdated_alert_days is defined else (section.extra.outdated_alert_days if section.extra.outdated_alert_days is defined else (config.extra.outdated_alert_days if config.extra.outdated_alert_days is defined else 120)) %}
+
+ {% if show_outdated_alert -%}
+ {% set outdated_alert_text_before = section.extra.outdated_alert_text_before if section.extra.outdated_alert_text_before is defined else (config.extra.outdated_alert_text_before if config.extra.outdated_alert_text_before is defined else "") %}
+ {% set outdated_alert_text_after = section.extra.outdated_alert_text_after if section.extra.outdated_alert_text_after is defined else (config.extra.outdated_alert_text_after if config.extra.outdated_alert_text_after is defined else "") %}
+ <blockquote id="outdate_alert" class="markdown-alert-caution hidden" data-days="{{ outdated_alert_days }}"
+ data-alert-text-before="{{ outdated_alert_text_before }}"
+ data-alert-text-after="{{ outdated_alert_text_after }}">
+ <div class="content"></div>
+ </blockquote>
+ {% endif %}
+
+ {{ page.content | safe }}
+ </article>
+
+ {% set show_reaction = page.extra.reaction if page.extra.reaction is defined else (section.extra.reaction if section.extra.reaction is defined else (config.extra.reaction if config.extra.reaction is defined else false)) %}
+ {% if show_reaction %}
+ <div class="reaction {{ config.extra.reaction_align }}" data-endpoint="{{ config.extra.reaction_endpoint }}"></div>
+ {% endif %}
+
+ {% set show_comment = page.extra.comment if page.extra.comment is defined else (section.extra.comment if section.extra.comment is defined else (config.extra.comment if config.extra.comment is defined else false)) %}
+ {% if show_comment %}
+ <div class="giscus"></div>
+ {% include "_giscus_script.html" %}
+ {% endif %}
+ </div>
+
+ {% include "_footer.html" %}
+ </main>
+</div>
+{% endblock content %}
+
+{% block script %}
+<script src="/js/lightense.min.js"></script>
+{% set enable_mermaid = page.extra.mermaid if page.extra.mermaid is defined else (section.extra.mermaid if section.extra.mermaid is defined else (config.extra.mermaid if config.extra.mermaid is defined else false)) %}
+{% if enable_mermaid %}
+<script type="module">
+ import mermaid from 'https://cdn.jsdelivr.net/npm/mermaid@11.17.2/dist/mermaid.esm.min.mjs';
+ mermaid.initialize({ startOnLoad: true });
+</script>
+{% endif %}
+{% endblock script %}