两项收尾工作:让文档侧栏的分组默认收起、点击再展开,并把 xongyi 文档重写成与 xfm 一致的分组结构。
一、文档树:默认收起 + 点击展开
根因(主题的三个缺口)
主题对 docs 侧栏只输出 .xfm-nav-item.has-children + .xfm-nav-toggle + 空 <i class="xfm-arrow">,但:
- CSS 只实现了
.xfm-nav-group(笔记侧栏)的折叠,.xfm-sidebar-nav下没有任何收起规则 → 整棵树永远全展开; core.js只给.xfm-nav-group-head绑了点击,.xfm-nav-toggle无任何事件 → 点箭头毫无反应;.xfm-arrow全主题没有样式 → 连箭头都看不见。
站点层修复
| 新增文件 | 职责 |
|---|---|
source/css/xfm-docs-tree.css |
两列栅格让子列表独占一行;核心规则 .has-children:not(.is-open) > .xfm-nav-list { display: none };用 border 画 chevron 并随展开态旋转 |
source/js/xfm-docs-tree.js |
document 级事件委托:点整行标签或箭头切换 .is-open 并同步 aria-expanded;支持 Enter / Space |
两者经 theme_config.custom.css / custom.js 引入。
设计要点:通用规则,后续新增文档自动生效
默认只展开当前页所在的那条路径(主题早已给各级祖先写了 .is-open),其余分组一律收起。收起态是纯 CSS,因此即使 JS 未加载也不会闪开。规则全部基于 .has-children,后续新增任何分组都自动生效,无需逐页配置。
二、xongyi 文档按 xfm 结构重写(8 篇 → 21 篇)
原先 xongyi 只有 8 篇扁平文档。这次重写为与 xfm 同构的分组树:
| 分组 | 页面 |
|---|---|
| 文档首页 | /docs/xongyi/ |
| 快速开始 | 主题简介 / 安装与部署 / 5 分钟上手 |
| 预设布局 | 三套预设 / 预设示例 |
| 首页板块 | 板块总览 / 板块配置详解 |
| 配置参考 | 配置总览 / 品牌与导航 / 联系与地图 / 页脚与备案 / 功能与统计 |
| 内容与新闻 | 写新闻与内容 / 页面与 Front-matter |
| 定制与进阶 | 图标速查 / 自定义样式与模板 / 目录结构与运行时 |
| 部署 | 一键部署 |
| 帮助 | 常见问题 / 故障排查 |
内容取自主题权威源:README.md、_config.yml、examples/config.*.yml、scripts/icons.js(52 个图标)、languages/、layout/ 与 style.css 的 CSS 令牌。front-matter 与 xfm 对齐,_data/docs.yml 的 xongyi 分组改为同构三级树。
校验
- 构建 91 files,0 error;文档页未渲染的标签残留 0。
- 侧栏 49 条链接全部命中,50 个文档页无孤儿,70 个 HTML 中
/docs/链接 0 失效。 - jsdom 模拟点击:收起分组
aria-expanded=false→ 点标签展开 → 点箭头收起 →preventDefault正确;叶子链接不被拦截。
若想让当前分支也收起
现在默认会展开当前页所在分支(便于定位)。若希望连当前分支也默认收起,把 CSS 里的 :not(.is-open) 改为对全部 .has-children 生效即可。
评论