czon 0.6.0 → 0.6.2
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/dist/findEntries.js +13 -2
- package/dist/process/summary.js +2 -39
- package/dist/ssg/ContentPage.js +1 -1
- package/dist/ssg/IndexPage.js +2 -2
- package/dist/utils/isExists.js +14 -0
- package/package.json +1 -1
package/dist/findEntries.js
CHANGED
|
@@ -2,7 +2,9 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.findMarkdownEntries = void 0;
|
|
4
4
|
const child_process_1 = require("child_process");
|
|
5
|
+
const path_1 = require("path");
|
|
5
6
|
const util_1 = require("util");
|
|
7
|
+
const isExists_1 = require("./utils/isExists");
|
|
6
8
|
const execAsync = (0, util_1.promisify)(child_process_1.exec);
|
|
7
9
|
/**
|
|
8
10
|
* 使用git命令查找所有Markdown文件
|
|
@@ -13,11 +15,13 @@ const execAsync = (0, util_1.promisify)(child_process_1.exec);
|
|
|
13
15
|
* @returns Promise<string[]> 返回Markdown文件的相对路径数组
|
|
14
16
|
*/
|
|
15
17
|
const findMarkdownEntries = async (dirPath) => {
|
|
18
|
+
// 获取git仓库的根目录
|
|
19
|
+
const gitRoot = (await execAsync('git rev-parse --show-toplevel', { cwd: dirPath })).stdout.trim();
|
|
16
20
|
// 使用git命令获取所有文件(包括已跟踪和未跟踪的文件)
|
|
17
21
|
// 在指定的目录下执行git命令
|
|
18
22
|
// 使用 -z 选项以空字符分隔文件名,方便处理文件名中包含特殊字符 (UTF-8) 的情况
|
|
19
23
|
const { stdout } = await execAsync('git ls-files --others --cached --exclude-standard -z', {
|
|
20
|
-
cwd:
|
|
24
|
+
cwd: gitRoot,
|
|
21
25
|
});
|
|
22
26
|
// 按行分割并过滤
|
|
23
27
|
const files = stdout
|
|
@@ -25,7 +29,14 @@ const findMarkdownEntries = async (dirPath) => {
|
|
|
25
29
|
.filter(line => line.trim() !== '') // 移除空行
|
|
26
30
|
.filter(file => !file.startsWith('.')) // 过滤掉隐藏目录下的文件
|
|
27
31
|
.filter(file => file.endsWith('.md')); // 只保留.md文件
|
|
28
|
-
|
|
32
|
+
// 排除文件系统中不存在的文件
|
|
33
|
+
const existingFiles = [];
|
|
34
|
+
for (const file of files) {
|
|
35
|
+
if (await (0, isExists_1.isExists)((0, path_1.resolve)(gitRoot, file))) {
|
|
36
|
+
existingFiles.push(file);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
return existingFiles;
|
|
29
40
|
};
|
|
30
41
|
exports.findMarkdownEntries = findMarkdownEntries;
|
|
31
42
|
//# sourceMappingURL=findEntries.js.map
|
package/dist/process/summary.js
CHANGED
|
@@ -10,7 +10,7 @@ const processSummary = async (model) => {
|
|
|
10
10
|
通过命令列出目标 Markdown 文件:
|
|
11
11
|
npx czon@latest ls-files
|
|
12
12
|
|
|
13
|
-
然后,阅读所有 markdown
|
|
13
|
+
然后,阅读所有 markdown 文件。对内容进行多方面的总结。
|
|
14
14
|
|
|
15
15
|
请从以下几个风格进行总结分析,生成对应的 markdown 文件:
|
|
16
16
|
|
|
@@ -74,7 +74,7 @@ npx czon@latest ls-files
|
|
|
74
74
|
|
|
75
75
|
基于内容,进行精神分析 (包括心理防御机制、潜意识动机等),必须为每个评价标签给出置信度,给出具体例子,解释其作用和影响。
|
|
76
76
|
|
|
77
|
-
|
|
77
|
+
基于内容,分析与作者相关的真实人物关系,探讨内容中不同人物之间的互动和关系动态,揭示其背后的心理机制。
|
|
78
78
|
|
|
79
79
|
8. 历史时间跨度风格 (8-history.md)
|
|
80
80
|
|
|
@@ -86,43 +86,6 @@ npx czon@latest ls-files
|
|
|
86
86
|
|
|
87
87
|
基于现有内容,合理推测未来的发展方向和趋势,提供前瞻性的见解。
|
|
88
88
|
|
|
89
|
-
9. 社区评论风格 (9-discussion.md)
|
|
90
|
-
|
|
91
|
-
模拟多位网友,以评论区的形式对内容进行讨论,展现多样化的观点和看法。
|
|
92
|
-
|
|
93
|
-
每位网友应有独立的网名,不要起太过于刻板印象的网名(不真实感太强烈)。
|
|
94
|
-
|
|
95
|
-
网友的身份可以多样化,涵盖不同年龄、性别、职业、兴趣等背景,以体现社区的多元性。
|
|
96
|
-
|
|
97
|
-
多位网友之间要有互动和回应,形成一个活跃的讨论氛围。
|
|
98
|
-
|
|
99
|
-
根据文章内容的量级,生成大约 20 到 300 条评论,每条评论控制在 150 字之内。
|
|
100
|
-
|
|
101
|
-
注意,评论内容必须基于事实,不能脱离内容本身进行无根据的猜测和评论。
|
|
102
|
-
|
|
103
|
-
目的是为了呈现不同视角和关注点下的内容理解,降低读者的认知负担。
|
|
104
|
-
|
|
105
|
-
10. 辩论风格 (10-debate.md)
|
|
106
|
-
|
|
107
|
-
模拟两位辩手围绕内容展开辩论,展现不同的观点和立场。
|
|
108
|
-
|
|
109
|
-
从原始内容中,挑选有代表性的观点,进行正反两方面的辩论。
|
|
110
|
-
|
|
111
|
-
每位辩手应有独立的身份背景,可以是不同的职业、学术背景或社会角色,以体现观点的多样性。
|
|
112
|
-
|
|
113
|
-
正反双方可以各派出 5 位辩手,围绕核心观点展开深入讨论。
|
|
114
|
-
|
|
115
|
-
辩论过程中,双方应针对对方的观点进行回应和反驳,形成一个有逻辑、有深度的讨论。
|
|
116
|
-
|
|
117
|
-
进行 5 轮辩论,每轮辩论后进行简短的总结陈词。每轮发言控制在 1000 字之内。
|
|
118
|
-
|
|
119
|
-
每轮结束后,主持人进行简短总结陈词,概括双方的主要观点和争议点。然后由观众投票选出本轮的胜者。
|
|
120
|
-
|
|
121
|
-
注意,辩论内容必须基于事实,不能脱离内容本身进行无根据的猜测和评论。
|
|
122
|
-
|
|
123
|
-
目的是为了通过对立观点的碰撞,激发读者的思考和理解,提供更全面的视角。
|
|
124
|
-
|
|
125
|
-
|
|
126
89
|
请遵循如下规则:
|
|
127
90
|
1. 切记,以事实内容为依据,不得出现脱离事实的情况。
|
|
128
91
|
2. 内容生成到 SUMMARY 目录中,生成不同的 markdown 文件。
|
package/dist/ssg/ContentPage.js
CHANGED
|
@@ -31,7 +31,7 @@ const ContentPage = props => {
|
|
|
31
31
|
react_1.default.createElement("meta", { name: "viewport", content: "width=device-width, initial-scale=1.0" }),
|
|
32
32
|
react_1.default.createElement("title", null, title),
|
|
33
33
|
react_1.default.createElement("meta", { name: "description", content: `tags: ${tags.join(', ')}` }),
|
|
34
|
-
react_1.default.createElement("script", { src: (0, resourceMap_1.getResourceUrlFrom)(props.ctx.path, 'tailwindcss.js')
|
|
34
|
+
react_1.default.createElement("script", { src: (0, resourceMap_1.getResourceUrlFrom)(props.ctx.path, 'tailwindcss.js') }),
|
|
35
35
|
react_1.default.createElement("style", null, style_1.style),
|
|
36
36
|
react_1.default.createElement("script", { dangerouslySetInnerHTML: {
|
|
37
37
|
__html: `
|
package/dist/ssg/IndexPage.js
CHANGED
|
@@ -27,6 +27,7 @@ const IndexPage = props => {
|
|
|
27
27
|
react_1.default.createElement("title", null, `Index of ${props.lang.toString()}`),
|
|
28
28
|
react_1.default.createElement("meta", { name: "viewport", content: "width=device-width, initial-scale=1.0" }),
|
|
29
29
|
react_1.default.createElement("meta", { name: "description", content: `Index page for language ${props.lang}` }),
|
|
30
|
+
react_1.default.createElement("script", { src: (0, resourceMap_1.getResourceUrlFrom)(props.ctx.path, 'tailwindcss.js') }),
|
|
30
31
|
react_1.default.createElement("style", null, style_1.style),
|
|
31
32
|
react_1.default.createElement("script", { dangerouslySetInnerHTML: {
|
|
32
33
|
__html: `
|
|
@@ -69,8 +70,7 @@ const IndexPage = props => {
|
|
|
69
70
|
})),
|
|
70
71
|
react_1.default.createElement("footer", null,
|
|
71
72
|
react_1.default.createElement(LanguageSwitcher_1.LanguageSwitcher, { ctx: props.ctx, lang: props.lang }),
|
|
72
|
-
react_1.default.createElement(CZONFooter_1.CZONFooter, null))), footer: null })
|
|
73
|
-
react_1.default.createElement("script", { src: (0, resourceMap_1.getResourceUrlFrom)(props.ctx.path, 'tailwindcss.js'), defer: true }))));
|
|
73
|
+
react_1.default.createElement(CZONFooter_1.CZONFooter, null))), footer: null }))));
|
|
74
74
|
// TODO: 渲染多语言首页列表
|
|
75
75
|
// return (
|
|
76
76
|
// <div>
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isExists = void 0;
|
|
4
|
+
const promises_1 = require("fs/promises");
|
|
5
|
+
/**
|
|
6
|
+
* 检查路径是否存在
|
|
7
|
+
* @param path 要检查的路径
|
|
8
|
+
* @returns Promise<boolean> 路径是否存在
|
|
9
|
+
*/
|
|
10
|
+
const isExists = async (path) => {
|
|
11
|
+
return (0, promises_1.access)(path).then(() => true, () => false);
|
|
12
|
+
};
|
|
13
|
+
exports.isExists = isExists;
|
|
14
|
+
//# sourceMappingURL=isExists.js.map
|