zengen 0.1.36 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (153) hide show
  1. package/.github/workflows/pages.yml +1 -1
  2. package/.zen/meta.json +128 -30
  3. package/.zen/src/en-US/01d04f7c17b4a541ead9d759d877b30b403e15b849182a49eb1f62bd29ecd18c.md +120 -0
  4. package/.zen/src/en-US/1b798c44a4f353e47296ca83d5905e37e6aba3e90bbd9bc3b3d34fc12059a2ca.md +75 -0
  5. package/.zen/src/en-US/1e96be58d76c60056b708eb5bd8b8b81d7b5845d9cfe0b879d85068a5f11df3a.md +189 -0
  6. package/.zen/src/en-US/5ec990146b35e00de2630559126ee07f7cdcddeb23b0e8cab3d85b4181353e26.md +53 -0
  7. package/.zen/src/en-US/6124ea88edec5bde737b26b21f71ecfeffe4e73151784856edf813ee231a4baa.md +11 -0
  8. package/.zen/src/en-US/80ae9bed74fc6348a7c1fe9f33e86b65f5d919169721f77bcf0e1bc29fbdb4f9.md +61 -0
  9. package/.zen/src/en-US/f0c2799126931ccd113a0c45b1e623870b0d4f4f400becf6dd877da8f1011517.md +41 -0
  10. package/.zen/src/en-US/fdfca9b960d0eaa8b2b96fe988ead7481d2c0b16f66ebc94fb477139b4178cdc.md +65 -0
  11. package/.zen/src/zh-Hans/01d04f7c17b4a541ead9d759d877b30b403e15b849182a49eb1f62bd29ecd18c.md +120 -0
  12. package/.zen/src/zh-Hans/1b798c44a4f353e47296ca83d5905e37e6aba3e90bbd9bc3b3d34fc12059a2ca.md +77 -0
  13. package/.zen/src/zh-Hans/1e96be58d76c60056b708eb5bd8b8b81d7b5845d9cfe0b879d85068a5f11df3a.md +189 -0
  14. package/.zen/src/zh-Hans/5ec990146b35e00de2630559126ee07f7cdcddeb23b0e8cab3d85b4181353e26.md +55 -0
  15. package/.zen/src/zh-Hans/6124ea88edec5bde737b26b21f71ecfeffe4e73151784856edf813ee231a4baa.md +1 -0
  16. package/.zen/src/zh-Hans/6ad8db715a1b60613fe934fefb29fa981ecad9b63145593accff144d73b44bde.md +175 -0
  17. package/.zen/src/zh-Hans/80ae9bed74fc6348a7c1fe9f33e86b65f5d919169721f77bcf0e1bc29fbdb4f9.md +63 -0
  18. package/.zen/src/zh-Hans/a1580f71c6c6c1ff4a314be72d410a8507af2f087d56360c7f5048d349c21953.md +48 -0
  19. package/.zen/src/zh-Hans/d49012f98c4367b34034063400e2f7826bf0615952210c82396920172d468e2c.md +107 -0
  20. package/.zen/src/zh-Hans/f0c2799126931ccd113a0c45b1e623870b0d4f4f400becf6dd877da8f1011517.md +41 -0
  21. package/.zen/src/zh-Hans/fdfca9b960d0eaa8b2b96fe988ead7481d2c0b16f66ebc94fb477139b4178cdc.md +65 -0
  22. package/assets/templates/default/layout.html +274 -0
  23. package/dist/ai/extractMetadataFromMarkdown.d.ts +8 -0
  24. package/dist/ai/extractMetadataFromMarkdown.d.ts.map +1 -0
  25. package/dist/ai/extractMetadataFromMarkdown.js +88 -0
  26. package/dist/ai/extractMetadataFromMarkdown.js.map +1 -0
  27. package/dist/ai/translateMarkdown.d.ts +8 -0
  28. package/dist/ai/translateMarkdown.d.ts.map +1 -0
  29. package/dist/ai/translateMarkdown.js +29 -0
  30. package/dist/ai/translateMarkdown.js.map +1 -0
  31. package/dist/build/pipeline.d.ts +6 -0
  32. package/dist/build/pipeline.d.ts.map +1 -0
  33. package/dist/build/pipeline.js +218 -0
  34. package/dist/build/pipeline.js.map +1 -0
  35. package/dist/cli.js +10 -118
  36. package/dist/cli.js.map +1 -1
  37. package/dist/findEntries.d.ts +10 -0
  38. package/dist/findEntries.d.ts.map +1 -0
  39. package/dist/findEntries.js +38 -0
  40. package/dist/findEntries.js.map +1 -0
  41. package/dist/index.d.ts +1 -32
  42. package/dist/index.d.ts.map +1 -1
  43. package/dist/index.js +1 -35
  44. package/dist/index.js.map +1 -1
  45. package/dist/metadata.d.ts +14 -0
  46. package/dist/metadata.d.ts.map +1 -0
  47. package/dist/metadata.js +78 -0
  48. package/dist/metadata.js.map +1 -0
  49. package/dist/paths.d.ts +6 -0
  50. package/dist/paths.d.ts.map +1 -0
  51. package/dist/paths.js +10 -0
  52. package/dist/paths.js.map +1 -0
  53. package/dist/process/extractMetadataByAI.d.ts +5 -0
  54. package/dist/process/extractMetadataByAI.d.ts.map +1 -0
  55. package/dist/process/extractMetadataByAI.js +31 -0
  56. package/dist/process/extractMetadataByAI.js.map +1 -0
  57. package/dist/process/template.d.ts +5 -0
  58. package/dist/process/template.d.ts.map +1 -0
  59. package/dist/process/template.js +188 -0
  60. package/dist/process/template.js.map +1 -0
  61. package/dist/scan/files.d.ts +7 -0
  62. package/dist/scan/files.d.ts.map +1 -0
  63. package/dist/scan/files.js +54 -0
  64. package/dist/scan/files.js.map +1 -0
  65. package/dist/services/openai.d.ts +41 -0
  66. package/dist/services/openai.d.ts.map +1 -0
  67. package/dist/services/openai.js +54 -0
  68. package/dist/services/openai.js.map +1 -0
  69. package/dist/types.d.ts +16 -67
  70. package/dist/types.d.ts.map +1 -1
  71. package/dist/utils/convertMarkdownToHtml.d.ts +7 -0
  72. package/dist/utils/convertMarkdownToHtml.d.ts.map +1 -0
  73. package/dist/utils/convertMarkdownToHtml.js +39 -0
  74. package/dist/utils/convertMarkdownToHtml.js.map +1 -0
  75. package/dist/utils/frontmatter.d.ts +6 -0
  76. package/dist/utils/frontmatter.d.ts.map +1 -0
  77. package/dist/utils/frontmatter.js +22 -0
  78. package/dist/utils/frontmatter.js.map +1 -0
  79. package/docs/deployment/github-pages.md +1 -2
  80. package/docs/guides/best-practices.md +4 -4
  81. package/docs/guides/config.md +0 -5
  82. package/package.json +4 -2
  83. package/src/ai/extractMetadataFromMarkdown.ts +95 -0
  84. package/src/ai/translateMarkdown.ts +29 -0
  85. package/src/build/pipeline.ts +211 -0
  86. package/src/cli.ts +10 -132
  87. package/src/findEntries.ts +37 -0
  88. package/src/index.ts +1 -40
  89. package/src/metadata.ts +44 -0
  90. package/src/paths.ts +7 -0
  91. package/src/process/extractMetadataByAI.ts +29 -0
  92. package/src/process/template.ts +201 -0
  93. package/src/scan/files.ts +17 -0
  94. package/src/services/openai.ts +92 -0
  95. package/src/types.ts +18 -72
  96. package/src/utils/convertMarkdownToHtml.ts +32 -0
  97. package/src/utils/frontmatter.ts +18 -0
  98. package/.zen/translations.json +0 -51
  99. package/dist/ai-client.d.ts +0 -34
  100. package/dist/ai-client.d.ts.map +0 -1
  101. package/dist/ai-client.js +0 -180
  102. package/dist/ai-client.js.map +0 -1
  103. package/dist/ai-processor.d.ts +0 -51
  104. package/dist/ai-processor.d.ts.map +0 -1
  105. package/dist/ai-processor.js +0 -215
  106. package/dist/ai-processor.js.map +0 -1
  107. package/dist/ai-service.d.ts +0 -79
  108. package/dist/ai-service.d.ts.map +0 -1
  109. package/dist/ai-service.js +0 -257
  110. package/dist/ai-service.js.map +0 -1
  111. package/dist/builder.d.ts +0 -70
  112. package/dist/builder.d.ts.map +0 -1
  113. package/dist/builder.js +0 -854
  114. package/dist/builder.js.map +0 -1
  115. package/dist/gitignore.d.ts +0 -41
  116. package/dist/gitignore.d.ts.map +0 -1
  117. package/dist/gitignore.js +0 -202
  118. package/dist/gitignore.js.map +0 -1
  119. package/dist/gitignore.test.d.ts +0 -2
  120. package/dist/gitignore.test.d.ts.map +0 -1
  121. package/dist/gitignore.test.js +0 -309
  122. package/dist/gitignore.test.js.map +0 -1
  123. package/dist/markdown.d.ts +0 -35
  124. package/dist/markdown.d.ts.map +0 -1
  125. package/dist/markdown.js +0 -221
  126. package/dist/markdown.js.map +0 -1
  127. package/dist/navigation.d.ts +0 -46
  128. package/dist/navigation.d.ts.map +0 -1
  129. package/dist/navigation.js +0 -196
  130. package/dist/navigation.js.map +0 -1
  131. package/dist/scanner.d.ts +0 -26
  132. package/dist/scanner.d.ts.map +0 -1
  133. package/dist/scanner.js +0 -190
  134. package/dist/scanner.js.map +0 -1
  135. package/dist/template.d.ts +0 -33
  136. package/dist/template.d.ts.map +0 -1
  137. package/dist/template.js +0 -434
  138. package/dist/template.js.map +0 -1
  139. package/dist/translation-service.d.ts +0 -72
  140. package/dist/translation-service.d.ts.map +0 -1
  141. package/dist/translation-service.js +0 -291
  142. package/dist/translation-service.js.map +0 -1
  143. package/src/ai-client.ts +0 -227
  144. package/src/ai-processor.ts +0 -243
  145. package/src/ai-service.ts +0 -281
  146. package/src/builder.ts +0 -991
  147. package/src/gitignore.test.ts +0 -318
  148. package/src/gitignore.ts +0 -193
  149. package/src/markdown.ts +0 -212
  150. package/src/navigation.ts +0 -237
  151. package/src/scanner.ts +0 -180
  152. package/src/template.ts +0 -425
  153. package/src/translation-service.ts +0 -350
