Skip to content

Fix mkdocs theme dark mode without highlight.js#4135

Open
marko1olo wants to merge 1 commit into
mkdocs:masterfrom
marko1olo:fix-darkmode-highlightjs
Open

Fix mkdocs theme dark mode without highlight.js#4135
marko1olo wants to merge 1 commit into
mkdocs:masterfrom
marko1olo:fix-darkmode-highlightjs

Conversation

@marko1olo

Copy link
Copy Markdown

Fixes #4045.

What changed

  • Keep setColorMode() updating the Bootstrap data-bs-theme attribute even when theme.highlightjs is disabled.
  • Make highlight.js stylesheet toggling conditional on the hljs-light/hljs-dark link elements actually existing.
  • Add a focused JavaScript smoke regression for the missing-highlightjs-links case while preserving stylesheet toggling when highlight.js is enabled.

Verification

  • C:\hades\oss\.venvs\mkdocs-4045\Scripts\python.exe -m unittest mkdocs.tests.theme_tests.ThemeTests.test_mkdocs_theme_darkmode_without_highlightjs_links
  • C:\hades\oss\.venvs\mkdocs-4045\Scripts\python.exe -m unittest mkdocs.tests.theme_tests
  • C:\hades\oss\.venvs\mkdocs-4045\Scripts\python.exe -m ruff check mkdocs\tests\theme_tests.py
  • C:\hades\oss\.venvs\mkdocs-4045\Scripts\python.exe -m black --target-version py313 --check mkdocs\tests\theme_tests.py
  • C:\hades\oss\.venvs\mkdocs-4045\Scripts\python.exe -m isort --check-only --diff mkdocs\tests\theme_tests.py
  • npx --yes jshint mkdocs\themes\mkdocs\js\darkmode.js
  • mkdocs build --strict smoke with theme.highlightjs: false, color_mode: auto, and user_color_mode_toggle: true
  • git diff --check

@marko1olo marko1olo force-pushed the fix-darkmode-highlightjs branch from 2f2e16f to 2906ce3 Compare June 6, 2026 15:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Disabling highlight.js breaks switching between light and dark mode

1 participant