install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/auto-vitepress" ~/.claude/skills/majiayu000-claude-skill-registry-auto-vitepress && rm -rf "$T"
manifest:
skills/data/auto-vitepress/SKILL.mdsource content
自动生成 VitePress 文档
目标
为当前项目在
/docs 目录下创建或更新一个 VitePress 文档网站。此过程应具备智能化,能够处理依赖安装、目录扫描、配置生成和文件创建等任务。
指令
步骤 1: 环境准备
- 检查
: 读取项目根目录下的package.json
文件。如果文件不存在,则新建一个满足 VitePress 需求的依赖配置文件,然后继续执行。package.json - 检查并安装依赖:
- 分析
的package.json
字段。devDependencies - 检查
和vitepress
是否已存在。vue - 如果任一依赖缺失,使用
命令进行安装。npm install -D vitepress vue
- 分析
- 创建目录结构:
- 检查项目根目录下是否存在
目录。/docs/.vitepress - 如果不存在,请创建它。
- 检查项目根目录下是否存在
步骤 2: 智能扫描与侧边栏生成
- 查找并读取 README.md:
- 在项目根目录查找
文件。README.md - 如果存在,解析其内容作为文档基础结构参考。
- 分析标题、章节结构和内容,用于构建侧边栏和首页。
- 在项目根目录查找
- 分析项目结构和功能:
- 根据 README 的内容分析项目的主要功能模块。
- 识别项目中的核心概念、组件、工具函数等。
- 根据这些分析结果生成文档结构,而不是直接映射代码文件。
- 构建侧边栏对象:
- 基于 README 的章节结构和项目功能分析来生成侧边栏。
- 将主要功能模块映射为可折叠的分组,格式为
。{ text: '功能模块名', collapsed: false, items: [...] } - 为每个功能模块创建对应的文档页面链接,格式为
。{ text: '功能说明', link: '/模块/说明' } - 如果 README 中有"快速开始"、"使用方法"、"API 参考"等章节,将它们映射为侧边栏项。
- 将这个过程的产物构建成一个符合 VitePress
格式的 JavaScript 数组。sidebar
步骤 3: 生成或更新配置文件
- 检查
: 检查config.js
文件是否存在。/docs/.vitepress/config.js - 如果
不存在:config.js- 读取
的package.json
、name
、description
和author
字段。repository - 从
的package.json
字段提取 GitHub 仓库链接(如果存在)。repository - 从
的package.json
字段提取作者信息(如果存在),用于版权信息。author - 读取项目根目录的
文件确定许可证类型,如果不存在则默认使用 MIT。LICENSE - 检查项目根目录是否存在 logo 图片或图标(如
、logo.png
、logo.svg
、icon.png
等),如果存在则使用,否则使用 VitePress 官方默认 logo(VPLogo)。icon.svg - 读取
的内容作为首页的基础内容(如果存在)。README.md - 创建一个新的
文件,内容如下模板所示,并将上一步生成的config.js
对象填充进去。sidebar
import { defineConfig } from 'vitepress' export default defineConfig({ title: '项目名称', description: '项目描述', themeConfig: { // Logo(如果找到图片则设置,否则使用 VitePress 官方默认 logo) logo: '/logo 路径.png', // 或不设置此属性使用默认 logo // 顶部导航 nav: [ { text: '首页', link: '/' }, { text: '指南', link: '/guide/intro' }, { text: 'GitHub', link: 'https://github.com/username/repo' } ], // 侧边栏 sidebar: [/* 在这里填充侧边栏对象 */], // 底部信息 footer: { message: '基于 许可证类型 许可发布', copyright: `版权所有 © ${new Date().getFullYear()} 作者名` }, // 显示文档最后更新时间 lastUpdated: { text: '最后更新于', formatOptions: { dateStyle: 'full', timeStyle: 'medium' } } } }) - 读取
- 如果
已存在:config.js- 读取文件内容。
- 使用正则表达式或字符串替换的方式,安全地更新
中的themeConfig
字段。注意:只更新sidebar
,不要覆盖用户的其他配置。sidebar - 如果
不存在,则添加基础的顶部导航配置。themeConfig.nav - 如果
不存在,则添加底部版权信息配置。themeConfig.footer - 如果
不存在,则添加文档最后更新时间配置。themeConfig.lastUpdated - 如果
不存在,则检查项目根目录是否存在 logo 图片或图标,如果存在则设置,否则使用 VitePress 官方默认 logo(VPLogo)。themeConfig.logo
步骤 4: 创建文档页面和 NPM 脚本
- 根据功能生成文档页面:
- 遍历
对象中的所有链接。sidebar - 对于每一个功能模块链接,检查对应的文件(如
)是否存在。/docs/模块/说明.md - 如果不存在,根据 README 的相关内容和项目功能分析来生成文档内容。
- 文档内容应包含该功能模块的详细说明、使用方法、示例代码等。
- 而不是简单的占位标题,要生成有实际价值的使用文档。
- 遍历
- 创建首页:
- 检查
是否存在。/docs/index.md - 如果不存在,优先使用
的内容作为首页内容。README.md - 如果
不存在,则使用README.md
的package.json
和name
生成一个简单的首页。description - 首页模板如下(注意 hero 区域只包含
和name
,不包含tagline
):text
--- layout: home hero: name: 项目名称 tagline: 项目描述 actions: - theme: brand text: 快速开始 link: /guide/how-to-use features: - title: 特性 1 details: 特性 1 的描述 - title: 特性 2 details: 特性 2 的描述 --- - 检查
- 添加 NPM 脚本:
- 读取
。package.json - 检查
字段中是否已存在scripts
和docs:dev
。docs:build - 如果不存在,则添加它们:
"scripts": { "docs:dev": "vitepress dev docs", "docs:build": "vitepress build docs" }- 将更新后的内容写回
。package.json
- 读取
总结
完成以上所有步骤后,向用户报告任务完成,并提示他们可以通过运行
npm run docs:dev 来启动文档服务器。