@@ -0,0 +1,61 @@
1
+ ---
2
+ title: ZEN Configuration Guide
3
+ summary: This document introduces the configuration and usage of the ZEN tool, including basic commands such as building documentation, live preview, and starting a development server, as well as detailed explanations of command-line options like --watch, --serve, and --port.
4
+ tags:
5
+ - ZEN
6
+ - Configuration Guide
7
+ - Command Line
8
+ - Documentation Build
9
+ - Development Server
10
+ - Minimalism
11
+ inferred_lang: en-US
12
+ ---
13
+
14
+ # Configuration Guide
15
+
16
+ ZEN is designed with a minimalist philosophy, making its configuration very simple.
17
+
18
+ ## Command Line Usage
19
+
20
+ ### Basic Commands
21
+
22
+ ```bash
23
+ # Build documentation (recommended usage)
24
+ npx zengen build
25
+
26
+ # Live preview (watch for file changes)
27
+ npx zengen build --watch
28
+
29
+ # Start development server (requires --watch)
30
+ npx zengen build --watch --serve
31
+
32
+ # Custom port
33
+ npx zengen build --watch --serve --port 8080
34
+
35
+ # Show verbose logs
36
+ npx zengen build --verbose
37
+
38
+ # Set base URL
39
+ npx zengen build --base-url /my-docs
40
+
41
+ # View help
42
+ npx zengen
43
+ ```
44
+
45
+ **Important Notes:**
46
+
47
+ - ZEN enforces the use of the current directory as the source directory, outputting to the `.zen/dist` directory
48
+ - Specifying source and output directories via command-line arguments is no longer supported
49
+ - When using `--watch` mode, modifying files triggers automatic rebuilds
50
+
51
+ ### Command Line Options
52
+
53
+ | Option | Short | Description | Default |
54
+ | ------------ | ----- | ------------------------------------------------ | ----------- |
55
+ | `--watch` | `-w` | Watch for file changes and rebuild automatically | `false` |
56
+ | `--serve` | `-s` | Start development server (requires `--watch`) | `false` |
57
+ | `--port` | `-p` | Development server port | `3000` |
58
+ | `--host` | | Development server host | `localhost` |
59
+ | `--verbose` | `-v` | Show verbose logs | `false` |
60
+ | `--base-url` | | Site base URL | None |
61
+ | `--help` | `-h` | Show help information | None |
@@ -0,0 +1,41 @@
1
+ ---
2
+ title: Quick Start Guide
3
+ summary: This document introduces the quick start method for the ZEN documentation generator, including installation steps, basic usage workflow, and main features, helping users get started quickly.
4
+ tags:
5
+ - ZEN Documentation Generator
6
+ - Quick Start
7
+ - Installation
8
+ - Basic Usage
9
+ - Features
10
+ - Markdown
11
+ - AI-Assisted
12
+ - Multi-language Support
13
+ inferred_lang: en-US
14
+ ---
15
+
16
+ # Quick Start Guide
17
+
18
+ This document introduces how to quickly get started with the ZEN documentation generator.
19
+
20
+ ## Installation
21
+
22
+ ```bash
23
+ npm install -g zengen
24
+ ```
25
+
26
+ ## Basic Usage
27
+
28
+ 1. Create a documentation directory
29
+ 2. Write Markdown files
30
+ 3. Run the build command
31
+
32
+ ```bash
33
+ zengen build --src ./docs --out ./dist
34
+ ```
35
+
36
+ ## Features
37
+
38
+ - Minimal configuration
39
+ - Built-in responsive templates
40
+ - AI-assisted metadata extraction
41
+ - Multi-language support
@@ -0,0 +1,65 @@
1
+ ---
2
+ title: ZEN Documentation Site Example
3
+ summary: Introducing ZEN documentation builder, a minimalist Markdown documentation site generator, including features such as minimal configuration, content-first approach, intelligent navigation, multilingual support, as well as a quick start guide and code examples.
4
+ tags:
5
+ - ZEN
6
+ - Documentation Builder
7
+ - Markdown
8
+ - Site Generator
9
+ - Minimalism
10
+ - Quick Start
11
+ - Multilingual Support
12
+ inferred_lang: en-US
13
+ ---
14
+
15
+ # ZEN Documentation Site Example
16
+
17
+ Welcome to the ZEN documentation builder! This is a minimalist Markdown documentation site generator.
18
+
19
+ ## Features
20
+
21
+ - **Minimal Configuration**: No complex configuration files required
22
+ - **Content-First**: Focus on writing, not tool configuration
23
+ - **Intelligent Navigation**: Automatically generates site maps and navigation
24
+ - **Multilingual Support**: Supports incremental i18n translation
25
+
26
+ ## Quick Start
27
+
28
+ ```bash
29
+ # Build documentation using npx (recommended)
30
+ npx zengen build
31
+
32
+ # Live preview (watches for file changes)
33
+ npx zengen build --watch
34
+
35
+ # View more parameters or help
36
+ npx zengen
37
+ ```
38
+
39
+ **Note**: ZEN enforces the use of the current directory as the source directory and outputs to the `.zen/dist` directory. Specifying source and output directory parameters is no longer supported.
40
+
41
+ ## Code Examples
42
+
43
+ ```javascript
44
+ // This is a JavaScript example
45
+ const zen = require('zengen');
46
+
47
+ async function buildDocs() {
48
+ await zen.build({
49
+ // ZEN now enforces using the current directory as the source directory
50
+ // Outputs to the .zen/dist directory
51
+ });
52
+ }
53
+ ```
54
+
55
+ ```python
56
+ # This is a Python example
57
+ def hello_world():
58
+ print("Hello from ZEN!")
59
+ ```
60
+
61
+ ## Next Steps
62
+
63
+ 1. Read the [API Documentation](./api.md)
64
+ 2. Check the [Configuration Guide](./config.md)
65
+ 3. Learn about [Best Practices](./best-practices.md)
@@ -0,0 +1,120 @@
1
+ ---
2
+ title: GitHub Pages 部署配置
3
+ summary: 本文档介绍了 ZEN 项目文档站点的 GitHub Pages 部署配置,包括工作流程、触发条件、构建步骤、自定义配置、故障排除和手动触发方法。
4
+ tags:
5
+ - GitHub Pages
6
+ - 部署配置
7
+ - 工作流程
8
+ - 文档构建
9
+ - 故障排除
10
+ - ZEN 项目
11
+ inferred_lang: zh-Hans
12
+ ---
13
+
14
+ # GitHub Pages 部署配置
15
+
16
+ 此目录包含 ZEN 项目文档站点的 GitHub Pages 部署配置。
17
+
18
+ ## 工作流程
19
+
20
+ ### `pages.yml`
21
+
22
+ 此工作流程会自动构建 ZEN 项目的文档站点并部署到 GitHub Pages。
23
+
24
+ **触发条件:**
25
+
26
+ - 推送到 `main` 分支(当 `demo/src/`、`package.json` 或工作流程文件发生变化时)
27
+ - 针对 `main` 分支的 Pull Request
28
+ - 手动触发
29
+
30
+ **工作流程步骤:**
31
+
32
+ 1. **检出代码**:从远程分支检出代码,确保代码同步
33
+ 2. **设置 Node.js**:配置 Node.js 20.x 环境
34
+ 3. **安装依赖**:使用 `npm ci` 安装项目依赖
35
+ 4. **构建 zengen**:构建本地 zengen 包
36
+ 5. **安装 zengen**:将本地构建的 zengen 安装为全局工具
37
+ 6. **测试 zengen CLI**:验证 CLI 工具正常工作
38
+ 7. **构建文档站点**:使用 `cd demo/src && zengen build` 构建文档,输出到 `.zen/dist` 目录
39
+ 8. **配置 Pages**:设置 GitHub Pages
40
+ 9. **上传制品**:将构建的文档站点上传为 Pages 制品
41
+ 10. **部署到 GitHub Pages**:自动部署到 GitHub Pages
42
+
43
+ ## 访问文档站点
44
+
45
+ 部署成功后,文档站点将可通过以下 URL 访问:
46
+
47
+ ```
48
+ https://[用户名].github.io/[仓库名]/
49
+ ```
50
+
51
+ ## 自定义配置
52
+
53
+ ### 自定义域名
54
+
55
+ 如果需要使用自定义域名,可以在构建步骤后添加 CNAME 文件:
56
+
57
+ ```yaml
58
+ # 创建 CNAME 文件(如果需要自定义域名)
59
+ echo "docs.example.com" > docs-dist/CNAME
60
+ ```
61
+
62
+ ### 构建选项
63
+
64
+ 当前使用的构建命令:
65
+
66
+ ```bash
67
+ cd demo/src
68
+ zengen build --verbose
69
+ ```
70
+
71
+ 可用的选项:
72
+
73
+ - `--verbose`:显示详细输出
74
+ - `--watch`:监听模式(不适用于 CI/CD)
75
+ - `--template`:指定自定义模板文件
76
+ - `--config`:指定配置文件
77
+
78
+ ### 环境变量
79
+
80
+ 工作流程使用以下环境变量:
81
+
82
+ - `GITHUB_TOKEN`:自动提供的 GitHub 令牌
83
+ - `NODE_VERSION`:Node.js 版本(默认为 20.x)
84
+
85
+ ## 故障排除
86
+
87
+ ### 构建失败
88
+
89
+ 1. **检查 Node.js 版本**:确保使用支持的 Node.js 版本
90
+ 2. **验证依赖安装**:确保 `npm ci` 成功执行
91
+ 3. **检查构建输出**:查看 `zengen build` 的详细输出
92
+ 4. **CLI 输出目录问题**:ZEN 现在强制输出到 `.zen/dist` 目录,不再支持 `--out` 参数。
93
+
94
+ ### 部署失败
95
+
96
+ 1. **检查权限**:确保工作流程有正确的 Pages 写入权限
97
+ 2. **验证制品**:确保 `.zen/dist` 目录包含有效的 HTML 文件
98
+ 3. **查看日志**:检查 GitHub Actions 日志获取详细错误信息
99
+
100
+ ### 文档未更新
101
+
102
+ 1. **检查触发条件**:确保修改了 `demo/src/` 目录下的文件
103
+ 2. **等待部署完成**:GitHub Pages 部署可能需要几分钟
104
+ 3. **清除浏览器缓存**:浏览器可能缓存了旧版本
105
+
106
+ ## 手动触发
107
+
108
+ 可以通过 GitHub Actions 界面手动触发部署:
109
+
110
+ 1. 进入仓库的 "Actions" 标签页
111
+ 2. 选择 "Deploy to GitHub Pages" 工作流程
112
+ 3. 点击 "Run workflow" 按钮
113
+ 4. 选择分支并运行
114
+
115
+ ## 相关文件
116
+
117
+ - `demo/src/`:文档源文件(Markdown 格式)
118
+ - `package.json`:项目配置和依赖
119
+ - `src/cli.ts`:zengen CLI 工具实现
120
+ - `src/builder.ts`:文档构建器实现
@@ -0,0 +1,77 @@
1
+ ---
2
+ title: ZEN - Markdown 文档站点构建工具
3
+ summary:
4
+ ZEN 是一个极简的静态站点生成工具,专注于将 Markdown 文件夹构建为 HTML 站点,支持智能导航和 AI
5
+ 驱动的增量翻译,强调内容优先和跨语言支持,无需复杂配置。
6
+ tags:
7
+ - Markdown
8
+ - 静态站点生成
9
+ - AI 翻译
10
+ - 极简主义
11
+ - 多语言
12
+ - 文档工具
13
+ - ZEN
14
+ inferred_lang: zh-Hans
15
+ ---
16
+
17
+ # ZEN - 简洁的 Markdown 文档站点构建工具
18
+
19
+ > 📖 **阅读提示**: 本 README 为中文版本。英文版本将由 AI 自动翻译生成。
20
+
21
+ ## 项目初衷
22
+
23
+ ### 回归内容
24
+
25
+ 我喜欢沉思,但不想要配置复杂的构建工具,折腾复杂的文档配置,不喜欢复杂的结构。
26
+
27
+ ### 回归母语
28
+
29
+ 生命苦短,我用 AI 翻译。与世界保持连接。
30
+
31
+ ## 基本功能
32
+
33
+ 1. **静态站点生成**
34
+ - 将任意一个包含 Markdown 的文件夹构建成一个静态 HTML 站点
35
+
36
+ 2. **智能导航**
37
+ - 生成站点地图和导航,不需要保持原始的 Markdown 源文件的目录结构
38
+
39
+ 3. **增量 i18n 翻译**
40
+ - 使用 LLM 进行增量 i18n 翻译,让用户使用母语编写 Markdown,但是用户可以是多语言的
41
+
42
+ ## 设计理念
43
+
44
+ - **极简主义**: 最少的配置,最大的灵活性
45
+ - **内容优先**: 专注于写作,而不是工具配置
46
+ - **AI 赋能**: 利用 AI 处理翻译和内容组织
47
+ - **跨语言**: 支持多语言内容创作和展示
48
+
49
+ ## 快速开始
50
+
51
+ ### 推荐使用方式
52
+
53
+ **推荐用户切换到包含 Markdown 文件的目录下,直接使用以下命令开始构建:**
54
+
55
+ ```bash
56
+ npx zengen build
57
+ ```
58
+
59
+ ### 其他用法
60
+
61
+ 1. **实时预览(监听文件变化)**:
62
+
63
+ ```bash
64
+ npx zengen build --watch
65
+ ```
66
+
67
+ 2. **查看更多参数或帮助**:
68
+
69
+ ```bash
70
+ npx zengen
71
+ ```
72
+
73
+ **注意**:ZEN 强制使用当前目录作为源目录,输出到 `.zen/dist` 目录。不再支持指定源目录和输出目录参数。
74
+
75
+ ---
76
+
77
+ **ZEN** - 让文档回归本质,让写作回归宁静。
@@ -0,0 +1,189 @@
1
+ ---
2
+ title: ZEN 文档站点最佳实践
3
+ summary: 本文档介绍了使用 ZEN 构建文档站点的最佳实践,涵盖多语言管理、性能优化、部署策略、维护建议、常见问题解决方案和高级技巧,旨在帮助用户高效开发和维护文档。
4
+ tags:
5
+ - ZEN
6
+ - 文档站点
7
+ - 最佳实践
8
+ - 性能优化
9
+ - 部署策略
10
+ - 多语言管理
11
+ - 维护建议
12
+ inferred_lang: zh-Hans
13
+ ---
14
+
15
+ # 最佳实践
16
+
17
+ 本文档介绍使用 ZEN 构建文档站点的最佳实践。
18
+
19
+ ## 多语言管理
20
+
21
+ ### 翻译策略
22
+
23
+ 1. **主语言优先**: 先用母语完整编写文档
24
+ 2. **增量翻译**: 每次更新后只翻译修改部分
25
+ 3. **术语一致**: 建立术语表保持翻译一致性
26
+ 4. **人工校对**: AI 翻译后建议人工校对
27
+
28
+ ## 性能优化
29
+
30
+ ### 构建优化
31
+
32
+ 1. **增量构建**: 使用 `--watch` 模式开发
33
+ 2. **缓存利用**: ZEN 会自动缓存处理结果
34
+ 3. **并行处理**: 多核 CPU 自动并行处理文件
35
+
36
+ ### 开发工作流
37
+
38
+ ```bash
39
+ # 开发时监听变化
40
+ cd docs
41
+ npx zengen build --watch
42
+
43
+ # 启动开发服务器
44
+ npx zengen build --watch --serve
45
+
46
+ # 生产构建
47
+ npx zengen build
48
+ ```
49
+
50
+ ## 部署策略
51
+
52
+ ### CI/CD 集成
53
+
54
+ #### GitHub Actions 示例
55
+
56
+ ```yaml
57
+ name: Build and Deploy Documentation
58
+ on:
59
+ push:
60
+ branches: [main]
61
+ paths:
62
+ - 'docs/**'
63
+ - '.github/workflows/docs.yml'
64
+
65
+ jobs:
66
+ build:
67
+ runs-on: ubuntu-latest
68
+ steps:
69
+ - name: Checkout repository
70
+ uses: actions/checkout@v4
71
+
72
+ - name: Setup Node.js
73
+ uses: actions/setup-node@v4
74
+ with:
75
+ node-version: '20.x'
76
+
77
+ - name: Build documentation
78
+ run: |
79
+ cd docs
80
+ npx zengen build --base-url /my-docs
81
+
82
+ - name: Deploy to GitHub Pages
83
+ uses: peaceiris/actions-gh-pages@v3
84
+ with:
85
+ github_token: ${{ secrets.GITHUB_TOKEN }}
86
+ publish_dir: docs/.zen/dist
87
+ ```
88
+
89
+ #### 自定义部署脚本
90
+
91
+ ```bash
92
+ #!/bin/bash
93
+ # deploy-docs.sh
94
+
95
+ # 切换到文档目录
96
+ cd docs
97
+
98
+ # 构建文档
99
+ npx zengen build
100
+
101
+ # 同步到服务器
102
+ rsync -avz .zen/dist/ user@server:/var/www/docs/
103
+
104
+ # 清理缓存
105
+ rm -rf .zen/cache
106
+ ```
107
+
108
+ ### 云部署选项
109
+
110
+ - **GitHub Pages**: 免费托管文档
111
+ - **Vercel**: 自动部署静态站点
112
+ - **Netlify**: 支持表单处理和重定向
113
+ - **AWS S3 + CloudFront**: 企业级静态托管
114
+
115
+ ## 维护建议
116
+
117
+ ### 定期更新
118
+
119
+ 1. **内容审核**: 每月检查文档准确性
120
+ 2. **链接检查**: 定期检查死链
121
+ 3. **性能监控**: 监控页面加载速度
122
+ 4. **用户反馈**: 收集用户反馈改进文档
123
+
124
+ ### 版本控制
125
+
126
+ 1. **文档版本化**: 与软件版本同步
127
+ 2. **变更日志**: 记录文档更新历史
128
+ 3. **回滚机制**: 支持快速回滚到旧版本
129
+
130
+ ## 常见问题
131
+
132
+ ### 构建速度慢
133
+
134
+ **解决方案:**
135
+
136
+ - 减少不必要的图片和资源
137
+ - 使用 `--watch` 模式进行增量开发
138
+ - 拆分大型文档为多个小文件
139
+ - 禁用不需要的处理器
140
+
141
+ ### 翻译质量不高
142
+
143
+ **解决方案:**
144
+
145
+ - 提供上下文给 AI 翻译
146
+ - 建立术语表提高一致性
147
+ - 人工校对关键内容
148
+ - 调整翻译提示词
149
+
150
+ ### 导航结构复杂
151
+
152
+ **解决方案:**
153
+
154
+ - 保持扁平化目录结构
155
+ - 使用清晰的标题层级
156
+ - 提供搜索功能
157
+ - 合理使用侧边栏导航
158
+
159
+ ### 内存使用过高
160
+
161
+ **解决方案:**
162
+
163
+ - 减少同时处理的文件数量
164
+ - 禁用缓存(不推荐)
165
+ - 增加系统内存
166
+ - 分批处理大型文档
167
+
168
+ ## 高级技巧
169
+
170
+ ### 自定义模板技巧
171
+
172
+ 1. **响应式设计**: 确保模板在移动设备上正常显示
173
+ 2. **主题切换**: 实现深色/浅色主题
174
+ 3. **代码高亮**: 集成 highlight.js 或其他高亮库
175
+ 4. **搜索功能**: 添加客户端搜索
176
+
177
+ ### 集成其他工具
178
+
179
+ 1. **图片优化**: 使用 sharp 或 imagemin 优化图片
180
+ 2. **SEO 优化**: 添加 meta 标签和结构化数据
181
+ 3. **分析集成**: 集成 Google Analytics 或 Plausible
182
+ 4. **CDN 加速**: 使用 CDN 加速静态资源
183
+
184
+ ### 监控和日志
185
+
186
+ 1. **构建日志**: 使用 `--verbose` 查看详细日志
187
+ 2. **错误监控**: 设置错误监控和告警
188
+ 3. **性能监控**: 监控构建时间和资源使用
189
+ 4. **用户分析**: 分析文档使用情况
@@ -0,0 +1,55 @@
1
+ ---
2
+ title: ZEN 高级用法指南
3
+ summary:
4
+ 本文档介绍了 ZEN 的高级功能,包括自定义 HTML 模板、配置选项(如源目录、输出目录、模板、基础 URL
5
+ 和多语言支持)以及插件系统,帮助用户扩展和定制 ZEN 工具。
6
+ tags:
7
+ - ZEN
8
+ - 高级用法
9
+ - 自定义模板
10
+ - 配置选项
11
+ - 插件系统
12
+ - 文档生成
13
+ - 多语言支持
14
+ inferred_lang: zh-Hans
15
+ ---
16
+
17
+ # 高级用法
18
+
19
+ 深入介绍 ZEN 的高级功能和配置选项。
20
+
21
+ ## 自定义模板
22
+
23
+ ZEN 支持自定义 HTML 模板:
24
+
25
+ ```bash
26
+ zengen build --src ./docs --out ./dist --template ./custom-template.html
27
+ ```
28
+
29
+ ## 配置选项
30
+
31
+ 可以在 `.zenrc` 文件中配置:
32
+
33
+ ```json
34
+ {
35
+ "srcDir": "./docs",
36
+ "outDir": "./dist",
37
+ "template": "./template.html",
38
+ "baseUrl": "https://example.com",
39
+ "i18n": {
40
+ "sourceLang": "zh-Hans",
41
+ "targetLangs": ["en-US", "ja-JP"]
42
+ }
43
+ }
44
+ ```
45
+
46
+ ## 插件系统
47
+
48
+ ZEN 支持插件扩展功能:
49
+
50
+ ```typescript
51
+ interface MarkdownProcessor {
52
+ beforeParse?(content: string, fileInfo: FileInfo): string | Promise<string>;
53
+ afterParse?(html: string, fileInfo: FileInfo): string | Promise<string>;
54
+ }
55
+ ```