Course Database Refactor Implementation Plan

Course Database Refactor Implementation Plan

For Claude: REQUIRED SUB-SKILL: Use superpowers:executing-plans to implement this plan task-by-task.

Goal: 将数据库课程的六个子页面内容合并到 /course/database/,导航折叠,只在点击“数据库系统”时展开,旧子链接跳转不报 404。

Architecture: 采用单一 Markdown 页面承载全部数据库内容,使用显式锚点供侧边导航定位;侧边导航模板根据当前页面是否匹配父级链接决定是否展开子项;通过 redirect_from 汇总旧子路径,删除冗余子页面文件。

Tech Stack: Jekyll (Minimal Mistakes 主题), YAML 导航配置, Kramdown Markdown, Liquid 模板。

Task 1: 为主页面添加锚点并汇总内容

Files:

  • Modify: _pages/course-database.md

Steps:

  1. 在现有“数据库”主页面内为六个章节添加显式锚点(如 <a id="intro"></a> 等),并按原顺序创建对应二级标题。
  2. _pages/database-introduction.md 等六个子页面的正文内容移动到主页面对应锚点下,保留数学公式/代码块格式。
  3. 为主页面添加 redirect_from,列出六个旧子路径,避免访问 404。

Task 2: 更新导航指向锚点

Files:

  • Modify: _data/navigation.yml

Steps:

  1. course_nav 下“数据库系统”子项的 url 改为主页面锚点(例如 /course/database/#intro 等)。
  2. 确保父级 url 仍为 /course/database/,顺序保持不变。

Task 3: 让侧边导航按需折叠

Files:

  • Modify: _includes/nav_list

Steps:

  1. 调整 Liquid 逻辑:仅当当前页面 URL 等于父级链接或以父级链接为前缀时,才渲染其子 ul;否则不输出子列表。
  2. 保持现有 active 样式逻辑,避免破坏其他栏目。

Task 4: 移除旧子页面文件

Files:

  • Delete: _pages/database-introduction.md, _pages/database-relational-model-sql.md, _pages/database-design-normalization.md, _pages/course-database-storage-indexing.md, _pages/course-database-query-optimization.md, _pages/course-database-transaction-concurrency.md

Steps:

  1. 删除上述六个子页面文件(它们内容已迁入主页面)。

Task 5: 自检

Files:

  • N/A

Steps:

  1. 运行 bundle exec jekyll build(如环境可用)或至少使用 bundle exec jekyll doctor 检查配置。
  2. 手动打开生成的 /course/database/,验证右侧导航折叠/展开、锚点跳转与重定向。