Files

131 lines
5.2 KiB
HTML
Raw Permalink Normal View History

2026-06-01 23:40:55 +02:00
{% extends "base.html" %} {% block scripts %} {{ super() }}
<script>
// Changelog headings use [ver] link-reference syntax, which renders a nested <a> inside
// the outer .md-nav__link anchor. Browsers break nested anchors apart (HTML5 adoption
// agency algorithm), leaving the TOC anchor empty and the version text as orphaned nodes.
// This repairs those empty anchors by reading the text from the sibling nav's aria-label.
document$.subscribe(function () {
document.querySelectorAll("li.md-nav__item").forEach(function (item) {
var link = item.querySelector(":scope > a.md-nav__link");
var subNav = item.querySelector(":scope > nav.md-nav[aria-label]");
var label = subNav && subNav.getAttribute("aria-label");
if (link && label && !link.textContent.trim()) {
link.textContent = label;
var toRemove = [];
for (var node = link.nextSibling; node && node !== subNav; node = node.nextSibling) {
toRemove.push(node);
}
toRemove.forEach(function (n) {
n.parentNode && n.parentNode.removeChild(n);
});
}
});
// Workaround: zensical's repo source observable re-emits on each instant
// navigation, appending another <ul class="md-source__facts"> without
// removing the previous one. Keep only the most recent list. The GitHub
// stars fetch is async, so an immediate sweep isn't enough — also attach
// a MutationObserver so late appends get collapsed too.
document.querySelectorAll(".md-source__repository").forEach(function (repo) {
var dedupe = function () {
var lists = repo.querySelectorAll(":scope > ul.md-source__facts");
for (var i = 0; i < lists.length - 1; i++) {
lists[i].remove();
}
};
dedupe();
if (!repo.__factsObserver) {
repo.__factsObserver = new MutationObserver(dedupe);
repo.__factsObserver.observe(repo, { childList: true });
}
});
});
</script>
{% endblock %} {% block extrahead %}
<script async src="https://www.googletagmanager.com/gtag/js?id=G-8G4NQW55PF"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag() {
dataLayer.push(arguments);
}
gtag("js", new Date());
gtag("config", "G-8G4NQW55PF");
gtag("config", "AW-17853694443");
</script>
<meta property="og:type" content="website" />
<meta
property="og:title"
content="{{ config.site_name }}{% if page and page.title and not page.is_homepage %} - {{ page.title | striptags }}{% endif %}"
/>
<meta
property="og:description"
content="{% if page and page.meta and page.meta.description %}{{ page.meta.description }}{% else %}{{ config.site_description }}{% endif %}"
/>
<meta property="og:url" content="{{ page.canonical_url }}" />
<meta property="og:site_name" content="{{ config.site_name }}" />
<meta property="og:image" content="{{ config.site_url }}assets/og-image.png" />
<meta property="og:image:width" content="1200" />
<meta property="og:image:height" content="630" />
<meta name="twitter:card" content="summary_large_image" />
<meta
name="twitter:title"
content="{{ config.site_name }}{% if page and page.title and not page.is_homepage %} - {{ page.title | striptags }}{% endif %}"
/>
<meta
name="twitter:description"
content="{% if page and page.meta and page.meta.description %}{{ page.meta.description }}{% else %}{{ config.site_description }}{% endif %}"
/>
<meta name="twitter:image" content="{{ config.site_url }}assets/og-image.png" />
{% endblock %} {# Match Material: `.md-content` wraps article; `data-md-component="content"` stays
on the wrapper for theme JS. #} {% block container %}
<div class="md-content" data-md-component="content">
<article class="md-content__inner md-typeset">
{% if page and ( page.is_homepage | default(false) or (page.url | default("")) == ""
or (page.url | default("")) == "/" or (page.url | default("")) == "." ) %}
<div class="hero-banner">
<a href="https://kreuzberg.dev/" title="Kreuzberg.dev">
<img
src="{{ 'assets/docs_top_banner.svg' | url }}"
alt="Kreuzberg.dev"
width="800"
height="200"
decoding="async"
/>
</a>
</div>
{% endif %}
{% if "navigation.path" in features %} {% include "partials/path.html" %} {% endif %} {% include
"partials/content.html" %} {% if page and page.edit_url %}
<p style="margin-top: 2rem; margin-bottom: 0; font-size: 0.75rem; line-height: 1.5">
<a
href="{{ page.edit_url }}"
style="
color: var(--md-default-fg-color--lighter, #737373);
text-decoration: underline;
text-underline-offset: 0.15em;
"
>Edit this page on GitHub</a
>
</p>
{% endif %} {% if page and ( page.is_homepage | default(false) or (page.url | default("")) == ""
or (page.url | default("")) == "/" or (page.url | default("")) == "." ) %}
<div class="cloud-banner">
<a href="https://kreuzberg.dev/" title="Kreuzberg.dev">
<img
src="{{ 'assets/docs_bottom_banner.svg' | url }}"
alt="Kreuzberg.dev"
width="800"
height="200"
loading="lazy"
decoding="async"
/>
</a>
</div>
{% endif %}
</article>
</div>
{% endblock %}