From 462c6acb6a9e25fdf1445cb897ee8764daa68e13 Mon Sep 17 00:00:00 2001 From: saberzero1 Date: Thu, 12 Mar 2026 19:45:45 +0100 Subject: [PATCH] feat: add render event listener pattern to plugin template --- src/components/scripts/example.inline.ts | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/components/scripts/example.inline.ts b/src/components/scripts/example.inline.ts index 05eee43..f167475 100644 --- a/src/components/scripts/example.inline.ts +++ b/src/components/scripts/example.inline.ts @@ -5,7 +5,7 @@ // It is bundled as a string and injected via Component.afterDOMLoaded. // // Key patterns demonstrated: -// 1. Listening to Quartz navigation events ('nav', 'prenav') +// 1. Listening to Quartz navigation events ('nav', 'prenav', 'render') // 2. Fetching content index data // 3. DOM manipulation with cleanup // 4. State persistence (localStorage/sessionStorage) @@ -90,12 +90,19 @@ function init() { // Listen to Quartz navigation events // 'nav' fires after page navigation (including initial load) +// 'render' fires when DOM content changes in-place (e.g. after decryption, dynamic content) document.addEventListener("nav", (e) => { const slug = e.detail?.url || getCurrentSlug(); console.log("[ExampleComponent] Navigation to:", slug); init(); }); +// 'render' fires when DOM content changes in-place and components need re-initialization +document.addEventListener("render", () => { + console.log("[ExampleComponent] Render event - re-initializing"); + init(); +}); + // 'prenav' fires before navigation - use for saving state document.addEventListener("prenav", () => { // Example: Save scroll position before navigation