zengen 0.1.35 → 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 (134) 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 +155 -0
  5. package/.zen/src/en-US/01d04f7c17b4a541ead9d759d877b30b403e15b849182a49eb1f62bd29ecd18c.md +120 -0
  6. package/.zen/src/en-US/1b798c44a4f353e47296ca83d5905e37e6aba3e90bbd9bc3b3d34fc12059a2ca.md +75 -0
  7. package/.zen/src/en-US/1e96be58d76c60056b708eb5bd8b8b81d7b5845d9cfe0b879d85068a5f11df3a.md +189 -0
  8. package/.zen/src/en-US/5ec990146b35e00de2630559126ee07f7cdcddeb23b0e8cab3d85b4181353e26.md +53 -0
  9. package/.zen/src/en-US/6124ea88edec5bde737b26b21f71ecfeffe4e73151784856edf813ee231a4baa.md +11 -0
  10. package/.zen/src/en-US/80ae9bed74fc6348a7c1fe9f33e86b65f5d919169721f77bcf0e1bc29fbdb4f9.md +61 -0
  11. package/.zen/src/en-US/f0c2799126931ccd113a0c45b1e623870b0d4f4f400becf6dd877da8f1011517.md +41 -0
  12. package/.zen/src/en-US/fdfca9b960d0eaa8b2b96fe988ead7481d2c0b16f66ebc94fb477139b4178cdc.md +65 -0
  13. package/.zen/src/zh-Hans/01d04f7c17b4a541ead9d759d877b30b403e15b849182a49eb1f62bd29ecd18c.md +120 -0
  14. package/.zen/src/zh-Hans/1b798c44a4f353e47296ca83d5905e37e6aba3e90bbd9bc3b3d34fc12059a2ca.md +77 -0
  15. package/.zen/src/zh-Hans/1e96be58d76c60056b708eb5bd8b8b81d7b5845d9cfe0b879d85068a5f11df3a.md +189 -0
  16. package/.zen/src/zh-Hans/5ec990146b35e00de2630559126ee07f7cdcddeb23b0e8cab3d85b4181353e26.md +55 -0
  17. package/.zen/src/zh-Hans/6124ea88edec5bde737b26b21f71ecfeffe4e73151784856edf813ee231a4baa.md +1 -0
  18. package/.zen/src/zh-Hans/6ad8db715a1b60613fe934fefb29fa981ecad9b63145593accff144d73b44bde.md +175 -0
  19. package/.zen/src/zh-Hans/80ae9bed74fc6348a7c1fe9f33e86b65f5d919169721f77bcf0e1bc29fbdb4f9.md +63 -0
  20. package/.zen/src/zh-Hans/a1580f71c6c6c1ff4a314be72d410a8507af2f087d56360c7f5048d349c21953.md +48 -0
  21. package/.zen/src/zh-Hans/d49012f98c4367b34034063400e2f7826bf0615952210c82396920172d468e2c.md +107 -0
  22. package/.zen/src/zh-Hans/f0c2799126931ccd113a0c45b1e623870b0d4f4f400becf6dd877da8f1011517.md +41 -0
  23. package/.zen/src/zh-Hans/fdfca9b960d0eaa8b2b96fe988ead7481d2c0b16f66ebc94fb477139b4178cdc.md +65 -0
  24. package/assets/templates/default/layout.html +274 -0
  25. package/dist/ai/extractMetadataFromMarkdown.d.ts +8 -0
  26. package/dist/ai/extractMetadataFromMarkdown.d.ts.map +1 -0
  27. package/dist/ai/extractMetadataFromMarkdown.js +88 -0
  28. package/dist/ai/extractMetadataFromMarkdown.js.map +1 -0
  29. package/dist/ai/translateMarkdown.d.ts +8 -0
  30. package/dist/ai/translateMarkdown.d.ts.map +1 -0
  31. package/dist/ai/translateMarkdown.js +29 -0
  32. package/dist/ai/translateMarkdown.js.map +1 -0
  33. package/dist/build/pipeline.d.ts +6 -0
  34. package/dist/build/pipeline.d.ts.map +1 -0
  35. package/dist/build/pipeline.js +218 -0
  36. package/dist/build/pipeline.js.map +1 -0
  37. package/dist/cli.js +17 -83
  38. package/dist/cli.js.map +1 -1
  39. package/dist/findEntries.d.ts +10 -0
  40. package/dist/findEntries.d.ts.map +1 -0
  41. package/dist/findEntries.js +38 -0
  42. package/dist/findEntries.js.map +1 -0
  43. package/dist/index.d.ts +1 -32
  44. package/dist/index.d.ts.map +1 -1
  45. package/dist/index.js +1 -35
  46. package/dist/index.js.map +1 -1
  47. package/dist/metadata.d.ts +14 -0
  48. package/dist/metadata.d.ts.map +1 -0
  49. package/dist/metadata.js +78 -0
  50. package/dist/metadata.js.map +1 -0
  51. package/dist/paths.d.ts +6 -0
  52. package/dist/paths.d.ts.map +1 -0
  53. package/dist/paths.js +10 -0
  54. package/dist/paths.js.map +1 -0
  55. package/dist/process/extractMetadataByAI.d.ts +5 -0
  56. package/dist/process/extractMetadataByAI.d.ts.map +1 -0
  57. package/dist/process/extractMetadataByAI.js +31 -0
  58. package/dist/process/extractMetadataByAI.js.map +1 -0
  59. package/dist/process/template.d.ts +5 -0
  60. package/dist/process/template.d.ts.map +1 -0
  61. package/dist/process/template.js +188 -0
  62. package/dist/process/template.js.map +1 -0
  63. package/dist/scan/files.d.ts +7 -0
  64. package/dist/scan/files.d.ts.map +1 -0
  65. package/dist/scan/files.js +54 -0
  66. package/dist/scan/files.js.map +1 -0
  67. package/dist/services/openai.d.ts +41 -0
  68. package/dist/services/openai.d.ts.map +1 -0
  69. package/dist/services/openai.js +54 -0
  70. package/dist/services/openai.js.map +1 -0
  71. package/dist/types.d.ts +26 -46
  72. package/dist/types.d.ts.map +1 -1
  73. package/dist/utils/convertMarkdownToHtml.d.ts +7 -0
  74. package/dist/utils/convertMarkdownToHtml.d.ts.map +1 -0
  75. package/dist/utils/convertMarkdownToHtml.js +39 -0
  76. package/dist/utils/convertMarkdownToHtml.js.map +1 -0
  77. package/dist/utils/frontmatter.d.ts +6 -0
  78. package/dist/utils/frontmatter.d.ts.map +1 -0
  79. package/dist/utils/frontmatter.js +22 -0
  80. package/dist/utils/frontmatter.js.map +1 -0
  81. package/docs/advanced-usage.md +39 -0
  82. package/docs/deployment/github-pages.md +1 -2
  83. package/docs/getting-started.md +26 -0
  84. package/docs/guides/best-practices.md +4 -117
  85. package/docs/guides/config.md +0 -238
  86. package/package.json +5 -2
  87. package/src/ai/extractMetadataFromMarkdown.ts +95 -0
  88. package/src/ai/translateMarkdown.ts +29 -0
  89. package/src/build/pipeline.ts +211 -0
  90. package/src/cli.ts +18 -94
  91. package/src/findEntries.ts +37 -0
  92. package/src/index.ts +1 -40
  93. package/src/metadata.ts +44 -0
  94. package/src/paths.ts +7 -0
  95. package/src/process/extractMetadataByAI.ts +29 -0
  96. package/src/process/template.ts +201 -0
  97. package/src/scan/files.ts +17 -0
  98. package/src/services/openai.ts +92 -0
  99. package/src/types.ts +29 -47
  100. package/src/utils/convertMarkdownToHtml.ts +32 -0
  101. package/src/utils/frontmatter.ts +18 -0
  102. package/test-multilang.js +44 -0
  103. package/dist/builder.d.ts +0 -46
  104. package/dist/builder.d.ts.map +0 -1
  105. package/dist/builder.js +0 -443
  106. package/dist/builder.js.map +0 -1
  107. package/dist/gitignore.d.ts +0 -40
  108. package/dist/gitignore.d.ts.map +0 -1
  109. package/dist/gitignore.js +0 -184
  110. package/dist/gitignore.js.map +0 -1
  111. package/dist/gitignore.test.d.ts +0 -2
  112. package/dist/gitignore.test.d.ts.map +0 -1
  113. package/dist/gitignore.test.js +0 -244
  114. package/dist/gitignore.test.js.map +0 -1
  115. package/dist/markdown.d.ts +0 -30
  116. package/dist/markdown.d.ts.map +0 -1
  117. package/dist/markdown.js +0 -199
  118. package/dist/markdown.js.map +0 -1
  119. package/dist/navigation.d.ts +0 -46
  120. package/dist/navigation.d.ts.map +0 -1
  121. package/dist/navigation.js +0 -196
  122. package/dist/navigation.js.map +0 -1
  123. package/dist/template.d.ts +0 -29
  124. package/dist/template.d.ts.map +0 -1
  125. package/dist/template.js +0 -385
  126. package/dist/template.js.map +0 -1
  127. package/docs/ci/github-ci-cd.md +0 -127
  128. package/docs/guides/api.md +0 -277
  129. package/src/builder.ts +0 -458
  130. package/src/gitignore.test.ts +0 -253
  131. package/src/gitignore.ts +0 -173
  132. package/src/markdown.ts +0 -184
  133. package/src/navigation.ts +0 -237
  134. package/src/template.ts +0 -365
