配置

hello 的用户侧配置只有一份 vdoc.config.ts。除 title 外全部可选,只写与默认值的差异。

接入三步

npm i -D @hello/vdoc
pnpm add -D @hello/vdoc
yarn add -D @hello/vdoc

在项目根新建 docs/ 放入 Markdown,再新建 vdoc.config.ts:

ts
import { defineConfig } from '@hello/vdoc'

export default defineConfig({
  title: '我的文档',
  description: '一句话站点简介',
  nav: [
    { text: '首页', link: '/' },
    { text: '配置', link: '/post/配置' },
  ],
})
依赖装在哪

作为构建期工具,装进 devDependencies 即可,站点运行时不依赖它。

配置字段

title
站点标题,唯一必填项;缺失会直接报错终止构建
description
站点描述,默认空
keywords
站点关键词,默认空
siteUrl
站点绝对地址,默认空;留空时不产 sitemap,也不下发 canonical
ogImage
社交分享封面,默认 /og-cover.png,须为 png/jpg
ogImageAlt
封面替代文本,默认空
copyright
页脚版权文案,默认空
docsDir
内容目录,相对项目根,默认 docs
maxDepth
扫盘最大层级,默认 6
nav
顶栏导航 { text, link }[],默认空
homeCards
首页分类卡片 { text, link, desc }[],默认空(见下方注意)
repo
仓库外链 { url, branch, docsDir };url 留空则文章页隐藏「编辑 / 历史」入口
homeCards 当前未接入

homeCards 虽在配置契约里,但首页由 home.md 驱动,主题并未消费它——设置后不会有任何效果。

docs/ 目录约定

  • docs
    • index.md目录索引页,挂成所在分组的可点击标题
    • guide
      • install.md自动归入 guide 分组
      • config.md同级按文件名自然序
  • 目录层级 = 侧栏分组,同级按文件名自然序
  • 文件名即文章标题(不写 frontmatter,全部编译期推导)
  • 路由 = /post/<相对 docs/ 的路径去掉 .md>
  • 项目根可放 home.md 覆盖首页正文,缺省用引擎内置模板

命令

terminal
$ vdoc dev # 开发服务器,热更新实时生效
$ vdoc build # 构建静态站点,产出 dist/
$ vdoc preview # 预览已构建产物
  • --config <path> 指定配置文件(相对项目根),默认探测 vdoc.config.ts
  • --port <number> dev / preview 端口
  • --base <path> 部署基础路径,默认 /
  • --outDir <dir> build 产物目录,默认 dist
  • -h, --help 显示帮助

vdoc <command> [root] 的 root 缺省为当前工作目录。

生成物与忽略

  • 引擎中间产物写在 <项目根>/.vdoc/(缓存、配置快照、静态资源)
  • 构建产物默认写在 <项目根>/dist/
  • 两者都建议加入 .gitignore
text
.vdoc/
dist/

常见问题

Q改了配置为什么不生效?
A配置在编译期读取,改后需重新编译(重启 dev 或重新 build),开发模式不热更新配置
Q为什么没有 sitemap.xml?
AsiteUrl 留空时不会生成:sitemap 的 <loc> 必须是绝对地址,宁可缺失也不产错链
Q侧栏顺序能手动指定吗?
A不能,分组与顺序完全由 docs/ 目录结构派生,同级按文件名自然序