# 实施计划:TOC 优化、图片描述样式、灯箱修复、Logo 修复、瞬间评论计数修复 ## 任务概览 | # | 任务 | 优先级 | |---|------|--------| | 1 | TOC 优化:子标题缩进 + 当前项高亮 + 删除全目录展开/收起 + 二级目录折叠/展开 | 高 | | 2 | 文章图片描述(figcaption)颜色 #545164 + 字号缩小 | 中 | | 3 | 图库页灯箱插件图片无法点击大图预览 | 高 | | 4 | 主题 Logo 在后台主题详情/管理器不显示 | 中 | | 5 | 瞬间页评论计数修复 | 高 | --- ## 任务 1:TOC 优化 ### 现状分析 当前 TOC 实现([post.astro](file:///c:/Users/Zhang/Documents/Halo/WarmIsland/src/pages/post.astro)): 1. **子标题缩进**:已有 `wi-toc__link--h2/h3/h4/h5/h6` 类,h2 无缩进,h3 12px,h4 24px 等。但缩进量较小,层级感不够明显。 2. **当前项高亮**:已有 `wi-toc__link--active` 类(`color: var(--accent); font-weight: 600;`),但高亮效果不够明显,缺少视觉锚点。 3. **全目录展开/收起**:当前 `wi-toc__toggle` 按钮控制整个目录的展开/收起(`wi-toc__nav--collapsed` 类),需要删除此功能。 4. **二级目录折叠/展开**:当前没有此功能,需要新增。当进入某一个一级分类(h2)时展开其下属的二级分类(h3-h6),其他一级分类的子项折叠。 ### 修改方案 #### 步骤 1.1:增强子标题缩进 修改 CSS 中的缩进量,使层级更清晰: ```css .wi-toc__link--h2 { padding-left: 0; } .wi-toc__link--h3 { padding-left: 16px; } .wi-toc__link--h4 { padding-left: 32px; } .wi-toc__link--h5 { padding-left: 48px; } .wi-toc__link--h6 { padding-left: 64px; } ``` 同时为 h2 级目录项添加左侧竖线指示器,增强层级感。 #### 步骤 1.2:增强当前阅读项高亮样式 改进 `wi-toc__link--active` 样式: - 左侧添加竖线指示器(accent 色) - 背景色微调(半透明 accent) - 字重加粗 - 平滑过渡动画 ```css .wi-toc__link--active { color: var(--accent); font-weight: 600; border-left: 2px solid var(--accent); padding-left: calc(原缩进 - 2px); background: color-mix(in srgb, var(--accent) 8%, transparent); } ``` #### 步骤 1.3:删除全目录展开/收起功能 1. 删除 `wi-toc__header` 中的 `wi-toc__toggle` 按钮 2. 删除 JS 中 `toggleBtn` 相关的事件监听代码 3. 删除 CSS 中 `wi-toc__nav--collapsed` 相关样式 #### 步骤 1.4:增加二级目录折叠/展开功能 1. 修改 JS 中 TOC 生成逻辑,将 h2 作为一级目录项,h3-h6 作为二级目录项 2. 每个 h2 项下方创建一个可折叠的子容器 3. 默认只展开当前活跃 h2 的子项,其他 h2 的子项折叠 4. 点击 h2 项可手动展开/折叠其子项 5. 当滚动位置变化时,自动展开当前活跃 h2 的子项 HTML 结构改为: ```html
``` CSS: ```css .wi-toc__sub { overflow: hidden; max-height: 0; opacity: 0; transition: max-height 0.3s ease, opacity 0.2s ease; } .wi-toc__group--active .wi-toc__sub, .wi-toc__group--expanded .wi-toc__sub { max-height: 500px; opacity: 1; } ``` JS 逻辑: - 生成 TOC 时,将 h3-h6 归入前一个 h2 的子组 - IntersectionObserver 检测到活跃标题时,自动展开对应的 h2 组 - 点击 h2 项时,切换该组的展开/折叠状态 --- ## 任务 2:文章图片描述样式 ### 现状分析 Halo 文章编辑器中,图片可以添加描述(alt/caption),渲染后通常为 `