回到正文
AGENTS.md — changweihua.github.io
个人技术博客 / 作品集网站(CMONO
Project
- 技术栈:
VitePress 2.0.0-alpha.19 +Vite 8 +TypeScript 7 +Vue 3,包管理器npm (packageManager: npm@12.0.2) - 入口配置:
.vitepress/config.ts(合并src/下各配置模块) - 多语言:
zh-CN(默认,zh-CN/目录)+en-US(仅 locale 配置,无内容目录) - 内容:
zh-CN/blog/YYYY-MM/*.md(技术博客)、gallery/(作品集)、manual/(手册)、course/(课程) - 构建产物含 ECharts 地图、Mermaid、markmap、mathjax、Pagefind 搜索、RSS
Commands(Windows 11,PowerShell)
powershell
npm run docs:dev # 本地开发(vitepress --mode development --host)
npm run docs:build # 生产构建(vitepress build,CI 用)
npm run docs:preview # 预览构建产物
npm run docs:vbuild # vmark && vitepress build
npm test # vitest 测试(vp test)
npm run oxc:lint # oxlint 检查
npm run oxc:lint:fix # oxlint 自动修复
npm run oxc:format # oxfmt 格式化(--write)
npm run deploy # 部署脚本
npm run check # 检查 npm 包更新1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
- PowerShell 注意:管道
|、重定向>、$null语义与 bash 不同;多行命令用反引号续行。 npm install需完整参数(--no-audit --no-fund可加速);若遇 peer 冲突,先检查 package.json 是否残留了未使用的 markdown-it 生态包(详见 Conventions)。
Architecture
.vitepress/config.ts— 主配置:vite(build/css/ssr/alias)、插件注册、manualChunkschunk 拆分、sitemap.vitepress/src/— 配置模块:docs.ts(根配置)、theme.ts(主题)、markdown.ts(markdown 插件)、head.ts、rss.ts、configs/{zh-CN,en-US}.config.ts(locale 主题).vitepress/plugins/— 自定义插件:markdown/下echarts-markdown.ts、markdownMarkmap.ts、codeBarPlugin.ts、markdown-it-picture.ts、pathHashWrapper.ts.vitepress/*.data.ts— VitePress 数据加载器:post.data.ts(全量文章/归档/标签)、blog.data.ts(当月最新)、posts.data.ts(带封面文章)、manual.data.ts.vitepress/components/— Vue 组件(BlogIndex.vue、HomeIndex.vue、Date.vue、ArticleMetadata等)src/— Vue 组件源码(src/components/ArchiveList.vue等,经@vp别名映射到.vitepress)
Conventions
- markdown fence 处理必须走集中式 dispatcher:
.vitepress/src/markdown.ts中的md.renderer.rules.fence统一分发(markmap / echarts / codeBar / languageLabel)。禁止在plugins/markdown/的新插件里直接覆写fence(会破坏链式调用)。 - 博客 frontmatter 必须有
date(东八区),格式支持YYYY-MM-DD HH:mm:ss、YYYY-MM-DD、YYYY-MM(小时可补零也可不补)。日期解析在post.data.ts/blog.data.ts的parseEast8Date,两处需同步修改。 - 表格单元格内反引号必须成对:vitepress 2.0.0-alpha.19 的表格 transform 会因奇数反引号崩溃(
Cannot read properties of undefined (reading '0')),写作时注意`AbortController`之类不要错位。 - vitepress 2.0.0-alpha.19 markdown 配置项名:
image.lazyLoad、codeCopyButton.tooltipText(旧名lazyLoading/codeCopyButtonTitle已移除);主题用lastUpdated.text(旧lastUpdatedText已移除)。 - 不要安装与 vitepress 内置能力重复的 markdown-it 插件(footnote、tasklist 等已内置);安装 markdown-it 生态包时注意 peer 依赖需兼容
markdown-it@15(markdown-it-image-size等要求<15的包会引发 npm eresolve 冲突)。 - 类型包(
@types/*)放devDependencies,不要放dependencies。 - 提交规范:commitizen + conventional commits(gitmoji 前缀,如
:sparkles: feat:);lint-staged 会跑 eslint。 - 代码规范:oxlint 检查、oxfmt 格式化;不用 prettier(已被 oxfmt 取代,虽在 devDependencies 但非主力)。
- 目录约定:忽略
node_modules/、public/、fonts/、fonts-spider/、.github/(分析代码时跳过这些)。 - 路径注意:Windows 文件路径用反斜杠,但 VitePress URL /
manualChunks的id匹配统一用正斜杠/。
Notes
- (预留:后续补充已知坑点、调试技巧等)
V 0.13.12 |
基于 MIT Licensed版权所有 © 2009- 2026 CMONO.NET
本站访客数
--次 本站总访问量
--人次 