From 98c42ac8a5a2f129e6d0f63f550fefdc9a868daf Mon Sep 17 00:00:00 2001 From: rtkay123 Date: Fri, 8 Aug 2025 06:58:06 +0200 Subject: docs: book --- docs/book/mermaid-init.js | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 docs/book/mermaid-init.js (limited to 'docs/book/mermaid-init.js') diff --git a/docs/book/mermaid-init.js b/docs/book/mermaid-init.js new file mode 100644 index 0000000..15a7f4e --- /dev/null +++ b/docs/book/mermaid-init.js @@ -0,0 +1,35 @@ +(() => { + const darkThemes = ['ayu', 'navy', 'coal']; + const lightThemes = ['light', 'rust']; + + const classList = document.getElementsByTagName('html')[0].classList; + + let lastThemeWasLight = true; + for (const cssClass of classList) { + if (darkThemes.includes(cssClass)) { + lastThemeWasLight = false; + break; + } + } + + const theme = lastThemeWasLight ? 'default' : 'dark'; + mermaid.initialize({ startOnLoad: true, theme }); + + // Simplest way to make mermaid re-render the diagrams in the new theme is via refreshing the page + + for (const darkTheme of darkThemes) { + document.getElementById(darkTheme).addEventListener('click', () => { + if (lastThemeWasLight) { + window.location.reload(); + } + }); + } + + for (const lightTheme of lightThemes) { + document.getElementById(lightTheme).addEventListener('click', () => { + if (!lastThemeWasLight) { + window.location.reload(); + } + }); + } +})(); -- cgit v1.2.3