Files
blog_os/blog/templates/macros.html
Philipp Oppermann 6055a2e342 Add an inline table of contents for small screens
This ToC is only shown when the screen is too small for the sticky sidebar ToC.

We use a `<!-- toc -->` comment and the `replace` function to allow inserting the ToC at well defined points of the page. We don't use the shortcode feature of Zola because of https://github.com/getzola/zola/issues/584.
2019-03-19 12:58:15 +01:00

36 lines
1.1 KiB
HTML

{% macro post_link(page) %}
<article>
<h2 class="post-title"><a href="/{{ page.path | safe }}">{{ page.title }}</a></h2>
<div class="post-summary">
{{ page.summary | safe}}
<a class="read-more" href="/{{ page.path | safe }}">read&nbsp;more…</a>
</div>
</article>
{% endmacro post_link %}
{% macro utterances() %}
<script src="https://utteranc.es/client.js"
repo="phil-opp/blog_os"
issue-term="url"
label="comments"
crossorigin="anonymous"
async>
</script>
{% endmacro utterances %}
{% macro toc(page) %}
<details id = "toc-inline">
<summary><b>Table of Contents</b></summary>
<ul>
{% for h2 in page.toc %}<li>
<a href="#{{h2.id | safe}}">{{ h2.title | safe }}</a>
{% if h2.children %}<ul>
{% for h3 in h2.children %}<li>
<a href="#{{h3.id | safe}}">{{ h3.title | safe }}</a>
</li>{% endfor %}
</ul>{% endif %}
</li>{% endfor %}
</ul>
</details>
{% endmacro toc %}