✨ 重点
一系列针对导航可移植性、预览环境和离线可用性的改进。无破坏性变更,无新增配置键。既有项目构建与发布方式保持不变。
🌐 上下文页面相对 URL 解析
为了确保构建站点的完整可移植性,版本、语言和项目切换器现在优先使用页面相对链接(./,../),而不是依赖绝对基础路径的链接。
这使得在不同的部署上下文(如本地预览文件夹、子路径部署(例如 GitHub Pages)和根目录部署)之间进行一致的导航而无需更改配置。
🐛 修复:本地开发服务器上的切换器重定向不匹配
在生产部署使用自定义基础路径(例如 /beta-test/i18n/)的 Workspace 配置中,开发服务器从 /i18n/ 提供服务。此前,客户端 JS 使用构建期的基础路径(window.DOCMD_BASE)来路由语言和版本更改,导致重定向损坏,例如 localhost:3000/beta-test/i18n/de/。
修复方案: docmd-main.js 中的切换器现在在运行时动态分析浏览器当前的 window.location.pathname。如果当前 URL 中不存在 Workspace 基础路径前缀(例如 /beta-test/),则会自动从路由计算中剥离该前缀,从而确保无缝的本地开发环境语言/版本切换。
🔗 菜单栏与横幅的 SPA 导航同步
此前,在 SPA 页面过渡期间,顶部的菜单栏(.docmd-menubar)、公告横幅(.docmd-banner)和 Cookie 同意横幅(.docmd-cookie-banner)并没有在 DOM 中进行替换更新。在嵌套于不同目录深度的页面上,这导致这些布局组件内部的相对 URL 解析不正确(例如,从双重嵌套的目录中解析 ../containers/)。
修复方案: 这些外部布局组件现在已被添加到 SPA 的 selectorsToSwap 列表中。它们在每次客户端页面加载时进行动态更新,以确保相对导航链接和策略 href 能够正确匹配活动页面的相对深度。
🔌 CLI --offline 模式
引入了新的 CLI --offline 标志,专门用于纯离线文档查看:
- 绕过索引构建: 停止关键词/语义搜索索引的构建,并阻止下载语义搜索的二进制依赖,从而在离线时大幅加快构建过程。
- 浏览器内追加后缀: 强制在所有页面相对链接上追加
.html后缀,以便在file://协议下进行干净的导航。 - 本地化离线搜索提示: 在搜索弹窗中注入本地化提示,告知用户离线构建中无法使用搜索。
🧹 依赖清理与维护
- 删除了内部包依赖树中已弃用的子依赖(例如
boolean和node-domexception)。 - 审计了可选插件,确认
@docmd/plugin-math对核心是可选的,仅在@docmd/live处于活动状态时才会被自动安装/要求。
📦 升级
npx @docmd/core@0.8.17 build