2025-02-15 10:19:38 +01:00
|
|
|
<!DOCTYPE html>
|
|
|
|
<html lang="en">
|
|
|
|
|
|
|
|
<head>
|
|
|
|
<meta charset="UTF-8">
|
|
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
|
|
<link rel="stylesheet" type="text/css" href="/assets/styles/layout.css">
|
|
|
|
<link rel="stylesheet" type="text/css" href="/assets/styles/typography.css">
|
|
|
|
<link rel="stylesheet" type="text/css" href="/assets/styles/style.css">
|
|
|
|
<link rel="stylesheet" type="text/css" href="/assets/styles/paged.css">
|
2025-03-01 16:38:05 +01:00
|
|
|
<link rel="stylesheet" type="text/css" href="/assets/styles/media.css">
|
2025-02-15 10:19:38 +01:00
|
|
|
|
|
|
|
<link rel="stylesheet" type="text/css" href="/assets/styles/paged-interface.css">
|
|
|
|
<meta name="format-detection" content="telephone=no">
|
|
|
|
<meta name="apple-mobile-web-app-capable" content="yes">
|
|
|
|
<meta name="apple-mobile-web-app-status-bar-style" content="black">
|
|
|
|
<link rel="shortcut icon" type="image/x-icon" href="/assets/favicon.ico">
|
|
|
|
<link rel="apple-touch-icon" sizes="76x76" href="/assets/apple-touch-icon.png">
|
|
|
|
<link rel="icon" type="image/png" sizes="32x32" href="/assets/favicon-32x32.png">
|
|
|
|
<link rel="icon" type="image/png" sizes="16x16" href="/assets/favicon-16x16.png">
|
2025-04-13 10:24:24 +02:00
|
|
|
|
2025-02-15 10:19:38 +01:00
|
|
|
<link rel="mask-icon" href="/assets/safari-pinned-tab.svg" color="#5bbad5">
|
|
|
|
<meta name="msapplication-TileColor" content="#ffc40d">
|
|
|
|
<meta name="theme-color" content="#000">
|
|
|
|
<meta name="keywords" content="">
|
|
|
|
<meta name="robots" content="noarchive, noimageindex">
|
|
|
|
|
|
|
|
|
2025-04-08 11:21:21 +02:00
|
|
|
<script src="/assets/paged.polyfill.js"></script>
|
2025-02-15 10:19:38 +01:00
|
|
|
<script>
|
|
|
|
class MyHandler extends Paged.Handler {
|
|
|
|
constructor(chunker, polisher, caller) {
|
|
|
|
super(chunker, polisher, caller);
|
|
|
|
}
|
2025-02-16 13:52:06 +01:00
|
|
|
afterRendered(pages) {
|
2025-03-09 20:58:44 +01:00
|
|
|
let storedTHead = []
|
2025-02-16 13:52:06 +01:00
|
|
|
pages.forEach((p) => {
|
2025-03-09 20:58:44 +01:00
|
|
|
p.element.querySelectorAll("table:has(thead)").forEach((th) => {
|
|
|
|
storedTHead.push(th);
|
|
|
|
});
|
|
|
|
|
|
|
|
p.element.querySelectorAll("table:not(:has(thead))").forEach((table) => {
|
|
|
|
let splitFrom = table.getAttribute("data-split-from");
|
|
|
|
let matchedHead = storedTHead.filter((th) => {
|
|
|
|
|
|
|
|
return th.getAttribute("data-split-to") === splitFrom;
|
|
|
|
})[0]
|
|
|
|
|
|
|
|
if(matchedHead) {
|
|
|
|
let head = matchedHead.querySelector("thead").cloneNode(true);
|
|
|
|
|
|
|
|
if(head) {
|
|
|
|
table.appendChild(head);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
})
|
|
|
|
|
2025-02-16 13:52:06 +01:00
|
|
|
p.element.querySelectorAll(".sample").forEach((el) => {
|
2025-03-01 16:38:05 +01:00
|
|
|
el.addEventListener("click", function (e) {
|
|
|
|
const audioEl = e.currentTarget.querySelector("audio");
|
|
|
|
if(audioEl.paused) {
|
|
|
|
document.querySelectorAll(".sample").forEach((s) => {
|
|
|
|
s.removeAttribute("active");
|
|
|
|
s.querySelector("audio").pause();
|
|
|
|
})
|
|
|
|
e.currentTarget.setAttribute("active", true)
|
2025-04-13 10:24:24 +02:00
|
|
|
audioEl.play();
|
2025-03-01 16:38:05 +01:00
|
|
|
} else {
|
|
|
|
audioEl.pause();
|
|
|
|
e.currentTarget.removeAttribute("active")
|
2025-02-15 10:19:38 +01:00
|
|
|
|
2025-04-13 10:24:24 +02:00
|
|
|
}
|
2025-03-01 16:38:05 +01:00
|
|
|
})
|
2025-04-13 10:24:24 +02:00
|
|
|
})
|
2025-02-16 13:52:06 +01:00
|
|
|
})
|
2025-03-01 16:38:05 +01:00
|
|
|
|
2025-02-16 13:52:06 +01:00
|
|
|
}
|
2025-02-15 10:19:38 +01:00
|
|
|
beforeParsed(content) {
|
|
|
|
|
|
|
|
let count = 0;
|
|
|
|
content.querySelectorAll(`a[role="doc-noteref"]`).forEach((ref) =>{
|
2025-04-13 10:24:24 +02:00
|
|
|
|
2025-02-15 10:19:38 +01:00
|
|
|
const href = ref.getAttribute("href");
|
|
|
|
let note = content.querySelector(".footnotes " + href);
|
|
|
|
if(note) {
|
2025-04-13 10:24:24 +02:00
|
|
|
|
2025-02-15 10:19:38 +01:00
|
|
|
note.setAttribute("count", ref.querySelector("sup").textContent);
|
|
|
|
ref.appendChild(note);
|
|
|
|
}
|
|
|
|
})
|
2025-03-01 16:38:05 +01:00
|
|
|
|
|
|
|
let filter = [];
|
|
|
|
let bib = content.querySelector('[template-type="bib"]');
|
|
|
|
if(bib) {
|
|
|
|
content.querySelectorAll(".csl-entry").forEach((e) => {
|
|
|
|
console.log(e)
|
|
|
|
if (filter.indexOf(e.id) == -1) {
|
|
|
|
filter.push(e.id);
|
|
|
|
bib.appendChild(e);
|
|
|
|
} else {
|
|
|
|
e.parentNode.removeChild(e);
|
|
|
|
}
|
|
|
|
})}
|
2025-02-15 10:19:38 +01:00
|
|
|
}
|
|
|
|
}
|
|
|
|
Paged.registerHandlers(MyHandler);
|
|
|
|
</script>
|
|
|
|
{% block title %}
|
|
|
|
{%- if page['title'] -%}
|
2025-04-13 10:24:24 +02:00
|
|
|
<title>{{ page['title'] }} {%- if documents['meta'] -%}{{documents['meta']['version']}}{%- endif -%}</title>
|
2025-02-15 10:19:38 +01:00
|
|
|
{%- else -%}
|
|
|
|
<title>I dont have a title</title>
|
|
|
|
{%- endif -%}
|
|
|
|
{% endblock %}
|
|
|
|
</head>
|
|
|
|
|
|
|
|
<body>
|
|
|
|
<main>
|
|
|
|
<section>
|
|
|
|
{%- block content %}{% endblock -%}
|
|
|
|
</section>
|
|
|
|
{% block aside %}
|
|
|
|
<aside>
|
|
|
|
{% macro render_list(name, title) -%}
|
|
|
|
{% if documents[name]|length > 0 %}
|
|
|
|
<h3>{{ title}}</h3>
|
|
|
|
<ul>
|
|
|
|
{% for item in documents[name] %}
|
|
|
|
<li>
|
|
|
|
<a href="/{{ name }}/{{ item['slug'] }}.html">{{ item['title'] }}</a>
|
|
|
|
</li>
|
|
|
|
{% endfor %}
|
|
|
|
</ul>
|
|
|
|
{% endif %}
|
|
|
|
{%- endmacro %}
|
|
|
|
<p>{{ render_list('repair-logs', 'Repair Logs') }}</p>
|
|
|
|
<p>{{ render_list('events', 'Events') }}</p>
|
|
|
|
{% block footer %}
|
|
|
|
<p>Find the code on Klankservers <a target="_blank"
|
|
|
|
href="https://code.klank.school/vitrinekast/klank-docs">Git!</a>.</p>
|
|
|
|
{% endblock %}
|
|
|
|
</aside>
|
|
|
|
{% endblock %}
|
|
|
|
</main>
|
|
|
|
<dialog>
|
|
|
|
<img src="" alt="">
|
|
|
|
<p></p>
|
|
|
|
</dialog>
|
|
|
|
</body>
|
|
|
|
<script type="text/javascript" src="/assets/app.js"></script>
|
|
|
|
|
2025-04-13 10:24:24 +02:00
|
|
|
</html>
|