package/dist/cli.js CHANGED
@@ -35,99 +35,37 @@ var __importStar = (this && this.__importStar) || (function () {
35
35
  })();
36
36
  Object.defineProperty(exports, "__esModule", { value: true });
37
37
  const clipanion_1 = require("clipanion");
38
- const builder_1 = require("./builder");
38
+ const dotenv_1 = require("dotenv");
39
+ const fs = __importStar(require("fs"));
39
40
  const path = __importStar(require("path"));
40
- const fs = __importStar(require("fs/promises"));
41
- const fsSync = __importStar(require("fs"));
41
+ const pipeline_1 = require("./build/pipeline");
42
+ // 加载 .env 文件中的环境变量
43
+ (0, dotenv_1.config)();
42
44
  // 获取版本号 - 从 package.json 读取
43
45
  function getVersion() {
44
- try {
45
- const packageJsonPath = path.join(__dirname, '..', 'package.json');
46
- const packageJson = JSON.parse(fsSync.readFileSync(packageJsonPath, 'utf-8'));
47
- return packageJson.version;
48
- }
49
- catch {
50
- return '0.1.32';
51
- }
52
- }
53
- // 基础命令类
54
- class BaseCommand extends clipanion_1.Command {
55
- async loadConfig(configPath) {
56
- if (!configPath) {
57
- return {};
58
- }
59
- try {
60
- const resolvedPath = path.resolve(configPath);
61
- const configContent = await fs.readFile(resolvedPath, 'utf-8');
62
- return JSON.parse(configContent);
63
- }
64
- catch (error) {
65
- this.context.stderr.write(`❌ Failed to load config file: ${error}\n`);
66
- throw error;
67
- }
68
- }
69
- getOutDir() {
70
- const currentDir = process.cwd();
71
- return path.join(currentDir, '.zen', 'dist');
72
- }
46
+ const packageJsonPath = path.join(__dirname, '..', 'package.json');
47
+ const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf-8'));
48
+ return packageJson.version;
73
49
  }
