180 lines
4.5 KiB
HTML

<!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/table.css">
<link rel="stylesheet" type="text/css" href="/assets/styles/style.css">
<link rel="stylesheet" type="text/css" href="/assets/styles/paged.css">
<link rel="stylesheet" type="text/css" href="/assets/styles/media.css">
<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">
<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">
<script src="/assets/paged.polyfill.js"></script>
<script>
class MyHandler extends Paged.Handler {
constructor(chunker, polisher, caller) {
super(chunker, polisher, caller);
}
afterRendered(pages) {
let storedTHead = []
pages.forEach((p) => {
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);
}
}
})
p.element.querySelectorAll(".sample").forEach((el) => {
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)
audioEl.play();
} else {
audioEl.pause();
e.currentTarget.removeAttribute("active")
}
})
})
})
}
afterPreview() {
const scrollY = localStorage.getItem('scrollY');
if (scrollY !== null) window.scrollTo(0, parseInt(scrollY));
}
beforeParsed(content) {
let count = 0;
content.querySelectorAll(`a[role="doc-noteref"]`).forEach((ref) => {
count += 1;
const href = ref.getAttribute("href");
let note = content.querySelector(".footnotes " + href);
if (note) {
ref.querySelector("sup").textContent = count;
note.setAttribute("count", ref.querySelector("sup").textContent);
ref.appendChild(note);
}
})
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);
}
})
}
content.querySelectorAll("#footnotes, #refs").forEach((f) => {
f.parentNode.removeChild(f);
})
}
}
Paged.registerHandlers(MyHandler);
// Save scroll position before unloading the page
window.addEventListener('beforeunload', () => {
localStorage.setItem('scrollY', window.scrollY);
});
// Restore scroll position on load
window.addEventListener('load', () => {
});
</script>
<title>I dont have a title</title>
</head>
<body>
<main>
<section>
<article class="fix-break ">
<section class="meta">
<span data-chapter-title></span>
</section>
<header>
<h1></h1>
</header>
<section>
</section>
</article>
</section>
</main>
<dialog>
<img>
<p></p>
</dialog>
<script type="text/javascript" src="/assets/app.js"></script>
</body>
</html>