From eda8f2849edf5c4daa1d6b9f2c253908594fb550 Mon Sep 17 00:00:00 2001 From: denizk0461 Date: Thu, 18 Dec 2025 21:34:31 +0000 Subject: [PATCH] table of contents now generate readable header IDs --- src/lib/table-of-contents.svelte | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/lib/table-of-contents.svelte b/src/lib/table-of-contents.svelte index f30c399..2888480 100644 --- a/src/lib/table-of-contents.svelte +++ b/src/lib/table-of-contents.svelte @@ -33,10 +33,15 @@ return document.querySelectorAll("h2, h3, h4, h5"); } + // Generates an ID for a given header node. Does not override + // any existing ID. let getHeaderId = function(header: Node): string { var id = (header as HTMLElement).id; + if (!id) { - id = `header-${idCounter}`; + var text = (header as HTMLElement).innerText.toLowerCase(); + text = text.replaceAll(/[^a-zA-Z0-9]/gi, "-"); + id = text; (header as HTMLElement).id = id; idCounter += 1; }