如何通过URL参数设置Docsify文档默认开启深色/浅色模式?
使用URL参数让Docsify默认启动深色模式
针对你使用的docsify-darklight-theme插件,可以通过添加自定义脚本读取URL参数,实现默认启动深色模式的需求,具体操作如下:
- 步骤1:添加自定义脚本
在原有的主题脚本之后,插入一段自定义JS代码,用来检测URL中的主题参数并切换深色模式:
<!-- 原有的主题脚本 --> <script src="//cdn.jsdelivr.net/npm/docsify-darklight-theme@latest/dist/index.min.js" type="text/javascript"> </script> <!-- 新增的自定义脚本 --> <script> // 解析URL参数 const urlParams = new URLSearchParams(window.location.search); const targetTheme = urlParams.get('theme'); // 等待页面和插件加载完成后执行 document.addEventListener('DOMContentLoaded', () => { if (targetTheme === 'dark') { // 检查主题插件是否已加载 if (window.darklightTheme) { // 判断当前是否为浅色模式,是则切换到深色 const isDarkMode = document.body.classList.contains('dark-theme'); if (!isDarkMode) { darklightTheme.toggle(); } } else { // 备用方案:直接给body添加深色模式类(适配插件的样式逻辑) document.body.classList.add('dark-theme'); } } }); </script>
步骤2:通过URL参数触发深色模式
访问你的Docsify站点时,在URL末尾添加?theme=dark,比如:http://your-docs-site.com/?theme=dark
页面加载时就会自动切换到深色模式。额外优化(可选)
如果需要让站点优先跟随系统深色模式,同时保留URL参数的强制设置,可以修改脚本逻辑:
<script> const urlParams = new URLSearchParams(window.location.search); const targetTheme = urlParams.get('theme'); document.addEventListener('DOMContentLoaded', () => { let shouldEnableDark = false; // 优先使用URL参数 if (targetTheme === 'dark') { shouldEnableDark = true; } else if (targetTheme === 'light') { shouldEnableDark = false; } else { // 无参数时跟随系统主题 shouldEnableDark = window.matchMedia('(prefers-color-scheme: dark)').matches; } if (window.darklightTheme) { const currentIsDark = document.body.classList.contains('dark-theme'); if (shouldEnableDark !== currentIsDark) { darklightTheme.toggle(); } } else { document.body.classList.toggle('dark-theme', shouldEnableDark); } }); </script>
内容的提问来源于stack exchange,提问作者Felix
相关产品推荐
相关产品推荐