74
50
  // Build 命令
75
- class BuildCommand extends BaseCommand {
51
+ class BuildCommand extends clipanion_1.Command {
76
52
  constructor() {
77
53
  super(...arguments);
78
54
  this.template = clipanion_1.Option.String('-t,--template');
79
- this.watch = clipanion_1.Option.Boolean('-w,--watch');
80
- this.serve = clipanion_1.Option.Boolean('-s,--serve');
81
- this.port = clipanion_1.Option.String('-p,--port', '3000');
82
- this.host = clipanion_1.Option.String('--host', 'localhost');
83
55
  this.verbose = clipanion_1.Option.Boolean('-v,--verbose');
84
- this.config = clipanion_1.Option.String('-c,--config');
85
56
  this.baseUrl = clipanion_1.Option.String('--base-url');
86
- this.clean = clipanion_1.Option.Boolean('--clean');
57
+ this.lang = clipanion_1.Option.Array('--lang', {
58
+ description: 'Target languages for translation (e.g., en-US, ja-JP)',
59
+ });
87
60
  }
88
61
  async execute() {
89
62
  try {
90
- // 加载配置文件
91
- const config = await this.loadConfig(this.config);
92
- // 强制使用当前目录作为 src 目录,输出到 .zen/dist 目录
93
- const currentDir = process.cwd();
94
- const outDir = this.getOutDir();
95
- // 合并命令行参数和配置
96
- const buildOptions = {
97
- srcDir: currentDir,
98
- outDir: outDir,
63
+ await (0, pipeline_1.buildSite)({
99
64
  template: this.template ? path.resolve(this.template) : undefined,
100
- watch: this.watch,
101
- serve: this.serve,
102
- port: parseInt(this.port, 10),
103
- host: this.host,
104
65
  verbose: this.verbose,
105
- baseUrl: this.baseUrl || config.baseUrl,
106
- };
107
- const builder = new builder_1.ZenBuilder(config);
108
- // 验证配置
109
- const errors = builder.validateConfig(config);
110
- if (errors.length > 0) {
111
- this.context.stderr.write('❌ Configuration errors:\n');
112
- errors.forEach(error => this.context.stderr.write(` - ${error}\n`));
113
- return 1;
114
- }
115
- // 警告 --serve 选项需要 --watch 选项
116
- if (this.serve && !this.watch) {
117
- this.context.stdout.write('⚠️ Warning: --serve option requires --watch option, ignoring --serve\n');
118
- buildOptions.serve = false;
119
- }
120
- // 清理输出目录
121
- if (this.clean) {
122
- await builder.clean(buildOptions.outDir);
123
- }
124
- // 构建或监听
125
- if (this.watch) {
126
- await builder.watch(buildOptions);
127
- }
128
- else {
129
- await builder.build(buildOptions);
130
- }
66
+ baseUrl: this.baseUrl,
67
+ langs: this.lang,
68
+ });
131
69
  return 0;
132
70
  }
133
71
  catch (error) {
@@ -145,11 +83,7 @@ BuildCommand.usage = clipanion_1.Command.Usage({
145
83
 
146
84
  Examples:
147
85
  $ zengen build
148
- $ zengen build --watch
149
- $ zengen build --watch --serve
150
- $ zengen build --watch --serve --port 8080
151
- $ zengen build --config zen.config.json
152
- $ zengen build --clean
86
+ $ zengen build --lang en-US --lang ja-JP (translate to English and Japanese)
153
87
  `,
154
88
  });
155
89
  // 创建 CLI 应用
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,yCAAiD;AACjD,mCAAgC;AAChC,uCAAyB;AACzB,2CAA6B;AAC7B,+CAA6C;AAE7C,mBAAmB;AACnB,IAAA,eAAM,GAAE,CAAC;AAET,4BAA4B;AAC5B,SAAS,UAAU;IACjB,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;IACnE,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC;IAC1E,OAAO,WAAW,CAAC,OAAO,CAAC;AAC7B,CAAC;AAED,WAAW;AACX,MAAM,YAAa,SAAQ,mBAAO;IAAlC;;QAGE,aAAQ,GAAG,kBAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QAC1C,YAAO,GAAG,kBAAM,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QACzC,YAAO,GAAG,kBAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QACtC,SAAI,GAAG,kBAAM,CAAC,KAAK,CAAC,QAAQ,EAAE;YAC5B,WAAW,EAAE,uDAAuD;SACrE,CAAC,CAAC;IA6BL,CAAC;IAfC,KAAK,CAAC,OAAO;QACX,IAAI,CAAC;YACH,MAAM,IAAA,oBAAS,EAAC;gBACd,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS;gBACjE,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,KAAK,EAAE,IAAI,CAAC,IAAI;aACjB,CAAC,CAAC;YAEH,OAAO,CAAC,CAAC;QACX,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,KAAK,IAAI,CAAC,CAAC;YACxD,OAAO,CAAC,CAAC;QACX,CAAC;IACH,CAAC;;AAnCM,kBAAK,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,AAAd,CAAe;AASpB,kBAAK,GAAG,mBAAO,CAAC,KAAK,CAAC;IAC3B,WAAW,EAAE,mEAAmE;IAChF,OAAO,EAAE;;;;;;;KAOR;CACF,CAAC,AAVU,CAUT;AAmBL,YAAY;AACZ,MAAM,GAAG,GAAG,IAAI,eAAG,CAAC;IAClB,UAAU,EAAE,QAAQ;IACpB,WAAW,EAAE,wDAAwD;IACrE,aAAa,EAAE,UAAU,EAAE;CAC5B,CAAC,CAAC;AAEH,OAAO;AACP,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;AAE3B,SAAS;AACT,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;IACjC,GAAG,eAAG,CAAC,cAAc;IACrB,KAAK,EAAE,OAAO,CAAC,KAAK;IACpB,MAAM,EAAE,OAAO,CAAC,MAAM;IACtB,MAAM,EAAE,OAAO,CAAC,MAAM;CACvB,CAAC,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * 使用git命令查找所有Markdown文件
3
+ * 使用git ls-files --others --cached --exclude-standard获取所有文件
4
+ * 然后过滤掉.zen目录和只保留.md文件
5
+ *
6
+ * @param dirPath 要扫描的目录路径
7
+ * @returns Promise<string[]> 返回Markdown文件的相对路径数组
8
+ */
9
+ export declare const findMarkdownEntries: (dirPath: string) => Promise<string[]>;
10
+ //# sourceMappingURL=findEntries.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"findEntries.d.ts","sourceRoot":"","sources":["../src/findEntries.ts"],"names":[],"mappings":"AAKA;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB,GAAU,SAAS,MAAM,KAAG,OAAO,CAAC,MAAM,EAAE,CAuB3E,CAAC"}
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.findMarkdownEntries = void 0;
4
+ const child_process_1 = require("child_process");
5
+ const util_1 = require("util");
6
+ const execAsync = (0, util_1.promisify)(child_process_1.exec);
7
+ /**
8
+ * 使用git命令查找所有Markdown文件
9
+ * 使用git ls-files --others --cached --exclude-standard获取所有文件
10
+ * 然后过滤掉.zen目录和只保留.md文件
11
+ *
12
+ * @param dirPath 要扫描的目录路径
13
+ * @returns Promise<string[]> 返回Markdown文件的相对路径数组
14
+ */
15
+ const findMarkdownEntries = async (dirPath) => {
16
+ try {
17
+ // 使用git命令获取所有文件(包括已跟踪和未跟踪的文件)
18
+ // 在指定的目录下执行git命令
19
+ const { stdout } = await execAsync('git ls-files --others --cached --exclude-standard', {
20
+ cwd: dirPath,
21
+ });
22
+ // 按行分割并过滤
23
+ const files = stdout
24
+ .split('\n')
25
+ .filter(line => line.trim() !== '') // 移除空行
26
+ .filter(file => !file.startsWith('.zen')) // 过滤掉.zen目录下的文件
27
+ .filter(file => file.endsWith('.md')); // 只保留.md文件
28
+ return files;
29
+ }
30
+ catch (error) {
31
+ console.error('Error finding markdown entries:', error);
32
+ // 如果git命令失败,返回空数组
33
+ // 这可以处理没有git仓库或git不可用的情况
34
+ return [];
35
+ }
36
+ };
37
+ exports.findMarkdownEntries = findMarkdownEntries;
38
+ //# sourceMappingURL=findEntries.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"findEntries.js","sourceRoot":"","sources":["../src/findEntries.ts"],"names":[],"mappings":";;;AAAA,iDAAqC;AACrC,+BAAiC;AAEjC,MAAM,SAAS,GAAG,IAAA,gBAAS,EAAC,oBAAI,CAAC,CAAC;AAElC;;;;;;;GAOG;AACI,MAAM,mBAAmB,GAAG,KAAK,EAAE,OAAe,EAAqB,EAAE;IAC9E,IAAI,CAAC;QACH,8BAA8B;QAC9B,iBAAiB;QACjB,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,mDAAmD,EAAE;YACtF,GAAG,EAAE,OAAO;SACb,CAAC,CAAC;QAEH,UAAU;QACV,MAAM,KAAK,GAAG,MAAM;aACjB,KAAK,CAAC,IAAI,CAAC;aACX,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO;aAC1C,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,gBAAgB;aACzD,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW;QAEpD,OAAO,KAAK,CAAC;IACf,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,KAAK,CAAC,CAAC;QAExD,kBAAkB;QAClB,yBAAyB;QACzB,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC,CAAC;AAvBW,QAAA,mBAAmB,uBAuB9B"}
package/dist/index.d.ts CHANGED
@@ -1,33 +1,2 @@
1
- export { ZenBuilder } from './builder';
2
- export { MarkdownConverter } from './markdown';
3
- export { TemplateEngine } from './template';
4
- export { NavigationGenerator } from './navigation';
5
- export type { BuildOptions, FileInfo, NavigationItem, TemplateData, MarkdownProcessor, ZenConfig, } from './types';
6
- /**
7
- * ZEN 文档构建工具
8
- *
9
- * 一个极简主义的 Markdown 文档站点生成器
10
- *
11
- * @example
12
- * ```typescript
13
- * import { ZenBuilder } from 'zengen';
14
- *
15
- * const builder = new ZenBuilder();
16
- * await builder.build({
17
- * srcDir: './docs',
18
- * outDir: './dist'
19
- * });
20
- * ```
21
- */
22
- import { ZenBuilder } from './builder';
23
- import { MarkdownConverter } from './markdown';
24
- import { TemplateEngine } from './template';
25
- import { NavigationGenerator } from './navigation';
26
- declare const _default: {
27
- Builder: typeof ZenBuilder;
28
- MarkdownConverter: typeof MarkdownConverter;
29
- TemplateEngine: typeof TemplateEngine;
30
- NavigationGenerator: typeof NavigationGenerator;
31
- };
32
- export default _default;
1
+ import './cli';
33
2
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,YAAY,EACV,YAAY,EACZ,QAAQ,EACR,cAAc,EACd,YAAY,EACZ,iBAAiB,EACjB,SAAS,GACV,MAAM,SAAS,CAAC;AAEjB;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;;;;;;;AAEnD,wBAKE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,CAAC"}
package/dist/index.js CHANGED
@@ -1,38 +1,4 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.NavigationGenerator = exports.TemplateEngine = exports.MarkdownConverter = exports.ZenBuilder = void 0;
4
- var builder_1 = require("./builder");
5
- Object.defineProperty(exports, "ZenBuilder", { enumerable: true, get: function () { return builder_1.ZenBuilder; } });
6
- var markdown_1 = require("./markdown");
7
- Object.defineProperty(exports, "MarkdownConverter", { enumerable: true, get: function () { return markdown_1.MarkdownConverter; } });
8
- var template_1 = require("./template");
9
- Object.defineProperty(exports, "TemplateEngine", { enumerable: true, get: function () { return template_1.TemplateEngine; } });
10
- var navigation_1 = require("./navigation");
11
- Object.defineProperty(exports, "NavigationGenerator", { enumerable: true, get: function () { return navigation_1.NavigationGenerator; } });
12
- /**
13
- * ZEN 文档构建工具
14
- *
15
- * 一个极简主义的 Markdown 文档站点生成器
16
- *
17
- * @example
18
- * ```typescript
19
- * import { ZenBuilder } from 'zengen';
20
- *
21
- * const builder = new ZenBuilder();
22
- * await builder.build({
23
- * srcDir: './docs',
24
- * outDir: './dist'
25
- * });
26
- * ```
27
- */
28
- const builder_2 = require("./builder");
29
- const markdown_2 = require("./markdown");
30
- const template_2 = require("./template");
31
- const navigation_2 = require("./navigation");
32
- exports.default = {
33
- Builder: builder_2.ZenBuilder,
34
- MarkdownConverter: markdown_2.MarkdownConverter,
35
- TemplateEngine: template_2.TemplateEngine,
36
- NavigationGenerator: navigation_2.NavigationGenerator,
37
- };
3
+ require("./cli");
38
4
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,qCAAuC;AAA9B,qGAAA,UAAU,OAAA;AACnB,uCAA+C;AAAtC,6GAAA,iBAAiB,OAAA;AAC1B,uCAA4C;AAAnC,0GAAA,cAAc,OAAA;AACvB,2CAAmD;AAA1C,iHAAA,mBAAmB,OAAA;AAU5B;;;;;;;;;;;;;;;GAeG;AACH,uCAAuC;AACvC,yCAA+C;AAC/C,yCAA4C;AAC5C,6CAAmD;AAEnD,kBAAe;IACb,OAAO,EAAE,oBAAU;IACnB,iBAAiB,EAAE,4BAAiB;IACpC,cAAc,EAAE,yBAAc;IAC9B,mBAAmB,EAAE,gCAAmB;CACzC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;AAAA,iBAAe"}
@@ -0,0 +1,14 @@
1
+ import { MetaDataStore } from './types';
2
+ /**
3
+ * 全局 MetaDataStore 单例
4
+ */
5
+ export declare const MetaData: MetaDataStore;
6
+ /**
7
+ * 从文件中读取数据,覆盖 store,但是要保持它仍然是同一个对象
8
+ */
9
+ export declare function loadMetaData(): Promise<void>;
10
+ /**
11
+ * 将 MetaData 写入 store
12
+ */
13
+ export declare function saveMetaData(): Promise<void>;
14
+ //# sourceMappingURL=metadata.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../src/metadata.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAExC;;GAEG;AACH,eAAO,MAAM,QAAQ,EAAE,aAKtB,CAAC;AAEF;;GAEG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAalD;AAED;;GAEG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAOlD"}
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.MetaData = void 0;
37
+ exports.loadMetaData = loadMetaData;
38
+ exports.saveMetaData = saveMetaData;
39
+ const fs = __importStar(require("fs/promises"));
40
+ const path = __importStar(require("path"));
41
+ const paths_1 = require("./paths");
42
+ /**
43
+ * 全局 MetaDataStore 单例
44
+ */
45
+ exports.MetaData = {
46
+ // 稍后覆盖
47
+ version: '1.0.0',
48
+ options: {},
49
+ files: [],
50
+ };
51
+ /**
52
+ * 从文件中读取数据,覆盖 store,但是要保持它仍然是同一个对象
53
+ */
54
+ async function loadMetaData() {
55
+ try {
56
+ await fs.access(paths_1.ZEN_META_PATH);
57
+ const content = await fs.readFile(paths_1.ZEN_META_PATH, 'utf-8');
58
+ const newData = JSON.parse(content);
59
+ // 使用 Object.assign 保持同一个对象引用
60
+ Object.assign(exports.MetaData, newData);
61
+ }
62
+ catch (error) {
63
+ // 如果文件不存在,初始化默认值
64
+ exports.MetaData.version = '1.0.0';
65
+ exports.MetaData.files = [];
66
+ }
67
+ }
68
+ /**
69
+ * 将 MetaData 写入 store
70
+ */
71
+ async function saveMetaData() {
72
+ // 确保 .zen 目录存在
73
+ const zenDir = path.dirname(paths_1.ZEN_META_PATH);
74
+ await fs.mkdir(zenDir, { recursive: true });
75
+ // 保存文件
76
+ await fs.writeFile(paths_1.ZEN_META_PATH, JSON.stringify(exports.MetaData, null, 2), 'utf-8');
77
+ }
78
+ //# sourceMappingURL=metadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata.js","sourceRoot":"","sources":["../src/metadata.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkBA,oCAaC;AAKD,oCAOC;AA3CD,gDAAkC;AAClC,2CAA6B;AAC7B,mCAAwC;AAGxC;;GAEG;AACU,QAAA,QAAQ,GAAkB;IACrC,OAAO;IACP,OAAO,EAAE,OAAO;IAChB,OAAO,EAAE,EAAE;IACX,KAAK,EAAE,EAAE;CACV,CAAC;AAEF;;GAEG;AACI,KAAK,UAAU,YAAY;IAChC,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,MAAM,CAAC,qBAAa,CAAC,CAAC;QAC/B,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,qBAAa,EAAE,OAAO,CAAC,CAAC;QAC1D,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAEpC,6BAA6B;QAC7B,MAAM,CAAC,MAAM,CAAC,gBAAQ,EAAE,OAAO,CAAC,CAAC;IACnC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,iBAAiB;QACjB,gBAAQ,CAAC,OAAO,GAAG,OAAO,CAAC;QAC3B,gBAAQ,CAAC,KAAK,GAAG,EAAE,CAAC;IACtB,CAAC;AACH,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,YAAY;IAChC,eAAe;IACf,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,qBAAa,CAAC,CAAC;IAC3C,MAAM,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE5C,OAAO;IACP,MAAM,EAAE,CAAC,SAAS,CAAC,qBAAa,EAAE,IAAI,CAAC,SAAS,CAAC,gBAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AAChF,CAAC"}
@@ -0,0 +1,6 @@
1
+ export declare const INPUT_DIR: string;
2
+ export declare const ZEN_DIR: string;
3
+ export declare const ZEN_DIST_DIR: string;
4
+ export declare const ZEN_SRC_DIR: string;
5
+ export declare const ZEN_META_PATH: string;
6
+ //# sourceMappingURL=paths.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../src/paths.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,SAAS,QAAgB,CAAC;AACvC,eAAO,MAAM,OAAO,QAA8B,CAAC;AACnD,eAAO,MAAM,YAAY,QAAwB,CAAC;AAClD,eAAO,MAAM,WAAW,QAAuB,CAAC;AAChD,eAAO,MAAM,aAAa,QAA6B,CAAC"}
package/dist/paths.js ADDED
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ZEN_META_PATH = exports.ZEN_SRC_DIR = exports.ZEN_DIST_DIR = exports.ZEN_DIR = exports.INPUT_DIR = void 0;
4
+ const path_1 = require("path");
5
+ exports.INPUT_DIR = process.cwd();
6
+ exports.ZEN_DIR = (0, path_1.join)(process.cwd(), '.zen');
7
+ exports.ZEN_DIST_DIR = (0, path_1.join)(exports.ZEN_DIR, 'dist');
8
+ exports.ZEN_SRC_DIR = (0, path_1.join)(exports.ZEN_DIR, 'src');
9
+ exports.ZEN_META_PATH = (0, path_1.join)(exports.ZEN_DIR, 'meta.json');
10
+ //# sourceMappingURL=paths.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paths.js","sourceRoot":"","sources":["../src/paths.ts"],"names":[],"mappings":";;;AAAA,+BAA4B;AAEf,QAAA,SAAS,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;AAC1B,QAAA,OAAO,GAAG,IAAA,WAAI,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,CAAC;AACtC,QAAA,YAAY,GAAG,IAAA,WAAI,EAAC,eAAO,EAAE,MAAM,CAAC,CAAC;AACrC,QAAA,WAAW,GAAG,IAAA,WAAI,EAAC,eAAO,EAAE,KAAK,CAAC,CAAC;AACnC,QAAA,aAAa,GAAG,IAAA,WAAI,EAAC,eAAO,EAAE,WAAW,CAAC,CAAC"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * 运行 AI 元数据提取
3
+ */
4
+ export declare function extractMetadataByAI(): Promise<void>;
5
+ //# sourceMappingURL=extractMetadataByAI.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extractMetadataByAI.d.ts","sourceRoot":"","sources":["../../src/process/extractMetadataByAI.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CAqBzD"}
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.extractMetadataByAI = extractMetadataByAI;
4
+ const promises_1 = require("fs/promises");
5
+ const extractMetadataFromMarkdown_1 = require("../ai/extractMetadataFromMarkdown");
6
+ const metadata_1 = require("../metadata");
7
+ /**
8
+ * 运行 AI 元数据提取
9
+ */
10
+ async function extractMetadataByAI() {
11
+ const { files } = metadata_1.MetaData;
12
+ if (metadata_1.MetaData.options.verbose)
13
+ console.log(`🤖 Running AI metadata extraction...`);
14
+ console.log(`🤖 Processing ${files.length} files with AI...`);
15
+ for (const file of files) {
16
+ try {
17
+ if (file.metadata) {
18
+ console.info(`ℹ️ Skipping ${file.path}, already has metadata`);
19
+ continue;
20
+ }
21
+ const content = await (0, promises_1.readFile)(file.path, 'utf-8');
22
+ file.metadata = await (0, extractMetadataFromMarkdown_1.extractMetadataFromMarkdown)(content);
23
+ console.log(`✅ Extracted AI metadata for ${file.path}`, file.metadata.tokens_used);
24
+ }
25
+ catch (error) {
26
+ console.error(`⚠️ Failed to process file ${file.path}:`, error);
27
+ }
28
+ }
29
+ console.log(`✅ AI processing completed for ${files.length} files`);
30
+ }
31
+ //# sourceMappingURL=extractMetadataByAI.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extractMetadataByAI.js","sourceRoot":"","sources":["../../src/process/extractMetadataByAI.ts"],"names":[],"mappings":";;AAOA,kDAqBC;AA5BD,0CAAuC;AACvC,mFAAgF;AAChF,0CAAuC;AAEvC;;GAEG;AACI,KAAK,UAAU,mBAAmB;IACvC,MAAM,EAAE,KAAK,EAAE,GAAG,mBAAQ,CAAC;IAE3B,IAAI,mBAAQ,CAAC,OAAO,CAAC,OAAO;QAAE,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;IAClF,OAAO,CAAC,GAAG,CAAC,iBAAiB,KAAK,CAAC,MAAM,mBAAmB,CAAC,CAAC;IAE9D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC;YACH,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAClB,OAAO,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,wBAAwB,CAAC,CAAC;gBAC/D,SAAS;YACX,CAAC;YACD,MAAM,OAAO,GAAG,MAAM,IAAA,mBAAQ,EAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YACnD,IAAI,CAAC,QAAQ,GAAG,MAAM,IAAA,yDAA2B,EAAC,OAAO,CAAC,CAAC;YAC3D,OAAO,CAAC,GAAG,CAAC,+BAA+B,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QACrF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,6BAA6B,IAAI,CAAC,IAAI,GAAG,EAAE,KAAK,CAAC,CAAC;QAClE,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,iCAAiC,KAAK,CAAC,MAAM,QAAQ,CAAC,CAAC;AACrE,CAAC"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * 渲染模板并保存文件
3
+ */
4
+ export declare function renderTemplates(): Promise<void>;
5
+ //# sourceMappingURL=template.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"template.d.ts","sourceRoot":"","sources":["../../src/process/template.ts"],"names":[],"mappings":"AA8JA;;GAEG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAuCrD"}