Skip to main content

vitepress-course-tools-setup

配置与同步 VitePress 课程文档站的 @smart-cs/vitepress-course-tools:侧栏菜单、PDF 封面目录 tocManifest、商品详情 productDetail、npm 导出脚本。 当用户提到 vitepress-course-tools.config.ts、同步 docs/zh 菜单、tocManifest、productDetail、商品详情 PDF、pdf:export:product、课程 PDF 导出、README 截图配置时使用本 skill,即使用户只说「更新文档站配置」或「对齐侧栏和 PDF 配置」也应触发。

インストールへ移動

ソース情報

リポジトリ
cklwblove/agent-skills
ソースの最終更新活動
2026年7月9日 11:44
検出された SKILL.md の言語
中国語
スター
1
フォーク
1

インストール方法

デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。

ソースファイルを確認

インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。

ファイルエクスプローラー
3 ファイル

SKILL.md を表示中

SKILL.md
ソースの指示 · 読み取り専用プレビュー
name
vitepress-course-tools-setup
description
配置与同步 VitePress 课程文档站的 @smart-cs/vitepress-course-tools:侧栏菜单、PDF 封面目录 tocManifest、商品详情 productDetail、npm 导出脚本。 当用户提到 vitepress-course-tools.config.ts、同步 docs/zh 菜单、tocManifest、productDetail、商品详情 PDF、pdf:export:product、课程 PDF 导出、README 截图配置时使用本 skill,即使用户只说「更新文档站配置」或「对齐侧栏和 PDF 配置」也应触发。
# VitePress 课程工具配置 面向使用 `@smart-cs/vitepress-course-tools` 的 VitePress 文档站。目标:磁盘上的 `docs/zh/**/*.md` 与导航、PDF 封面目录、商品详情页保持一致,并补齐 npm 导出命令。 ## 涉及文件 | 文件 | 作用 | |------|------| | `docs/zh/**/*.md` | 文档真源(以磁盘为准) | | `docs/.vitepress/config.mts` | 网站侧栏 / 导航 `link` | | `vitepress-course-tools.config.ts` | PDF、封面、商品详情、截图 | | `scripts/export-site-utils.ts` | 旧版导出脚本中的 `ZH_*_DOCS` 列表(若存在) | | `shared/course-theme-class.ts` | 主题 class,勿在 VitePress 客户端 import 完整 config | | `package.json` | `pdf:*` / `screenshots:*` / `code:pack` 脚本 | `basePath`(config)须与 `docs/.vitepress/config.mts` 的 `base` 完全一致。 ## 工作流 ``` 进度: - [ ] 1. 扫描 docs/zh 实际 .md 文件 - [ ] 2. 同步 docs/.vitepress/config.mts 侧栏 - [ ] 3. 同步 vitepress-course-tools.config.ts → cover.tocManifest - [ ] 4. 同步 scripts/export-site-utils.ts(若项目仍使用该文件) - [ ] 5. 配置或更新 productDetail - [ ] 6. 确认 package.json 导出脚本与依赖 - [ ] 7. 校验(可选运行导出) ``` ### 1. 扫描 docs/zh ```bash find docs/zh -name '*.md' | sort ``` 区分: - 根目录技术文档:`index.md`、`00-*.md` … `10-*.md` - 面试资料:`interview/*.md` 侧栏显示名通常取自文件名(去掉序号前缀与 `.md`),或与现有 `text` 字段风格保持一致。 ### 2. 同步侧栏(config.mts) 在 `zhGuideItems` / `zhInterviewItems` 中: - **link 格式**:`/zh/文件名.md` 或 `/zh/`(index) - **text**:与文档标题或文件名语义一致 - **顺序**:`index` → 编号技术文档 → `interview/` 子目录按文件名排序 常见错误:`link` 指向已改名/删除的文件(如 `05-八股文-医疗AI专题.md` 实际为 `05-八股文-AI专题.md`)。 英文侧栏 `enGuideItems` 仅在 `docs/en/` 存在对应文件时维护。 ### 3. 同步 cover.tocManifest 在 `vitepress-course-tools.config.ts` 的 `cover.tocManifest` 中,条目顺序与侧栏一致: ```ts { title: '侧栏 text', routePath: '/zh/路由' } ``` **routePath 规则**(`cleanUrls: true`): - `index.md` → `/zh/` - `00-项目概览.md` → `/zh/00-项目概览`(无 `.md` 后缀) - `interview/01-简历写法模板.md` → `/zh/interview/01-简历写法模板` `title` 与侧栏 `text` 对齐;`routePath` 与包内 `sourceFileToRoutePath` 一致。 ### 4. 同步 export-site-utils(若存在) `scripts/export-site-utils.ts` 中的 `ZH_GUIDE_DOCS`、`ZH_INTERVIEW_DOCS` 须与侧栏顺序一致,但值为**相对 `docs/zh/` 的路径**(含 `.md`): ```ts 'index.md', '00-项目概览.md', // ... 'interview/01-简历写法模板.md', ``` `readmeScreenshotTargets` 的 `routePath` 同样用 cleanUrls 格式。 ### 5. 配置 productDetail 在 `vitepress-course-tools.config.ts` 增加 `productDetail`(类型 `ProductDetailConfig`)。 **与 cover 的关系**: - `title` / `subtitle` 可与 `cover.mainTitle` / `subTitle` 对齐 - 未写 `intro` 时导出回退到 `cover.descCn` - 未写 `tocSections` 时回退到 `pdf.tocGroups` 或自动生成 **intro 写法**(包内渲染规则): | 语法 | 效果 | |------|------| | 空行 | 分段 | | 行首 `🔹` / `##` / `【标题】` | 小节标题 | | 行首 `•` `-` `*` | 列表 | | 普通行 | 段落 | **tocSections**:按侧栏分组(如「技术文档」「面试资料」),每项 `{ title, note? }`,标题与 tocManifest 一致,note 为一句卖点。 **gallery**:指向 `screenshotsDir` 下 PNG;路径相对项目根。与 `screenshots` 配置或 `readmeScreenshotTargets` 对齐。图片不存在时包内会回退占位图——正式发版前先跑截图。 **exportVariants**:`['classic', 'minimal', 'card']` 或按需子集。 完整字段说明见 [references/product-detail-fields.md](references/product-detail-fields.md)。 ### 6. package.json 脚本 依赖(Git 安装时无 dist,用 `tsx` 直跑 `src/cli`): ```json "@smart-cs/vitepress-course-tools": "github:cklwblove/vitepress-course-tools" ``` 推荐脚本: ```json "pdf:export": "tsx node_modules/@smart-cs/vitepress-course-tools/src/cli/pdf-export.ts --phase=all", "pdf:export:sections": "... --phase=sections", "pdf:export:cover-toc": "... --phase=cover-toc", "pdf:export:merge": "... --phase=merge", "pdf:export:cover": "tsx node_modules/@smart-cs/vitepress-course-tools/src/cli/pdf-cover.ts", "pdf:export:product": "tsx node_modules/@smart-cs/vitepress-course-tools/src/cli/pdf-product-detail.ts", "pdf:build": "npm run docs:build && npm run pdf:export", "screenshots:readme": "tsx scripts/capture-readme-screenshots.ts", "code:pack": "tsx node_modules/@smart-cs/vitepress-course-tools/src/cli/pack-code.ts" ``` `vitepress-course-tools.config.ts` 顶部类型导入: - 有 dist:`import type { CourseToolsConfig } from '@smart-cs/vitepress-course-tools'` - 仅 Git 源码:改引 `./node_modules/@smart-cs/vitepress-course-tools/src/types.ts` ### 7. 校验 ```bash # 侧栏与磁盘一致(人工或 diff) find docs/zh -name '*.md' | sort # 整本课程 PDF(需先 build) npm run docs:build npm run pdf:export # 商品详情 PDF(不依赖 build,但 gallery 图需存在) npm run pdf:export:product npm run pdf:export:product -- --variant classic # README 截图 → productDetail.gallery npm run docs:build && npm run screenshots:readme ``` 成品路径: - 课程 PDF:`artifacts/pdfs/<pdf.name>-guide-zh.pdf` - 商品详情:`artifacts/pdfs/<pdf.name>-product-*.pdf` ## 新增 / 删除文档时的检查单 1. 在 `docs/zh/` 增删 `.md` 2. 更新 `config.mts` 对应 `zhGuideItems` 或 `zhInterviewItems` 3. 更新 `cover.tocManifest` 同序条目 4. 更新 `productDetail.tocSections`(若有分组目录) 5. 更新 `export-site-utils.ts` 的 `ZH_*_DOCS`(若存在) 6. 新章节若需预览图:加入 `screenshots` / `gallery` / `readmeScreenshotTargets` ## 注意事项 - 勿在 `docs/.vitepress/theme/index.js` 中 import 完整 `vitepress-course-tools.config.ts`(会拖入 Node 依赖导致白屏);主题 class 用 `shared/course-theme-class.ts` - `docsBasePath` 在 `export-site-utils.ts` 可能与 `config.mts` 的 `base` 不一致,以 **config.mts 为准** 并统一 - 虚拟商品文案注意平台合规:避免医疗执业、极限词、站外引流;详见项目内 `品文案.md`(若存在) ## 参考 - 包内 README:`node_modules/@smart-cs/vitepress-course-tools/README.md` - 字段速查:[references/product-detail-fields.md](references/product-detail-fields.md) - 同步关系图:[references/config-sync-map.md](references/config-sync-map.md)
GitHubで見る