czon 0.1.2 → 0.1.4
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.
- package/.github/workflows/pages.yml +1 -1
- package/README.md +7 -7
- package/assets/templates/default/layout.html +3 -7
- package/dist/ai/extractMetadataFromMarkdown.js +6 -3
- package/dist/ai/extractMetadataFromMarkdown.js.map +1 -1
- package/dist/build/pipeline.d.ts.map +1 -1
- package/dist/build/pipeline.js +12 -13
- package/dist/build/pipeline.js.map +1 -1
- package/dist/cli.js +5 -5
- package/dist/cli.js.map +1 -1
- package/dist/findEntries.d.ts +1 -1
- package/dist/findEntries.js +2 -2
- package/dist/findEntries.js.map +1 -1
- package/dist/metadata.d.ts.map +1 -1
- package/dist/metadata.js +4 -7
- package/dist/metadata.js.map +1 -1
- package/dist/paths.d.ts +4 -4
- package/dist/paths.d.ts.map +1 -1
- package/dist/paths.js +5 -5
- package/dist/paths.js.map +1 -1
- package/dist/process/extractMetadataByAI.js +1 -1
- package/dist/process/extractMetadataByAI.js.map +1 -1
- package/dist/process/template.d.ts.map +1 -1
- package/dist/process/template.js +13 -13
- package/dist/process/template.js.map +1 -1
- package/dist/types.d.ts +2 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/writeFile.d.ts +2 -0
- package/dist/utils/writeFile.d.ts.map +1 -0
- package/dist/utils/writeFile.js +14 -0
- package/dist/utils/writeFile.js.map +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
#
|
|
1
|
+
# CZON - 极简主义 Markdown + AI 静态站点构建器
|
|
2
2
|
|
|
3
|
-
[> Website Demo](https://
|
|
3
|
+
[> Website Demo](https://czon.zccz14.com/)
|
|
4
4
|
|
|
5
5
|
## 基本功能
|
|
6
6
|
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
|
|
17
17
|
其一,我不想做图书管理员。我有时想写下一些内容,但我可能还没有想好它的标题,还没有形成特别的组织。我希望 LLM 会自动帮我生成标题、做摘要、分类、导航等整理工作。
|
|
18
18
|
|
|
19
|
-
其二,我的书房必须打扫干净。我不想要配置复杂的构建工具,折腾复杂的文档配置,不喜欢复杂的结构。每次我看到 Docusaurus、VuePress、Astro 这些工具的配置文件和项目结构,我就头疼。现在,
|
|
19
|
+
其二,我的书房必须打扫干净。我不想要配置复杂的构建工具,折腾复杂的文档配置,不喜欢复杂的结构。每次我看到 Docusaurus、VuePress、Astro 这些工具的配置文件和项目结构,我就头疼。现在,CZON 选择将所有的配置都隐藏到 .czon 目录下,扫到角落里,用户只需要专注于写作内容,其他的交给 CZON 来处理。其他的目录都是您的写作空间,您可以随意组织您的 Markdown 文件。
|
|
20
20
|
|
|
21
21
|
- 回归母语:用母语写作,丝滑构建多语言版本
|
|
22
22
|
|
|
@@ -40,17 +40,17 @@ export OPENAI_BASE_URL="https://api.openai.com/v1" # 可选,默认使用 Open
|
|
|
40
40
|
export OPENAI_MODEL="gpt-3.5-turbo" # 可选,默认使用 gpt-3.5-turbo 模型
|
|
41
41
|
```
|
|
42
42
|
|
|
43
|
-
构建站点,支持多语言翻译。使用当前目录作为源目录,输出到 `.
|
|
43
|
+
构建站点,支持多语言翻译。使用当前目录作为源目录,输出到 `.czon/dist` 目录。
|
|
44
44
|
|
|
45
45
|
- 可以通过多次使用 `--lang` 参数指定需要生成的语言版本(例如 `--lang zh-Hans --lang en-US`)。
|
|
46
|
-
- 不需要配置源语言,
|
|
46
|
+
- 不需要配置源语言,CZON 会自动检测。
|
|
47
47
|
|
|
48
48
|
```bash
|
|
49
|
-
npx
|
|
49
|
+
npx czon@latest build --lang zh-Hans --lang en-US
|
|
50
50
|
```
|
|
51
51
|
|
|
52
52
|
**查看更多参数或帮助**:
|
|
53
53
|
|
|
54
54
|
```bash
|
|
55
|
-
npx
|
|
55
|
+
npx czon@latest
|
|
56
56
|
```
|
|
@@ -352,10 +352,6 @@
|
|
|
352
352
|
</head>
|
|
353
353
|
<body>
|
|
354
354
|
<nav class="sidebar">
|
|
355
|
-
<!-- <div class="sidebar-header">
|
|
356
|
-
<h1>ZEN Documentation</h1>
|
|
357
|
-
<p>A minimalist Markdown documentation site builder</p>
|
|
358
|
-
</div> -->
|
|
359
355
|
{{navigation}}
|
|
360
356
|
<hr />
|
|
361
357
|
<div>{{language_switcher}}</div>
|
|
@@ -365,7 +361,7 @@
|
|
|
365
361
|
<header class="content-header">
|
|
366
362
|
<h2>{{title}}</h2>
|
|
367
363
|
<blockquote>{{summary}}</blockquote>
|
|
368
|
-
<div>📅 {{
|
|
364
|
+
<div>📅 {{date}}</div>
|
|
369
365
|
<div class="tags">{{tags}}</div>
|
|
370
366
|
</header>
|
|
371
367
|
|
|
@@ -375,8 +371,8 @@
|
|
|
375
371
|
|
|
376
372
|
<footer class="footer">
|
|
377
373
|
<p>
|
|
378
|
-
Generated by <strong>
|
|
379
|
-
<a href="https://github.com/zccz14/
|
|
374
|
+
Generated by <strong>CZON</strong> •
|
|
375
|
+
<a href="https://github.com/zccz14/CZON" target="_blank">View on GitHub</a>
|
|
380
376
|
</p>
|
|
381
377
|
</footer>
|
|
382
378
|
</main>
|
|
@@ -50,14 +50,16 @@ ${truncatedContent}
|
|
|
50
50
|
请提取:
|
|
51
51
|
1. title: 文档的标题(简洁明了,不超过 30 个字)
|
|
52
52
|
2. summary: 文档摘要(控制在 300 字以内,概括主要内容)
|
|
53
|
-
3.
|
|
54
|
-
4.
|
|
55
|
-
5.
|
|
53
|
+
3. slug: URL 友好别名(使用小写字母、数字和连字符,仅包含英文和数字)
|
|
54
|
+
4. tags: 关键词列表(3-8 个关键词,使用中文或英文)
|
|
55
|
+
5. inferred_date: 文档中隐含的创建日期(如果有的话,格式:YYYY-MM-DD,没有就留空字符串)
|
|
56
|
+
6. inferred_lang: 文档使用的语言代码(例如:zh-Hans 表示简体中文,en-US 表示美式英语)
|
|
56
57
|
|
|
57
58
|
请严格按照以下 JSON 格式返回,不要包含任何其他文本:
|
|
58
59
|
{
|
|
59
60
|
"title": "文档标题",
|
|
60
61
|
"summary": "文档摘要...",
|
|
62
|
+
"slug": "URL 友好别名",
|
|
61
63
|
"tags": ["关键词1", "关键词2", "关键词3"],
|
|
62
64
|
"inferred_date": "2023-01-01",
|
|
63
65
|
"inferred_lang": "zh-Hans"
|
|
@@ -73,6 +75,7 @@ function parseMetadataResponse(responseContent) {
|
|
|
73
75
|
return {
|
|
74
76
|
title: metadata.title?.trim() || '未命名文档',
|
|
75
77
|
summary: metadata.summary?.trim() || '',
|
|
78
|
+
slug: metadata.slug?.trim() || '',
|
|
76
79
|
tags: Array.isArray(metadata.tags)
|
|
77
80
|
? metadata.tags.map((tag) => tag.trim()).filter(Boolean)
|
|
78
81
|
: [],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extractMetadataFromMarkdown.js","sourceRoot":"","sources":["../../src/ai/extractMetadataFromMarkdown.ts"],"names":[],"mappings":";;AAQA,kEA4BC;AApCD,+CAAqE;AAGrE;;;;GAIG;AACI,KAAK,UAAU,2BAA2B,CAAC,OAAe;IAC/D,MAAM,MAAM,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAC5C,MAAM,QAAQ,GAAoB;QAChC;YACE,IAAI,EAAE,QAAQ;YACd,OAAO,EACL,mDAAmD;SACtD;QACD;YACE,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,MAAM;SAChB;KACF,CAAC;IAEF,MAAM,QAAQ,GAAG,MAAM,IAAA,yBAAgB,EAAC,QAAQ,EAAE;QAChD,eAAe,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE;KACzC,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,qBAAqB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAE5E,iBAAiB;IACjB,QAAQ,CAAC,WAAW,GAAG;QACrB,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,aAAa;QACpC,UAAU,EAAE,QAAQ,CAAC,KAAK,CAAC,iBAAiB;QAC5C,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,YAAY;KACnC,CAAC;IAEF,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,SAAS,mBAAmB,CAAC,OAAe;IAC1C,qBAAqB;IACrB,MAAM,gBAAgB,GAAG,QAAQ,CAAC,CAAC,cAAc;IACjD,MAAM,gBAAgB,GACpB,OAAO,CAAC,MAAM,GAAG,gBAAgB;QAC/B,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,gBAAgB,CAAC,GAAG,aAAa;QACxD,CAAC,CAAC,OAAO,CAAC;IAEd,OAAO;;;;EAIP,gBAAgB
|
|
1
|
+
{"version":3,"file":"extractMetadataFromMarkdown.js","sourceRoot":"","sources":["../../src/ai/extractMetadataFromMarkdown.ts"],"names":[],"mappings":";;AAQA,kEA4BC;AApCD,+CAAqE;AAGrE;;;;GAIG;AACI,KAAK,UAAU,2BAA2B,CAAC,OAAe;IAC/D,MAAM,MAAM,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAC5C,MAAM,QAAQ,GAAoB;QAChC;YACE,IAAI,EAAE,QAAQ;YACd,OAAO,EACL,mDAAmD;SACtD;QACD;YACE,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,MAAM;SAChB;KACF,CAAC;IAEF,MAAM,QAAQ,GAAG,MAAM,IAAA,yBAAgB,EAAC,QAAQ,EAAE;QAChD,eAAe,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE;KACzC,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,qBAAqB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAE5E,iBAAiB;IACjB,QAAQ,CAAC,WAAW,GAAG;QACrB,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,aAAa;QACpC,UAAU,EAAE,QAAQ,CAAC,KAAK,CAAC,iBAAiB;QAC5C,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,YAAY;KACnC,CAAC;IAEF,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,SAAS,mBAAmB,CAAC,OAAe;IAC1C,qBAAqB;IACrB,MAAM,gBAAgB,GAAG,QAAQ,CAAC,CAAC,cAAc;IACjD,MAAM,gBAAgB,GACpB,OAAO,CAAC,MAAM,GAAG,gBAAgB;QAC/B,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,gBAAgB,CAAC,GAAG,aAAa;QACxD,CAAC,CAAC,OAAO,CAAC;IAEd,OAAO;;;;EAIP,gBAAgB;;;;;;;;;;;;;;;;;;;EAmBhB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,qBAAqB,CAAC,eAAuB;IACpD,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QAE7C,UAAU;QACV,OAAO;YACL,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,OAAO;YACxC,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE;YACvC,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE;YACjC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAChC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;gBAChE,CAAC,CAAC,EAAE;YACN,aAAa,EAAE,QAAQ,CAAC,aAAa,EAAE,IAAI,EAAE,IAAI,SAAS;YAC1D,aAAa,EAAE,QAAQ,CAAC,aAAa,EAAE,IAAI,EAAE,IAAI,SAAS;SAC3D,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,KAAK,EAAE,WAAW,EAAE,eAAe,CAAC,CAAC;QACrF,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../src/build/pipeline.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../src/build/pipeline.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAmJxC;;GAEG;AACH,wBAAsB,SAAS,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAgBpE"}
|
package/dist/build/pipeline.js
CHANGED
|
@@ -49,7 +49,7 @@ const frontmatter_1 = require("../utils/frontmatter");
|
|
|
49
49
|
async function validateConfig(options) {
|
|
50
50
|
const { verbose = false } = options;
|
|
51
51
|
if (verbose) {
|
|
52
|
-
console.log(`🚀 Starting
|
|
52
|
+
console.log(`🚀 Starting CZON build...`);
|
|
53
53
|
if (options.langs && options.langs.length > 0) {
|
|
54
54
|
console.log(`🌐 Target languages: ${options.langs.join(', ')}`);
|
|
55
55
|
}
|
|
@@ -58,7 +58,7 @@ async function validateConfig(options) {
|
|
|
58
58
|
metadata_1.MetaData.options = options;
|
|
59
59
|
}
|
|
60
60
|
/**
|
|
61
|
-
* 存储母语文件到 .
|
|
61
|
+
* 存储母语文件到 .czon/src
|
|
62
62
|
*/
|
|
63
63
|
async function storeNativeFiles() {
|
|
64
64
|
const { options: { verbose }, files, } = metadata_1.MetaData;
|
|
@@ -68,14 +68,13 @@ async function storeNativeFiles() {
|
|
|
68
68
|
throw new Error(`Missing hash`);
|
|
69
69
|
if (!file.metadata?.inferred_lang)
|
|
70
70
|
throw new Error(`Missing inferred language`);
|
|
71
|
-
const filePath = path.join(paths_1.
|
|
71
|
+
const filePath = path.join(paths_1.CZON_SRC_DIR, file.metadata.inferred_lang, file.hash + '.md');
|
|
72
72
|
const originalContent = await fs.readFile(path.join(paths_1.INPUT_DIR, file.path), 'utf-8');
|
|
73
73
|
const enhancedContent = (0, frontmatter_1.updateFrontmatter)(originalContent, {
|
|
74
74
|
title: file.metadata.title,
|
|
75
75
|
summary: file.metadata.summary,
|
|
76
76
|
tags: file.metadata.tags,
|
|
77
|
-
|
|
78
|
-
inferred_lang: file.metadata.inferred_lang,
|
|
77
|
+
date: file.metadata.inferred_date,
|
|
79
78
|
});
|
|
80
79
|
await fs.mkdir(path.dirname(filePath), { recursive: true });
|
|
81
80
|
await fs.writeFile(filePath, enhancedContent, 'utf-8');
|
|
@@ -85,7 +84,7 @@ async function storeNativeFiles() {
|
|
|
85
84
|
}
|
|
86
85
|
}
|
|
87
86
|
if (verbose && files.length > 0) {
|
|
88
|
-
console.log(`💾 Stored ${files.length} native language files to .
|
|
87
|
+
console.log(`💾 Stored ${files.length} native language files to .czon/src`);
|
|
89
88
|
}
|
|
90
89
|
}
|
|
91
90
|
/**
|
|
@@ -103,9 +102,9 @@ async function processTranslations() {
|
|
|
103
102
|
}
|
|
104
103
|
if (verbose)
|
|
105
104
|
console.log(`🌐 Translating to ${lang}...`);
|
|
106
|
-
// 存储翻译文件到 .
|
|
107
|
-
const sourcePath = path.join(paths_1.
|
|
108
|
-
const targetPath = path.join(paths_1.
|
|
105
|
+
// 存储翻译文件到 .czon/src/{lang}
|
|
106
|
+
const sourcePath = path.join(paths_1.CZON_SRC_DIR, file.metadata.inferred_lang, file.hash + '.md'); // 使用已经加强的母语文件路径
|
|
107
|
+
const targetPath = path.join(paths_1.CZON_SRC_DIR, lang, file.hash + '.md');
|
|
109
108
|
try {
|
|
110
109
|
const content = await fs.readFile(sourcePath, 'utf-8');
|
|
111
110
|
if (file.metadata.inferred_lang === lang) {
|
|
@@ -142,10 +141,10 @@ async function buildPipeline(options) {
|
|
|
142
141
|
// 验证配置
|
|
143
142
|
await validateConfig(options);
|
|
144
143
|
// 清理输出目录
|
|
145
|
-
await fs.rm(paths_1.
|
|
146
|
-
// 确保 .
|
|
147
|
-
await fs.mkdir(paths_1.
|
|
148
|
-
await fs.writeFile(path.join(paths_1.
|
|
144
|
+
await fs.rm(paths_1.CZON_DIST_DIR, { recursive: true, force: true });
|
|
145
|
+
// 确保 .czon/.gitignore 文件
|
|
146
|
+
await fs.mkdir(paths_1.CZON_DIR, { recursive: true });
|
|
147
|
+
await fs.writeFile(path.join(paths_1.CZON_DIR, '.gitignore'), 'dist\n', 'utf-8');
|
|
149
148
|
// 扫描源文件
|
|
150
149
|
await (0, scanSourceFiles_1.scanSourceFiles)();
|
|
151
150
|
// 运行 AI 元数据提取
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../src/build/pipeline.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../src/build/pipeline.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.js
CHANGED
|
@@ -77,17 +77,17 @@ BuildCommand.usage = clipanion_1.Command.Usage({
|
|
|
77
77
|
description: 'Build documentation site from Markdown files in current directory',
|
|
78
78
|
details: `
|
|
79
79
|
This command builds a documentation site from Markdown files in the current directory.
|
|
80
|
-
The output will be placed in the .
|
|
80
|
+
The output will be placed in the .czon/dist directory.
|
|
81
81
|
|
|
82
82
|
Examples:
|
|
83
|
-
$
|
|
84
|
-
$
|
|
83
|
+
$ czon build
|
|
84
|
+
$ czon build --lang en-US --lang ja-JP (translate to English and Japanese)
|
|
85
85
|
`,
|
|
86
86
|
});
|
|
87
87
|
// 创建 CLI 应用
|
|
88
88
|
const cli = new clipanion_1.Cli({
|
|
89
|
-
binaryName: '
|
|
90
|
-
binaryLabel: '
|
|
89
|
+
binaryName: 'czon',
|
|
90
|
+
binaryLabel: 'CZON - A minimalist Markdown documentation site builder',
|
|
91
91
|
binaryVersion: getVersion(),
|
|
92
92
|
});
|
|
93
93
|
// 注册命令
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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,SAAI,GAAG,kBAAM,CAAC,KAAK,CAAC,QAAQ,EAAE;YAC5B,WAAW,EAAE,uDAAuD;SACrE,CAAC,CAAC;IA4BL,CAAC;IAdC,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,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;;AAjCM,kBAAK,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,AAAd,CAAe;AAQpB,kBAAK,GAAG,mBAAO,CAAC,KAAK,CAAC;IAC3B,WAAW,EAAE,mEAAmE;IAChF,OAAO,EAAE;;;;;;;KAOR;CACF,CAAC,AAVU,CAUT;AAkBL,YAAY;AACZ,MAAM,GAAG,GAAG,IAAI,eAAG,CAAC;IAClB,UAAU,EAAE,
|
|
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,SAAI,GAAG,kBAAM,CAAC,KAAK,CAAC,QAAQ,EAAE;YAC5B,WAAW,EAAE,uDAAuD;SACrE,CAAC,CAAC;IA4BL,CAAC;IAdC,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,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;;AAjCM,kBAAK,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,AAAd,CAAe;AAQpB,kBAAK,GAAG,mBAAO,CAAC,KAAK,CAAC;IAC3B,WAAW,EAAE,mEAAmE;IAChF,OAAO,EAAE;;;;;;;KAOR;CACF,CAAC,AAVU,CAUT;AAkBL,YAAY;AACZ,MAAM,GAAG,GAAG,IAAI,eAAG,CAAC;IAClB,UAAU,EAAE,MAAM;IAClB,WAAW,EAAE,yDAAyD;IACtE,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"}
|
package/dist/findEntries.d.ts
CHANGED
package/dist/findEntries.js
CHANGED
|
@@ -7,7 +7,7 @@ const execAsync = (0, util_1.promisify)(child_process_1.exec);
|
|
|
7
7
|
/**
|
|
8
8
|
* 使用git命令查找所有Markdown文件
|
|
9
9
|
* 使用git ls-files --others --cached --exclude-standard获取所有文件
|
|
10
|
-
* 然后过滤掉.
|
|
10
|
+
* 然后过滤掉.czon目录和只保留.md文件
|
|
11
11
|
*
|
|
12
12
|
* @param dirPath 要扫描的目录路径
|
|
13
13
|
* @returns Promise<string[]> 返回Markdown文件的相对路径数组
|
|
@@ -23,7 +23,7 @@ const findMarkdownEntries = async (dirPath) => {
|
|
|
23
23
|
const files = stdout
|
|
24
24
|
.split('\n')
|
|
25
25
|
.filter(line => line.trim() !== '') // 移除空行
|
|
26
|
-
.filter(file => !file.startsWith('.
|
|
26
|
+
.filter(file => !file.startsWith('.czon')) // 过滤掉.czon目录下的文件
|
|
27
27
|
.filter(file => file.endsWith('.md')); // 只保留.md文件
|
|
28
28
|
return files;
|
|
29
29
|
}
|
package/dist/findEntries.js.map
CHANGED
|
@@ -1 +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,
|
|
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,OAAO,CAAC,CAAC,CAAC,iBAAiB;aAC3D,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/metadata.d.ts.map
CHANGED
|
@@ -1 +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,
|
|
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,CAGlD"}
|
package/dist/metadata.js
CHANGED
|
@@ -53,8 +53,8 @@ exports.MetaData = {
|
|
|
53
53
|
*/
|
|
54
54
|
async function loadMetaData() {
|
|
55
55
|
try {
|
|
56
|
-
await fs.access(paths_1.
|
|
57
|
-
const content = await fs.readFile(paths_1.
|
|
56
|
+
await fs.access(paths_1.CZON_META_PATH);
|
|
57
|
+
const content = await fs.readFile(paths_1.CZON_META_PATH, 'utf-8');
|
|
58
58
|
const newData = JSON.parse(content);
|
|
59
59
|
// 使用 Object.assign 保持同一个对象引用
|
|
60
60
|
Object.assign(exports.MetaData, newData);
|
|
@@ -69,10 +69,7 @@ async function loadMetaData() {
|
|
|
69
69
|
* 将 MetaData 写入 store
|
|
70
70
|
*/
|
|
71
71
|
async function saveMetaData() {
|
|
72
|
-
|
|
73
|
-
|
|
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');
|
|
72
|
+
await fs.mkdir(path.dirname(paths_1.CZON_META_PATH), { recursive: true });
|
|
73
|
+
await fs.writeFile(paths_1.CZON_META_PATH, JSON.stringify(exports.MetaData, null, 2), 'utf-8');
|
|
77
74
|
}
|
|
78
75
|
//# sourceMappingURL=metadata.js.map
|
package/dist/metadata.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metadata.js","sourceRoot":"","sources":["../src/metadata.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkBA,oCAaC;AAKD,
|
|
1
|
+
{"version":3,"file":"metadata.js","sourceRoot":"","sources":["../src/metadata.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkBA,oCAaC;AAKD,oCAGC;AAvCD,gDAAkC;AAClC,2CAA6B;AAC7B,mCAAyC;AAGzC;;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,sBAAc,CAAC,CAAC;QAChC,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,sBAAc,EAAE,OAAO,CAAC,CAAC;QAC3D,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,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,sBAAc,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAClE,MAAM,EAAE,CAAC,SAAS,CAAC,sBAAc,EAAE,IAAI,CAAC,SAAS,CAAC,gBAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AACjF,CAAC"}
|
package/dist/paths.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export declare const INPUT_DIR: string;
|
|
2
|
-
export declare const
|
|
3
|
-
export declare const
|
|
4
|
-
export declare const
|
|
5
|
-
export declare const
|
|
2
|
+
export declare const CZON_DIR: string;
|
|
3
|
+
export declare const CZON_DIST_DIR: string;
|
|
4
|
+
export declare const CZON_SRC_DIR: string;
|
|
5
|
+
export declare const CZON_META_PATH: string;
|
|
6
6
|
//# sourceMappingURL=paths.d.ts.map
|
package/dist/paths.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../src/paths.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,SAAS,QAAgB,CAAC;AACvC,eAAO,MAAM,
|
|
1
|
+
{"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../src/paths.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,SAAS,QAAgB,CAAC;AACvC,eAAO,MAAM,QAAQ,QAA+B,CAAC;AACrD,eAAO,MAAM,aAAa,QAAyB,CAAC;AACpD,eAAO,MAAM,YAAY,QAAwB,CAAC;AAClD,eAAO,MAAM,cAAc,QAA8B,CAAC"}
|
package/dist/paths.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.CZON_META_PATH = exports.CZON_SRC_DIR = exports.CZON_DIST_DIR = exports.CZON_DIR = exports.INPUT_DIR = void 0;
|
|
4
4
|
const path_1 = require("path");
|
|
5
5
|
exports.INPUT_DIR = process.cwd();
|
|
6
|
-
exports.
|
|
7
|
-
exports.
|
|
8
|
-
exports.
|
|
9
|
-
exports.
|
|
6
|
+
exports.CZON_DIR = (0, path_1.join)(process.cwd(), '.czon');
|
|
7
|
+
exports.CZON_DIST_DIR = (0, path_1.join)(exports.CZON_DIR, 'dist');
|
|
8
|
+
exports.CZON_SRC_DIR = (0, path_1.join)(exports.CZON_DIR, 'src');
|
|
9
|
+
exports.CZON_META_PATH = (0, path_1.join)(exports.CZON_DIR, 'meta.json');
|
|
10
10
|
//# sourceMappingURL=paths.js.map
|
package/dist/paths.js.map
CHANGED
|
@@ -1 +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,
|
|
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,QAAQ,GAAG,IAAA,WAAI,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC;AACxC,QAAA,aAAa,GAAG,IAAA,WAAI,EAAC,gBAAQ,EAAE,MAAM,CAAC,CAAC;AACvC,QAAA,YAAY,GAAG,IAAA,WAAI,EAAC,gBAAQ,EAAE,KAAK,CAAC,CAAC;AACrC,QAAA,cAAc,GAAG,IAAA,WAAI,EAAC,gBAAQ,EAAE,WAAW,CAAC,CAAC"}
|
|
@@ -14,7 +14,7 @@ async function extractMetadataByAI() {
|
|
|
14
14
|
console.log(`🤖 Processing ${files.length} files with AI...`);
|
|
15
15
|
await Promise.all(files.map(async (file) => {
|
|
16
16
|
try {
|
|
17
|
-
if (file.metadata) {
|
|
17
|
+
if (file.metadata && file.metadata.slug) {
|
|
18
18
|
console.info(`ℹ️ Skipping ${file.path}, already has metadata`);
|
|
19
19
|
return;
|
|
20
20
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extractMetadataByAI.js","sourceRoot":"","sources":["../../src/process/extractMetadataByAI.ts"],"names":[],"mappings":";;AAOA,kDAuBC;AA9BD,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,MAAM,OAAO,CAAC,GAAG,CACf,KAAK,CAAC,GAAG,CAAC,KAAK,EAAC,IAAI,EAAC,EAAE;QACrB,IAAI,CAAC;YACH,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"extractMetadataByAI.js","sourceRoot":"","sources":["../../src/process/extractMetadataByAI.ts"],"names":[],"mappings":";;AAOA,kDAuBC;AA9BD,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,MAAM,OAAO,CAAC,GAAG,CACf,KAAK,CAAC,GAAG,CAAC,KAAK,EAAC,IAAI,EAAC,EAAE;QACrB,IAAI,CAAC;YACH,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACxC,OAAO,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,wBAAwB,CAAC,CAAC;gBAC/D,OAAO;YACT,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,CAAC,CACH,CAAC;IAEF,OAAO,CAAC,GAAG,CAAC,iCAAiC,KAAK,CAAC,MAAM,QAAQ,CAAC,CAAC;AACrE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"template.d.ts","sourceRoot":"","sources":["../../src/process/template.ts"],"names":[],"mappings":"AAmLA;;GAEG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"template.d.ts","sourceRoot":"","sources":["../../src/process/template.ts"],"names":[],"mappings":"AAmLA;;GAEG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAyCrD"}
|
package/dist/process/template.js
CHANGED
|
@@ -41,6 +41,7 @@ const metadata_1 = require("../metadata");
|
|
|
41
41
|
const paths_1 = require("../paths");
|
|
42
42
|
const convertMarkdownToHtml_1 = require("../utils/convertMarkdownToHtml");
|
|
43
43
|
const frontmatter_1 = require("../utils/frontmatter");
|
|
44
|
+
const writeFile_1 = require("../utils/writeFile");
|
|
44
45
|
/**
|
|
45
46
|
* 生成语言切换器 HTML
|
|
46
47
|
* @param currentLang 当前语言
|
|
@@ -54,7 +55,7 @@ function generateLanguageSwitcher(templateData) {
|
|
|
54
55
|
const langName = languages_1.LANGUAGE_NAMES[lang] || lang;
|
|
55
56
|
const isCurrent = lang === templateData.lang;
|
|
56
57
|
const activeClass = isCurrent ? 'active' : '';
|
|
57
|
-
const link = path.join('..', lang, templateData.file.
|
|
58
|
+
const link = path.join('..', lang, templateData.file.metadata.slug + '.html');
|
|
58
59
|
return `<li class="lang-item ${activeClass}">
|
|
59
60
|
<a href="${link}" class="lang-link">${langName}</a>
|
|
60
61
|
</li>`;
|
|
@@ -78,11 +79,11 @@ const generateTagsHtml = (tags) => {
|
|
|
78
79
|
async function generateNavigationHtml(data) {
|
|
79
80
|
const { files } = metadata_1.MetaData;
|
|
80
81
|
const navigation = await Promise.all(files.map(async (file) => {
|
|
81
|
-
const content = await fs.readFile(path.join(paths_1.
|
|
82
|
+
const content = await fs.readFile(path.join(paths_1.CZON_SRC_DIR, data.lang, file.hash + '.md'), 'utf-8');
|
|
82
83
|
const { frontmatter } = (0, frontmatter_1.parseFrontmatter)(content);
|
|
83
84
|
const title = frontmatter.title || file.metadata?.title || file.path; // 优先使用提取的标题
|
|
84
85
|
// 使用相对链接
|
|
85
|
-
const link = file.
|
|
86
|
+
const link = file.metadata.slug + '.html';
|
|
86
87
|
return {
|
|
87
88
|
title,
|
|
88
89
|
link,
|
|
@@ -140,8 +141,7 @@ async function renderTemplate(template, data) {
|
|
|
140
141
|
if (frontmatter) {
|
|
141
142
|
result = result.replace(/{{summary}}/g, frontmatter.summary || '');
|
|
142
143
|
result = result.replace(/{{tags}}/g, generateTagsHtml(frontmatter.tags || []));
|
|
143
|
-
result = result.replace(/{{
|
|
144
|
-
result = result.replace(/{{inferred_lang}}/g, frontmatter.inferred_lang || '--');
|
|
144
|
+
result = result.replace(/{{date}}/g, frontmatter.date || '--');
|
|
145
145
|
}
|
|
146
146
|
// 替换语言相关变量
|
|
147
147
|
result = result.replace(/{{lang}}/g, data.lang || '');
|
|
@@ -166,7 +166,7 @@ const renderRedirectTemplate = async (from, to) => {
|
|
|
166
166
|
<p>Redirecting to <a href="${toURL}">${toURL}</a></p>
|
|
167
167
|
</body>
|
|
168
168
|
</html>`;
|
|
169
|
-
const targetPath = path.join(paths_1.
|
|
169
|
+
const targetPath = path.join(paths_1.CZON_DIST_DIR, from);
|
|
170
170
|
await fs.mkdir(path.dirname(targetPath), { recursive: true });
|
|
171
171
|
await fs.writeFile(targetPath, html, 'utf-8');
|
|
172
172
|
};
|
|
@@ -181,18 +181,16 @@ async function renderTemplates() {
|
|
|
181
181
|
for (const file of files) {
|
|
182
182
|
for (const lang of langs || []) {
|
|
183
183
|
console.info(`📄 Preparing file for language: ${file.path} [${file.hash}] [${lang}]`);
|
|
184
|
-
const
|
|
185
|
-
const content = await fs.readFile(path.join(paths_1.ZEN_SRC_DIR, lang, file.hash + '.md'), 'utf-8');
|
|
184
|
+
const content = await fs.readFile(path.join(paths_1.CZON_SRC_DIR, lang, file.hash + '.md'), 'utf-8');
|
|
186
185
|
try {
|
|
187
186
|
const html = await renderTemplate(layoutTemplate, {
|
|
188
187
|
file,
|
|
189
188
|
content,
|
|
190
189
|
lang,
|
|
191
190
|
});
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
console.log(`✅ Rendered: ${targetPath}`);
|
|
191
|
+
if (file.metadata?.slug) {
|
|
192
|
+
await (0, writeFile_1.writeFile)(path.join(paths_1.CZON_DIST_DIR, lang, file.metadata.slug + '.html'), html);
|
|
193
|
+
}
|
|
196
194
|
}
|
|
197
195
|
catch (error) {
|
|
198
196
|
console.error(`❌ Failed to render ${file.path}:`, error);
|
|
@@ -200,8 +198,10 @@ async function renderTemplates() {
|
|
|
200
198
|
}
|
|
201
199
|
}
|
|
202
200
|
for (const lang of langs || []) {
|
|
203
|
-
await renderRedirectTemplate(path.join(lang, 'index.html'), path.join(lang, files[0].
|
|
201
|
+
await renderRedirectTemplate(path.join(lang, 'index.html'), path.join(lang, files[0].metadata.slug + '.html'));
|
|
204
202
|
}
|
|
205
203
|
await renderRedirectTemplate('index.html', path.join(langs?.[0] || 'en-US', 'index.html'));
|
|
204
|
+
// 404 页面重定向到首页
|
|
205
|
+
await renderRedirectTemplate('404.html', 'index.html');
|
|
206
206
|
}
|
|
207
207
|
//# sourceMappingURL=template.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"template.js","sourceRoot":"","sources":["../../src/process/template.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsLA,
|
|
1
|
+
{"version":3,"file":"template.js","sourceRoot":"","sources":["../../src/process/template.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -8,7 +8,7 @@ export interface FileMetaData {
|
|
|
8
8
|
metadata?: AIMetadata;
|
|
9
9
|
}
|
|
10
10
|
/**
|
|
11
|
-
* .
|
|
11
|
+
* .czon/meta.json 文件结构
|
|
12
12
|
*/
|
|
13
13
|
export interface MetaDataStore {
|
|
14
14
|
version: string;
|
|
@@ -23,6 +23,7 @@ export interface BuildOptions {
|
|
|
23
23
|
export interface AIMetadata {
|
|
24
24
|
title: string;
|
|
25
25
|
summary: string;
|
|
26
|
+
slug: string;
|
|
26
27
|
tags: string[];
|
|
27
28
|
inferred_date?: string;
|
|
28
29
|
inferred_lang: string;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,CAAC,EAAE,UAAU,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,YAAY,CAAC;IACtB,KAAK,EAAE,YAAY,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE;QACZ,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,EAAE,MAAM,CAAC;QACnB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;CACH"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,CAAC,EAAE,UAAU,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,YAAY,CAAC;IACtB,KAAK,EAAE,YAAY,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE;QACZ,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,EAAE,MAAM,CAAC;QACnB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;CACH"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"writeFile.d.ts","sourceRoot":"","sources":["../../src/utils/writeFile.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,SAAS,GAAU,MAAM,MAAM,EAAE,MAAM,MAAM,KAAG,OAAO,CAAC,IAAI,CAIxE,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.writeFile = void 0;
|
|
4
|
+
const promises_1 = require("fs/promises");
|
|
5
|
+
const path_1 = require("path");
|
|
6
|
+
const metadata_1 = require("../metadata");
|
|
7
|
+
const writeFile = async (path, data) => {
|
|
8
|
+
await (0, promises_1.mkdir)((0, path_1.dirname)(path), { recursive: true });
|
|
9
|
+
await (0, promises_1.writeFile)(path, data, 'utf-8');
|
|
10
|
+
if (metadata_1.MetaData.options.verbose)
|
|
11
|
+
console.log(`✅ Wrote file: ${path}`);
|
|
12
|
+
};
|
|
13
|
+
exports.writeFile = writeFile;
|
|
14
|
+
//# sourceMappingURL=writeFile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"writeFile.js","sourceRoot":"","sources":["../../src/utils/writeFile.ts"],"names":[],"mappings":";;;AAAA,0CAA6D;AAC7D,+BAA+B;AAC/B,0CAAuC;AAEhC,MAAM,SAAS,GAAG,KAAK,EAAE,IAAY,EAAE,IAAY,EAAiB,EAAE;IAC3E,MAAM,IAAA,gBAAK,EAAC,IAAA,cAAO,EAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAChD,MAAM,IAAA,oBAAU,EAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACtC,IAAI,mBAAQ,CAAC,OAAO,CAAC,OAAO;QAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC;AACrE,CAAC,CAAC;AAJW,QAAA,SAAS,aAIpB"}
|