From 75a87a57466b767aae2c062f6d1f6b92cb824ed6 Mon Sep 17 00:00:00 2001 From: Oleh Prypin Date: Thu, 19 Mar 2026 21:45:50 +0100 Subject: [PATCH] Fix toggling dark mode with `highlightjs: false` (in mkdocs theme) When highlightjs is disabled, some HTML elements don't exist. But the code didn't expect this and had an error, interrupting the entire action of toggling dark mode. --- .../properdocs_theme_mkdocs/js/darkmode.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/properdocs-theme-mkdocs/properdocs_theme_mkdocs/js/darkmode.js b/packages/properdocs-theme-mkdocs/properdocs_theme_mkdocs/js/darkmode.js index 30be9905..d5cc2102 100644 --- a/packages/properdocs-theme-mkdocs/properdocs_theme_mkdocs/js/darkmode.js +++ b/packages/properdocs-theme-mkdocs/properdocs_theme_mkdocs/js/darkmode.js @@ -1,8 +1,11 @@ function setColorMode(mode) { // Switch between light/dark theme. `mode` is a string value of either 'dark' or 'light'. + document.documentElement.setAttribute('data-bs-theme', mode); var hljs_light = document.getElementById('hljs-light'), hljs_dark = document.getElementById('hljs-dark'); - document.documentElement.setAttribute('data-bs-theme', mode); + if (hljs_light == null || hljs_dark == null) { + return; + } if (mode == 'dark') { hljs_light.disabled = true; hljs_dark.disabled = false;