zengen 0.1.35 → 0.1.36

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 (70) hide show
  1. package/.github/workflows/bump-version.yml +112 -0
  2. package/.github/workflows/ci.yml +2 -2
  3. package/.github/workflows/pages.yml +1 -7
  4. package/.zen/meta.json +57 -0
  5. package/.zen/translations.json +51 -0
  6. package/dist/ai-client.d.ts +34 -0
  7. package/dist/ai-client.d.ts.map +1 -0
  8. package/dist/ai-client.js +180 -0
  9. package/dist/ai-client.js.map +1 -0
  10. package/dist/ai-processor.d.ts +51 -0
  11. package/dist/ai-processor.d.ts.map +1 -0
  12. package/dist/ai-processor.js +215 -0
  13. package/dist/ai-processor.js.map +1 -0
  14. package/dist/ai-service.d.ts +79 -0
  15. package/dist/ai-service.d.ts.map +1 -0
  16. package/dist/ai-service.js +257 -0
  17. package/dist/ai-service.js.map +1 -0
  18. package/dist/builder.d.ts +26 -2
  19. package/dist/builder.d.ts.map +1 -1
  20. package/dist/builder.js +420 -9
  21. package/dist/builder.js.map +1 -1
  22. package/dist/cli.js +45 -3
  23. package/dist/cli.js.map +1 -1
  24. package/dist/gitignore.d.ts +2 -1
  25. package/dist/gitignore.d.ts.map +1 -1
  26. package/dist/gitignore.js +21 -3
  27. package/dist/gitignore.js.map +1 -1
  28. package/dist/gitignore.test.js +82 -17
  29. package/dist/gitignore.test.js.map +1 -1
  30. package/dist/markdown.d.ts +6 -1
  31. package/dist/markdown.d.ts.map +1 -1
  32. package/dist/markdown.js +31 -9
  33. package/dist/markdown.js.map +1 -1
  34. package/dist/navigation.js +5 -5
  35. package/dist/navigation.js.map +1 -1
  36. package/dist/scanner.d.ts +26 -0
  37. package/dist/scanner.d.ts.map +1 -0
  38. package/dist/scanner.js +190 -0
  39. package/dist/scanner.js.map +1 -0
  40. package/dist/template.d.ts +6 -2
  41. package/dist/template.d.ts.map +1 -1
  42. package/dist/template.js +57 -8
  43. package/dist/template.js.map +1 -1
  44. package/dist/translation-service.d.ts +72 -0
  45. package/dist/translation-service.d.ts.map +1 -0
  46. package/dist/translation-service.js +291 -0
  47. package/dist/translation-service.js.map +1 -0
  48. package/dist/types.d.ts +35 -4
  49. package/dist/types.d.ts.map +1 -1
  50. package/docs/advanced-usage.md +39 -0
  51. package/docs/getting-started.md +26 -0
  52. package/docs/guides/best-practices.md +0 -113
  53. package/docs/guides/config.md +0 -233
  54. package/package.json +2 -1
  55. package/src/ai-client.ts +227 -0
  56. package/src/ai-processor.ts +243 -0
  57. package/src/ai-service.ts +281 -0
  58. package/src/builder.ts +543 -10
  59. package/src/cli.ts +49 -3
  60. package/src/gitignore.test.ts +82 -17
  61. package/src/gitignore.ts +23 -3
  62. package/src/markdown.ts +39 -11
  63. package/src/navigation.ts +5 -5
  64. package/src/scanner.ts +180 -0
  65. package/src/template.ts +68 -8
  66. package/src/translation-service.ts +350 -0
  67. package/src/types.ts +39 -3
  68. package/test-multilang.js +44 -0
  69. package/docs/ci/github-ci-cd.md +0 -127
  70. package/docs/guides/api.md +0 -277
