1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
const audio = document.getElementById("audio");
function parseTimestamp(ts) {
const parts = ts.split(":").map(Number);
if (parts.length === 3) return parts[0] * 3600 + parts[1] * 60 + parts[2];
if (parts.length === 2) return parts[0] * 60 + parts[1];
return parts[0];
}
document.addEventListener("click", (e) => {
const link = e.target.closest("[data-seek]");
if (!link) return;
e.preventDefault();
const seconds = parseTimestamp(link.dataset.seek);
audio.currentTime = seconds;
audio.play();
history.replaceState(null, "", link.getAttribute("href"));
});
await import("./pagefind/pagefind-highlight.js");
new PagefindHighlight({ highlightParam: "highlight" });