From d30dfc89bf1b673b2fdc0638766b930adaec228c Mon Sep 17 00:00:00 2001 From: nsfisis Date: Sat, 29 Mar 2025 00:47:55 +0900 Subject: feat(blog/nuldoc): migrate syntax highlighter from highlight.js to shiki.js --- vhosts/blog/nuldoc-src/dom.ts | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'vhosts/blog/nuldoc-src/dom.ts') diff --git a/vhosts/blog/nuldoc-src/dom.ts b/vhosts/blog/nuldoc-src/dom.ts index 478cbc6c..ed7ffd31 100644 --- a/vhosts/blog/nuldoc-src/dom.ts +++ b/vhosts/blog/nuldoc-src/dom.ts @@ -69,6 +69,15 @@ export function forEachChild(e: Element, f: (n: Node) => void) { } } +export async function forEachChildAsync( + e: Element, + f: (n: Node) => Promise, +): Promise { + for (const c of e.children) { + await f(c); + } +} + export function forEachChildRecursively(e: Element, f: (n: Node) => void) { const g = (c: Node) => { f(c); @@ -78,3 +87,16 @@ export function forEachChildRecursively(e: Element, f: (n: Node) => void) { }; forEachChild(e, g); } + +export async function forEachChildRecursivelyAsync( + e: Element, + f: (n: Node) => Promise, +): Promise { + const g = async (c: Node) => { + await f(c); + if (c.kind === "element") { + await forEachChildAsync(c, g); + } + }; + await forEachChildAsync(e, g); +} -- cgit v1.2.3-70-g09d2