@@ -1,277 +0,0 @@
1
- # API 文档
2
-
3
- ZEN 提供了简单易用的 API 来构建文档站点。
4
-
5
- ## 核心 API
6
-
7
- ### `ZenBuilder` 类
8
-
9
- 主要的文档构建器类。
10
-
11
- ```typescript
12
- import { ZenBuilder } from 'zengen';
13
-
14
- const builder = new ZenBuilder(config);
15
- ```
16
-
17
- #### 构造函数
18
-
19
- ```typescript
20
- constructor(config: ZenConfig = {})
21
- ```
22
-
23
- **参数:**
24
-
25
- - `config`: 可选的配置对象
26
-
27
- #### `build(options: BuildOptions): Promise<void>`
28
-
29
- 构建文档站点的主要方法。
30
-
31
- **参数:**
32
-
33
- - `options.srcDir`: 源 Markdown 文件目录
34
- - `options.outDir`: 输出 HTML 文件目录
35
- - `options.template?`: 自定义模板路径(可选)
36
- - `options.watch?`: 是否监听文件变化(可选)
37
- - `options.verbose?`: 是否显示详细日志(可选)
38
- - `options.serve?`: 是否启动开发服务器(需要 `watch: true`)(可选)
39
- - `options.port?`: 开发服务器端口(默认: 3000)(可选)
40
- - `options.host?`: 开发服务器主机(默认: 'localhost')(可选)
41
- - `options.baseUrl?`: 站点基础 URL(可选)
42
-
43
- **示例:**
44
-
45
- ```typescript
46
- import { ZenBuilder } from 'zengen';
47
-
48
- const builder = new ZenBuilder();
49
-
50
- await builder.build({
51
- srcDir: './docs',
52
- outDir: './dist',
53
- template: './custom-template.html',
54
- verbose: true,
55
- });
56
- ```
57
-
58
- #### `watch(options: BuildOptions): Promise<void>`
59
-
60
- 监听文件变化并自动重建。
61
-
62
- **参数:** 与 `build` 方法相同
63
-
64
- **示例:**
65
-
66
- ```typescript
67
- await builder.watch({
68
- srcDir: './docs',
69
- outDir: './dist',
70
- serve: true,
71
- port: 8080,
72
- });
73
- ```
74
-
75
- ## 配置选项
76
-
77
- ### `BuildOptions` 接口
78
-
79
- ```typescript
80
- interface BuildOptions {
81
- srcDir: string;
82
- outDir: string;
83
- template?: string;
84
- watch?: boolean;
85
- verbose?: boolean;
86
- serve?: boolean;
87
- port?: number;
88
- host?: string;
89
- baseUrl?: string;
90
- }
91
- ```
92
-
93
- ### `ZenConfig` 接口
94
-
95
- ```typescript
96
- interface ZenConfig {
97
- srcDir?: string;
98
- outDir?: string;
99
- template?: string;
100
- baseUrl?: string;
101
- i18n?: {
102
- sourceLang: string;
103
- targetLangs: string[];
104
- apiKey?: string;
105
- };
106
- processors?: MarkdownProcessor[];
107
- includePattern?: string;
108
- excludePattern?: string;
109
- }
110
- ```
111
-
112
- ## 其他组件
113
-
114
- ### `MarkdownConverter`
115
-
116
- Markdown 转换器,支持自定义处理器。
117
-
118
- ```typescript
119
- import { MarkdownConverter } from 'zengen';
120
-
121
- const converter = new MarkdownConverter(processors);
122
- const html = await converter.convert(markdownContent, fileInfo);
123
- ```
124
-
125
- ### `TemplateEngine`
126
-
127
- 模板引擎,用于渲染 HTML 模板。
128
-
129
- ```typescript
130
- import { TemplateEngine } from 'zengen';
131
-
132
- const engine = new TemplateEngine();
133
- const html = engine.render(templateContent, data);
134
- ```
135
-
136
- ### `NavigationGenerator`
137
-
138
- 导航生成器,自动生成站点导航结构。
139
-
140
- ```typescript
141
- import { NavigationGenerator } from 'zengen';
142
-
143
- const generator = new NavigationGenerator(baseUrl);
144
- const navigation = generator.generate(files, currentPath);
145
- ```
146
-
147
- ## 插件系统
148
-
149
- ZEN 支持通过处理器扩展功能:
150
-
151
- ### `MarkdownProcessor` 接口
152
-
153
- ```typescript
154
- interface MarkdownProcessor {
155
- beforeParse?(content: string, fileInfo: FileInfo): string | Promise<string>;
156
- afterParse?(html: string, fileInfo: FileInfo): string | Promise<string>;
157
- }
158
- ```
159
-
160
- **示例:**
161
-
162
- ```typescript
163
- const myProcessor: MarkdownProcessor = {
164
- beforeParse(content, fileInfo) {
165
- // 预处理 Markdown 内容
166
- return content.replace(/TODO:/g, '**TODO:**');
167
- },
168
-
169
- afterParse(html, fileInfo) {
170
- // 后处理 HTML 内容
171
- return html.replace(/<h2>/g, '<h2 class="custom">');
172
- },
173
- };
174
-
175
- const builder = new ZenBuilder({
176
- processors: [myProcessor],
177
- });
178
- ```
179
-
180
- ## 类型定义
181
-
182
- ### `FileInfo`
183
-
184
- ```typescript
185
- interface FileInfo {
186
- path: string;
187
- relativePath: string;
188
- name: string;
189
- ext: string;
190
- content: string;
191
- html?: string;
192
- metadata?: Record<string, any>;
193
- }
194
- ```
195
-
196
- ### `NavigationItem`
197
-
198
- ```typescript
199
- interface NavigationItem {
200
- title: string;
201
- path: string;
202
- children?: NavigationItem[];
203
- }
204
- ```
205
-
206
- ### `TemplateData`
207
-
208
- ```typescript
209
- interface TemplateData {
210
- title: string;
211
- content: string;
212
- navigation: NavigationItem[];
213
- metadata?: Record<string, any>;
214
- currentPath?: string;
215
- }
216
- ```
217
-
218
- ## 使用示例
219
-
220
- ### 基本使用
221
-
222
- ```typescript
223
- import { ZenBuilder } from 'zengen';
224
-
225
- async function buildDocumentation() {
226
- const builder = new ZenBuilder();
227
-
228
- await builder.build({
229
- srcDir: './my-docs',
230
- outDir: './public',
231
- verbose: true,
232
- });
233
-
234
- console.log('Documentation built successfully!');
235
- }
236
- ```
237
-
238
- ### 开发模式
239
-
240
- ```typescript
241
- import { ZenBuilder } from 'zengen';
242
-
243
- async function startDevServer() {
244
- const builder = new ZenBuilder();
245
-
246
- await builder.watch({
247
- srcDir: './docs',
248
- outDir: './dist',
249
- serve: true,
250
- port: 3000,
251
- verbose: true,
252
- });
253
-
254
- console.log('Dev server started at http://localhost:3000');
255
- }
256
- ```
257
-
258
- ### 自定义处理器
259
-
260
- ````typescript
261
- import { ZenBuilder } from 'zengen';
262
-
263
- const codeBlockProcessor = {
264
- beforeParse(content, fileInfo) {
265
- // 为代码块添加行号
266
- return content.replace(/```(\w+)\n([\s\S]*?)```/g, (match, lang, code) => {
267
- const lines = code.split('\n');
268
- const numberedCode = lines.map((line, i) => `${i + 1}. ${line}`).join('\n');
269
- return `\`\`\`${lang}\n${numberedCode}\n\`\`\``;
270
- });
271
- },
272
- };
273
-
274
- const builder = new ZenBuilder({
275
- processors: [codeBlockProcessor],
276
- });
277
- ````