开始
目录
创建项目
首先,你可以通过以下命令创建一个新目录:
执行 npm init -y 来初始化一个项目。你可以使用 npm、yarn 或 pnpm 安装 doom:
然后通过如下命令创建文件:
在 package.json 中加上如下的脚本:
然后初始化一个配置文件 doom.config.yml:
同时新建 tsconfig.json,内容如下:
最后创建 global.d.ts 文件,内容如下:
这样你便可以在 .mdx 文件中类型安全地使用 doom 提供的全局组件了。
命令行工具
更多配置请参考配置
启动开发服务
执行 yarn dev 启动开发服务,浏览器会自动打开文档首页
生产环境构建
执行 yarn build 构建生产环境代码,构建完成后会在 dist 目录生成静态文件
本地预览
执行 yarn serve 预览构建后的静态文件,注意如果使用了 -b, -p 参数构建,预览时也需要使用 -b, -p 参数
使用脚手架模板
执行 yarn new 使用脚手架模板生成项目、模块或文档
翻译文档
-g, --glob参数必填,可以指定需要翻译的文件目录或路径,支持glob语法,注意参数值必须带引号否则会被命令行解析造成非预期行为。示例:yarn translate -g abc xyz,将把<root>/<source>/abc,<root>/<source>/xyz目录下的所有文档翻译到<root>/<target>/abc,<root>/<target>/xyz目录下yarn translate -g '*'将翻译<root>/<source>下的所有文档文件
-C, --copy参数可选,是否在目标文件不存在时复制本地路径的资源文件到目标目录,默认为false,即改变资源文件的引用路径为引用源路径。示例:- 当启动此参数
/<source>/abc.jpg翻译时将复制<root>/public/<source>/abc.jpg到<root>/public/<target>/abc.jpg,并修改文档中的引用路径为/<target>/abc.jpg<root>/<source>/abc.mdx文档中的./assets/xyz.jpg翻译时将复制<root>/<source>/assets/xyz.jpg到<root>/<target>/assets/xyz.jpg,图片引用路径保持不变<root>/<source>/abc.mdx文档中的./assets/<source>/xyz.jpg翻译时将复制<root>/<source>/assets/<source>/xyz.jpg到<root>/<target>/assets/<target>/xyz.jpg,并修改文档中的引用路径为./assets/<target>/xyz.jpg
- 当没有启用此参数:
/<source>/abc.jpg翻译时如果<root>/public/<target>/abc.jpg已存在,将修改文档中的引用路径为/<target>/abc.jpg,否则保持图片引用路径保持不变<root>/<source>/abc.mdx文档中的./assets/<source>/xyz.jpg翻译时,如果<root>/<target>/assets/<target>/xyz.jpg已存在,将修改文档中的引用路径为./assets/<target>/xyz.jpg,否则将修改为../<source>/assets/<target>/xyz.jpg
- 当启动此参数
特殊地,如果使用 -g '*' 进行全量翻译,将会对比 source 和 target 目录文件列表,除 internalRoutes 之外的不匹配的 target 文件将被自动删除
翻译功能须在本地配置 AZURE_OPENAI_API_KEY 环境变量,请联系各自团队 Leader 获取
文档中可以使用元数据控制翻译行为
更多配置请参考翻译配置
导出 PDF
请在执行导出操作前先执行 yarn build 构建操作
执行 yarn export 导出文档为 PDF 文件,注意如果使用了 -b, -p 参数构建,导出时也需要使用 -b, -p 参数
导出功能依赖 playwright,流水线请使用 build-harbor.alauda.cn/frontend/playwright-runner:doom 作为依赖安装和文档构建的基础镜像,
本地可以设置如下环境变量加速下载:
除了全站统一导出完整 pdf 文档外,doom 还支持指定入口导出单个 pdf 文件,更多配置请参考文档导出配置
文档检查
doom lint 基于 ESLint 和 cspell,如果希望在编辑器中拥有更好的体验,可以安装相应的插件 ESLint / CSpell,然后创建相应的配置文件:
-
eslint.config.mjs: -
cspell.config.mjs:
同时我们约定当前工作目录(CWD)下 .cspell 文件夹用于存放 CSpell 的字典文件,例如你可以创建 .cspell/k8s.txt:
更多配置请参考文档检查配置