website/themes/serene/templates/post.html

154 lines
6.5 KiB
HTML
Raw Permalink Normal View History

{% 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 %}
{% endif %}
{% if desc %}
<meta name="description" content="{{ desc }}">
{% endif %}
{% endblock desc %}
{% block head %}
{% if config.markdown.highlight_theme == "css" %}
<link id="hl" rel="stylesheet" type="text/css" href="/hl-light.css" />
{% endif %}
{% if page.extra.math %}
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.16.7/dist/katex.min.css" integrity="sha384-3UiQGuEI4TTMaFmGIZumfRPtfKQ3trwQE2JgosJxCnGmQpL/lJdjpcHkaaFwHlcI" crossorigin="anonymous">
<script defer src="https://cdn.jsdelivr.net/npm/katex@0.16.7/dist/katex.min.js" integrity="sha384-G0zcxDFp5LWZtDuRMnBkk3EphCK1lhEf4UEyEM693ka574TZGwo4IWwS6QLzM/2t" crossorigin="anonymous"></script>
<script defer src="https://cdn.jsdelivr.net/npm/katex@0.16.7/dist/contrib/auto-render.min.js" integrity="sha384-+VBxd3r6XgURycqtZ117nYw44OOcIax56Z4dCRWbxyPt0Koah1uHoK0o4+/RRE05" 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 %}
{% include "_header.html" %}
<div id="wrapper">
<div id="blank"></div>
<aside {% if config.extra.blur_effect %} class="blur" {% endif %}>
{% if page.extra.toc is defined %}{% set show_toc = page.extra.toc %}{% else %}{% set show_toc = config.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 config.extra.back_to_top %}
<button id="back-to-top" aria-label="back to top">
{% set icon = load_data(path="static/icon/arrow-up.svg") %}
{{ icon | safe }}
</button>
{% endif %}
</aside>
<main>
<div>
{% if page.extra.copy is defined %}{% set allow_copy = page.extra.copy %}{% else %}{% set allow_copy = config.extra.copy %}{% endif %}
{% if allow_copy %}
{% set copy_icon = load_data(path="static/icon/copy.svg") %}
{% set check_icon = load_data(path="static/icon/check.svg") %}
<div id="copy-cfg" style="display: none;" data-copy-icon="{{ copy_icon }}" data-check-icon="{{ check_icon }}"></div>
{% endif %}
{% set backlink_icon = load_data(path="static/icon/backlink.svg") %}
<article class="prose" data-backlink-icon="{{ backlink_icon }}">
<h1>{{ page.title }}</h1>
<div id="post-info">
<div id="date">
<span id="publish">{{ page.date | date }}</span>
{% if page.updated and page.updated != page.date -%}
<span>Updated on <span id="updated">{{ page.updated | date }}</span></span>
{% endif -%}
</div>
{% if page.extra.display_tags is defined %}{% set display_tags = page.extra.display_tags %}{% elif config.extra.display_tags is defined %}{% set display_tags = config.extra.display_tags %}{% else %}{% set display_tags = true %}{% endif %}
{% if page.taxonomies.tags is defined and display_tags == true %}
<div id="tags">
{% for tag in page.taxonomies.tags -%}
{% set tag_slugify = tag | slugify -%}
<a 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 = config.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 = config.extra.outdate_alert_days %}{% endif %}
{% if show_outdate_alert -%}
<blockquote id="outdate_alert" class="callout alert hidden" data-days="{{ outdate_alert_days }}"
data-alert-text-before="{{ config.extra.outdate_alert_text_before }}"
data-alert-text-after="{{ config.extra.outdate_alert_text_after }}">
{% set icon = load_data(path="static/icon/alert.svg") %}
<div class="icon">
{{ icon | safe }}
</div>
<div class="content"></div>
</blockquote>
{% endif %}
{% if page.extra.truncate_summary is defined %}{% set truncate_summary = page.extra.truncate_summary %}{% elif config.extra.truncate_summary is defined %}{% set truncate_summary = config.extra.truncate_summary %}{% else %}{% set truncate_summary = false %}{% endif %}
{% if truncate_summary == true and page.summary %}
{{ page.content | trim_start_matches(pat=page.summary) | safe }}
{% else %}
{{ page.content | safe }}
{% endif %}
</article>
{% if page.extra.comment is defined %}{% set show_comment = page.extra.comment %}{% else %}{% set show_comment = config.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 %}