summaryrefslogtreecommitdiffstats
path: root/src/themes/serene/templates/post.html
diff options
context:
space:
mode:
authorBenedikt Peetz <benedikt.peetz@b-peetz.de>2025-04-25 12:09:21 +0200
committerBenedikt Peetz <benedikt.peetz@b-peetz.de>2025-04-25 12:09:21 +0200
commit6acf4ab874c58ee14f35da671029e56972745ce6 (patch)
treebc6dfe4f3661332e8c1fc6ff4ca657185db488e4 /src/themes/serene/templates/post.html
parentfix(flake): Ensure that the `dead-trees` directory exists (diff)
downloadb-peetz.de-6acf4ab874c58ee14f35da671029e56972745ce6.zip
feat(treewide): Migrate to zola
Diffstat (limited to 'src/themes/serene/templates/post.html')
-rw-r--r--src/themes/serene/templates/post.html151
1 files changed, 151 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..f31810a
--- /dev/null
+++ b/src/themes/serene/templates/post.html
@@ -0,0 +1,151 @@
+{% import "macros/prose.html" as macros %}
+{% extends "_base.html" %}
+
+{% block page %}post{% endblock page %}
+{% block lang -%}
+{%- set blog_section_path = config.extra.blog_section_path | trim_start_matches(pat="/") -%}
+{%- set section_md_path = blog_section_path ~ "/_index.md" -%}
+{%- set section = get_section(path=section_md_path, 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 %}
+ {% 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 %}
+ <meta name="description" content="{{ desc }}">
+{% endblock desc %}
+
+{% block head %}
+{% if config.markdown.highlight_theme == "css" %}
+<link id="hl" rel="stylesheet" type="text/css" href="/hl-{% if config.extra.force_theme == "dark" %}dark{% else %}light{% endif %}.css" />
+{% endif %}
+{% if page.extra.math %}
+<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.16.11/dist/katex.min.css" integrity="sha384-nB0miv6/jRmo5UMMR1wu3Gz6NLsoTkbqJghGIsx//Rlm+ZU03BU6SQNC66uf4l5+" crossorigin="anonymous">
+<script defer src="https://cdn.jsdelivr.net/npm/katex@0.16.11/dist/katex.min.js" integrity="sha384-7zkQWkzuo3B5mTepMUcHkMB5jZaolc2xDwL6VFqjFALcbeS9Ggm/Yr2r3Dy4lfFg" crossorigin="anonymous"></script>
+<script defer src="https://cdn.jsdelivr.net/npm/katex@0.16.11/dist/contrib/auto-render.min.js" integrity="sha384-43gviWU0YVjaDtb/GhzOouOXtZMP/7XUzwPTstBeZFe/+rCMvRwr4yROQP43s0Xk" crossorigin="anonymous"></script>
+<script defer src="https://cdn.jsdelivr.net/npm/katex@0.16.11/dist/contrib/copy-tex.min.js" integrity="sha384-HORx6nWi8j5/mYA+y57/9/CZc5z8HnEw4WUZWy5yOn9ToKBv1l58vJaufFAn9Zzi" 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>
+ {% if page.extra.toc is defined %}{% set show_toc = page.extra.toc %}{% else %}{% set show_toc = section.extra.toc %}{% endif %}
+ {% 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>
+ {{ macros::back_link(path = get_url(path=section.path)) }}
+
+ <div>
+ {% if page.extra.copy is defined %}{% set allow_copy = page.extra.copy %}{% else %}{% set allow_copy = section.extra.copy %}{% endif %}
+ {% 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>
+ <div id="post-info">
+ <div id="date">
+ <span id="publish">{{ page.date | date(format=section.extra.date_format) }}</span>
+ {% if page.updated and page.updated != page.date -%}
+ <span>Updated on <span id="updated">{{ page.updated | date(format=section.extra.date_format) }}</span></span>
+ {% endif -%}
+ </div>
+
+ {% if page.taxonomies.tags is defined %}
+ <div id="tags">
+ {% for tag in page.taxonomies.tags -%}
+ {% set tag_slugify = tag | slugify -%}
+ <a class="instant" href="{{ config.base_url ~ '/tags/' ~ tag_slugify }}"><span>#</span>{{ tag }}</a>
+ {%- endfor %}
+ </div>
+ {% endif %}
+ </div>
+
+ {% if page.extra.outdate_alert is defined %}{% set show_outdate_alert = page.extra.outdate_alert %}{% else %}{% set show_outdate_alert = section.extra.outdate_alert %}{% endif %}
+ {% if page.extra.outdate_alert_days is defined %}{% set outdate_alert_days = page.extra.outdate_alert_days %}{% else %}{% set outdate_alert_days = section.extra.outdate_alert_days %}{% endif %}
+
+ {% if show_outdate_alert -%}
+ <blockquote id="outdate_alert" class="callout caution hidden" data-days="{{ outdate_alert_days }}"
+ data-alert-text-before="{{ section.extra.outdate_alert_text_before }}"
+ data-alert-text-after="{{ section.extra.outdate_alert_text_after }}">
+ <div class="content"></div>
+ </blockquote>
+ {% endif %}
+
+ {{ page.content | safe }}
+ </article>
+
+ {% if page.extra.reaction is defined %}{% set show_reaction = page.extra.reaction %}{% else %}{% set show_reaction = config.extra.reaction %}{% endif %}
+ {% if show_reaction %}
+ <div class="reaction {{ config.extra.reaction_align }}" data-endpoint="{{ config.extra.reaction_endpoint }}"></div>
+ {% endif %}
+
+ {% if page.extra.comment is defined %}{% set show_comment = page.extra.comment %}{% else %}{% set show_comment = section.extra.comment %}{% endif %}
+ {% 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>
+{% if page.extra.mermaid %}
+<script type="module">
+ import mermaid from 'https://cdn.jsdelivr.net/npm/mermaid@10/dist/mermaid.esm.min.mjs';
+ mermaid.initialize({ startOnLoad: true });
+</script>
+{% endif %}
+{% endblock script %}