larkcc 0.1.7 → 0.1.8
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/CHANGELOG.md +43 -1
- package/README.md +114 -0
- package/dist/app.js +41 -3
- package/dist/app.js.map +1 -1
- package/dist/commands/default-prompts.yml +62 -0
- package/dist/commands.d.ts +21 -3
- package/dist/commands.js +124 -38
- package/dist/commands.js.map +1 -1
- package/dist/config.d.ts +9 -0
- package/dist/config.js +23 -0
- package/dist/config.js.map +1 -1
- package/dist/feishu.js +17 -203
- package/dist/feishu.js.map +1 -1
- package/dist/format/builder.d.ts +119 -0
- package/dist/format/builder.js +190 -0
- package/dist/format/builder.js.map +1 -0
- package/dist/format/card.d.ts +24 -0
- package/dist/format/card.js +104 -0
- package/dist/format/card.js.map +1 -0
- package/dist/format/constants.d.ts +44 -0
- package/dist/format/constants.js +202 -0
- package/dist/format/constants.js.map +1 -0
- package/dist/format/document.d.ts +18 -0
- package/dist/format/document.js +163 -0
- package/dist/format/document.js.map +1 -0
- package/dist/format/index.d.ts +14 -0
- package/dist/format/index.js +17 -0
- package/dist/format/index.js.map +1 -0
- package/dist/format/parser.d.ts +90 -0
- package/dist/format/parser.js +220 -0
- package/dist/format/parser.js.map +1 -0
- package/dist/format/sanitize.d.ts +18 -0
- package/dist/format/sanitize.js +47 -0
- package/dist/format/sanitize.js.map +1 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +8 -7
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 飞书文档样式常量
|
|
3
|
+
*/
|
|
4
|
+
// 飞书文档块类型
|
|
5
|
+
export const BlockType = {
|
|
6
|
+
PAGE: 1, // 页面
|
|
7
|
+
TEXT: 2, // 文本
|
|
8
|
+
HEADING1: 3, // 一级标题
|
|
9
|
+
HEADING2: 4, // 二级标题
|
|
10
|
+
HEADING3: 5, // 三级标题
|
|
11
|
+
HEADING4: 6, // 四级标题
|
|
12
|
+
HEADING5: 7, // 五级标题
|
|
13
|
+
HEADING6: 8, // 六级标题
|
|
14
|
+
HEADING7: 9, // 七级标题
|
|
15
|
+
HEADING8: 10, // 八级标题
|
|
16
|
+
HEADING9: 11, // 九级标题
|
|
17
|
+
BULLET: 12, // 无序列表
|
|
18
|
+
ORDERED: 13, // 有序列表
|
|
19
|
+
CODE: 14, // 代码块
|
|
20
|
+
QUOTE: 15, // 引用块
|
|
21
|
+
EQUATION: 16, // 公式块
|
|
22
|
+
TODO: 17, // 任务列表
|
|
23
|
+
BITABLE: 18, // 多维表格
|
|
24
|
+
CALLOUT: 19, // 高亮块
|
|
25
|
+
CHAT_CARD: 20, // 会话卡片
|
|
26
|
+
DIAGRAM: 21, // 流程图/UML
|
|
27
|
+
DIVIDER: 22, // 分割线
|
|
28
|
+
FILE: 23, // 文件
|
|
29
|
+
TABLE: 24, // 表格
|
|
30
|
+
TABLE_CELL: 25, // 表格单元格
|
|
31
|
+
IFRAME: 27, // 内嵌网页
|
|
32
|
+
IMAGE: 28, // 图片
|
|
33
|
+
VIEW: 29, // 视图(容器块)
|
|
34
|
+
};
|
|
35
|
+
// 飞书高亮块颜色
|
|
36
|
+
export const CalloutColors = {
|
|
37
|
+
NOTE: "blue", // 提示
|
|
38
|
+
TIP: "green", // 建议
|
|
39
|
+
WARNING: "orange", // 警告
|
|
40
|
+
DANGER: "red", // 危险
|
|
41
|
+
CAUTION: "red", // 注意(同 danger)
|
|
42
|
+
INFO: "blue", // 信息(同 note)
|
|
43
|
+
};
|
|
44
|
+
// 飞书官方语言ID对照表(CodeLanguage 枚举,ID范围1-75)
|
|
45
|
+
// 参考:https://feishu.apifox.cn/doc-1950637
|
|
46
|
+
export const LanguageMap = {
|
|
47
|
+
// 1 - PlainText
|
|
48
|
+
"": 1, "text": 1, "plain": 1, "txt": 1, "plaintext": 1,
|
|
49
|
+
// 2 - ABAP
|
|
50
|
+
"abap": 2,
|
|
51
|
+
// 3 - Ada
|
|
52
|
+
"ada": 3,
|
|
53
|
+
// 4 - Apache
|
|
54
|
+
"apache": 4, "apacheconf": 4,
|
|
55
|
+
// 5 - Apex
|
|
56
|
+
"apex": 5,
|
|
57
|
+
// 6 - Assembly
|
|
58
|
+
"assembly": 6, "asm": 6, "nasm": 6,
|
|
59
|
+
// 7 - Bash
|
|
60
|
+
"bash": 7, "sh": 7, "zsh": 7,
|
|
61
|
+
// 8 - CSharp
|
|
62
|
+
"csharp": 8, "cs": 8, "c#": 8,
|
|
63
|
+
// 9 - C++
|
|
64
|
+
"cpp": 9, "c++": 9, "cc": 9, "cxx": 9, "hpp": 9,
|
|
65
|
+
// 10 - C
|
|
66
|
+
"c": 10, "h": 10,
|
|
67
|
+
// 11 - COBOL
|
|
68
|
+
"cobol": 11, "cob": 11,
|
|
69
|
+
// 12 - CSS
|
|
70
|
+
"css": 12,
|
|
71
|
+
// 13 - CoffeeScript
|
|
72
|
+
"coffeescript": 13, "coffee": 13,
|
|
73
|
+
// 14 - D
|
|
74
|
+
"d": 14, "dlang": 14,
|
|
75
|
+
// 15 - Dart
|
|
76
|
+
"dart": 15,
|
|
77
|
+
// 16 - Delphi
|
|
78
|
+
"delphi": 16, "pas": 16, "pascal": 16,
|
|
79
|
+
// 17 - Django
|
|
80
|
+
"django": 17, "jinja": 17, "jinja2": 17,
|
|
81
|
+
// 18 - Dockerfile
|
|
82
|
+
"dockerfile": 18, "docker": 18,
|
|
83
|
+
// 19 - Erlang
|
|
84
|
+
"erlang": 19,
|
|
85
|
+
// 20 - Fortran
|
|
86
|
+
"fortran": 20, "f90": 20, "f95": 20, "f03": 20,
|
|
87
|
+
// 21 - FoxPro
|
|
88
|
+
"foxpro": 21, "vfp": 21,
|
|
89
|
+
// 22 - Go
|
|
90
|
+
"go": 22, "golang": 22,
|
|
91
|
+
// 23 - Groovy
|
|
92
|
+
"groovy": 23, "gradle": 23,
|
|
93
|
+
// 24 - HTML
|
|
94
|
+
"html": 24, "htm": 24, "svelte": 24,
|
|
95
|
+
// 25 - HTMLBars
|
|
96
|
+
"htmlbars": 25, "hbs": 25, "handlebars": 25,
|
|
97
|
+
// 26 - HTTP
|
|
98
|
+
"http": 26,
|
|
99
|
+
// 27 - Haskell
|
|
100
|
+
"haskell": 27, "hs": 27,
|
|
101
|
+
// 28 - JSON
|
|
102
|
+
"json": 28, "jsonc": 28, "json5": 28,
|
|
103
|
+
// 29 - Java
|
|
104
|
+
"java": 29,
|
|
105
|
+
// 30 - JavaScript
|
|
106
|
+
"javascript": 30, "js": 30, "mjs": 30, "cjs": 30, "jsx": 30,
|
|
107
|
+
// 31 - Julia
|
|
108
|
+
"julia": 31, "jl": 31,
|
|
109
|
+
// 32 - Kotlin
|
|
110
|
+
"kotlin": 32, "kt": 32, "kts": 32,
|
|
111
|
+
// 33 - LateX
|
|
112
|
+
"latex": 33, "tex": 33,
|
|
113
|
+
// 34 - Lisp
|
|
114
|
+
"lisp": 34, "el": 34, "elisp": 34, "common-lisp": 34, "cl": 34,
|
|
115
|
+
// 35 - Logo
|
|
116
|
+
"logo": 35,
|
|
117
|
+
// 36 - Lua
|
|
118
|
+
"lua": 36,
|
|
119
|
+
// 37 - MATLAB
|
|
120
|
+
"matlab": 37,
|
|
121
|
+
// 38 - Makefile
|
|
122
|
+
"makefile": 38, "make": 38, "mk": 38,
|
|
123
|
+
// 39 - Markdown
|
|
124
|
+
"markdown": 39, "md": 39, "mdown": 39, "mkd": 39,
|
|
125
|
+
// 40 - Nginx
|
|
126
|
+
"nginx": 40, "nginxconf": 40,
|
|
127
|
+
// 41 - Objective
|
|
128
|
+
"objectivec": 41, "objc": 41, "obj-c": 41, "objective-c": 41, "mm": 41,
|
|
129
|
+
// 42 - OpenEdgeABL
|
|
130
|
+
"openedgeabl": 42, "abl": 42, "progress": 42, "openedge": 42,
|
|
131
|
+
// 43 - PHP
|
|
132
|
+
"php": 43,
|
|
133
|
+
// 44 - Perl
|
|
134
|
+
"perl": 44, "pl": 44, "pm": 44,
|
|
135
|
+
// 45 - PostScript
|
|
136
|
+
"postscript": 45, "ps": 45, "eps": 45,
|
|
137
|
+
// 46 - Power
|
|
138
|
+
"power": 46, "powershell": 46, "ps1": 46, "pwsh": 46,
|
|
139
|
+
// 47 - Prolog
|
|
140
|
+
"prolog": 47,
|
|
141
|
+
// 48 - ProtoBuf
|
|
142
|
+
"protobuf": 48, "proto": 48,
|
|
143
|
+
// 49 - Python
|
|
144
|
+
"python": 49, "py": 49, "py3": 49, "pyw": 49,
|
|
145
|
+
// 50 - R
|
|
146
|
+
"r": 50, "rscript": 50,
|
|
147
|
+
// 51 - RPG
|
|
148
|
+
"rpg": 51,
|
|
149
|
+
// 52 - Ruby
|
|
150
|
+
"ruby": 52, "rb": 52, "gemfile": 52, "rakefile": 52,
|
|
151
|
+
// 53 - Rust
|
|
152
|
+
"rust": 53, "rs": 53,
|
|
153
|
+
// 54 - SAS
|
|
154
|
+
"sas": 54,
|
|
155
|
+
// 55 - SCSS
|
|
156
|
+
"scss": 55, "sass": 55,
|
|
157
|
+
// 56 - SQL
|
|
158
|
+
"sql": 56, "mysql": 56, "postgresql": 56, "postgres": 56, "pgsql": 56, "sqlite": 56,
|
|
159
|
+
// 57 - Scala
|
|
160
|
+
"scala": 57, "sc": 57,
|
|
161
|
+
// 58 - Scheme
|
|
162
|
+
"scheme": 58, "scm": 58, "ss": 58, "racket": 58,
|
|
163
|
+
// 59 - Scratch
|
|
164
|
+
"scratch": 59, "sb3": 59,
|
|
165
|
+
// 60 - Shell
|
|
166
|
+
"shell": 60, "env": 60, "bashrc": 60, "zshrc": 60, "profile": 60,
|
|
167
|
+
// 61 - Swift
|
|
168
|
+
"swift": 61,
|
|
169
|
+
// 62 - Thrift
|
|
170
|
+
"thrift": 62,
|
|
171
|
+
// 63 - TypeScript
|
|
172
|
+
"typescript": 63, "ts": 63, "tsx": 63, "mts": 63, "cts": 63,
|
|
173
|
+
// 64 - VBScript
|
|
174
|
+
"vbscript": 64, "vbs": 64, "vb": 64,
|
|
175
|
+
// 65 - Visual
|
|
176
|
+
"visual": 65, "vbnet": 65, "vb.net": 65,
|
|
177
|
+
// 66 - XML
|
|
178
|
+
"xml": 66, "xhtml": 66, "xslt": 66, "xsl": 66, "xsd": 66, "svg": 66, "pom": 66,
|
|
179
|
+
// 67 - YAML
|
|
180
|
+
"yaml": 67, "yml": 67,
|
|
181
|
+
// 68 - CMake
|
|
182
|
+
"cmake": 68,
|
|
183
|
+
// 69 - Diff
|
|
184
|
+
"diff": 69, "patch": 69, "udiff": 69,
|
|
185
|
+
// 70 - Gherkin
|
|
186
|
+
"gherkin": 70, "feature": 70, "cucumber": 70,
|
|
187
|
+
// 71 - GraphQL
|
|
188
|
+
"graphql": 71, "gql": 71, "graphqls": 71,
|
|
189
|
+
// 72 - OpenGL Shading Language
|
|
190
|
+
"glsl": 72, "vert": 72, "frag": 72, "shader": 72,
|
|
191
|
+
// 73 - Properties
|
|
192
|
+
"properties": 73, "ini": 73, "conf": 73, "config": 73, "cfg": 73,
|
|
193
|
+
// 74 - Solidity
|
|
194
|
+
"solidity": 74, "sol": 74,
|
|
195
|
+
// 75 - TOML
|
|
196
|
+
"toml": 75,
|
|
197
|
+
// 默认
|
|
198
|
+
"default": 1,
|
|
199
|
+
};
|
|
200
|
+
// 外部图片 emoji 标识
|
|
201
|
+
export const EXTERNAL_IMAGE_EMOJI = "🖼️";
|
|
202
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/format/constants.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 飞书文档处理模块
|
|
3
|
+
* 将 Markdown 转换为飞书文档块
|
|
4
|
+
*/
|
|
5
|
+
import { Block } from "./builder.js";
|
|
6
|
+
export interface DocumentMeta {
|
|
7
|
+
cwd: string;
|
|
8
|
+
sessionId: string;
|
|
9
|
+
profile: string;
|
|
10
|
+
datetime: string;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* 将 Markdown 文本转换为飞书文档块
|
|
14
|
+
*/
|
|
15
|
+
export declare function markdownToBlocks(markdown: string, originalMessage: string, meta: DocumentMeta): {
|
|
16
|
+
blocks: Block[];
|
|
17
|
+
warnings: string[];
|
|
18
|
+
};
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 飞书文档处理模块
|
|
3
|
+
* 将 Markdown 转换为飞书文档块
|
|
4
|
+
*/
|
|
5
|
+
import { buildTextBlock, buildHeadingBlock, buildCodeBlock, buildBulletBlock, buildOrderedBlock, buildQuoteBlock, buildTodoBlock, buildEquationBlock, buildCalloutBlock, buildDividerBlock, buildTableBlock, parseInlineText, } from "./builder.js";
|
|
6
|
+
import { parseTable, parseTodo, parseBlockEquation, parseCallout, parseHeading, isCodeBlockStart, isCodeBlockEnd, isDivider, isBulletList, isOrderedList, } from "./parser.js";
|
|
7
|
+
import { sanitizeContent } from "./sanitize.js";
|
|
8
|
+
import { BlockType } from "./constants.js";
|
|
9
|
+
// ── 主转换函数 ───────────────────────────────────────────────────
|
|
10
|
+
/**
|
|
11
|
+
* 将 Markdown 文本转换为飞书文档块
|
|
12
|
+
*/
|
|
13
|
+
export function markdownToBlocks(markdown, originalMessage, meta) {
|
|
14
|
+
const blocks = [];
|
|
15
|
+
// 1. 内容清理
|
|
16
|
+
const { content: sanitizedMarkdown, warnings } = sanitizeContent(markdown);
|
|
17
|
+
if (warnings.length > 0) {
|
|
18
|
+
console.error(`[WARN] Content sanitization: ${warnings.join(", ")}`);
|
|
19
|
+
}
|
|
20
|
+
// 2. 按行处理
|
|
21
|
+
const lines = sanitizedMarkdown.split("\n");
|
|
22
|
+
let currentPara = [];
|
|
23
|
+
let inCodeBlock = false;
|
|
24
|
+
let codeContent = [];
|
|
25
|
+
let codeLang = "";
|
|
26
|
+
const flushPara = () => {
|
|
27
|
+
if (currentPara.length > 0) {
|
|
28
|
+
const content = currentPara.join("\n").trim();
|
|
29
|
+
if (content) {
|
|
30
|
+
blocks.push(buildTextBlock(content));
|
|
31
|
+
}
|
|
32
|
+
currentPara = [];
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
for (let i = 0; i < lines.length; i++) {
|
|
36
|
+
const line = lines[i];
|
|
37
|
+
// --- 代码块处理 ---
|
|
38
|
+
if (inCodeBlock) {
|
|
39
|
+
if (isCodeBlockEnd(line)) {
|
|
40
|
+
blocks.push(buildCodeBlock(codeContent.join("\n"), codeLang));
|
|
41
|
+
inCodeBlock = false;
|
|
42
|
+
codeContent = [];
|
|
43
|
+
codeLang = "";
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
codeContent.push(line);
|
|
47
|
+
}
|
|
48
|
+
continue;
|
|
49
|
+
}
|
|
50
|
+
const codeStart = isCodeBlockStart(line);
|
|
51
|
+
if (codeStart.isStart) {
|
|
52
|
+
flushPara();
|
|
53
|
+
inCodeBlock = true;
|
|
54
|
+
codeLang = codeStart.lang;
|
|
55
|
+
codeContent = [];
|
|
56
|
+
continue;
|
|
57
|
+
}
|
|
58
|
+
// --- 块级公式 ---
|
|
59
|
+
const equationResult = parseBlockEquation(lines, i);
|
|
60
|
+
if (equationResult) {
|
|
61
|
+
flushPara();
|
|
62
|
+
blocks.push(buildEquationBlock(equationResult.result.latex));
|
|
63
|
+
i = equationResult.endIndex;
|
|
64
|
+
continue;
|
|
65
|
+
}
|
|
66
|
+
// --- 高亮块 ---
|
|
67
|
+
const calloutResult = parseCallout(lines, i);
|
|
68
|
+
if (calloutResult) {
|
|
69
|
+
flushPara();
|
|
70
|
+
const { type, content } = calloutResult.result;
|
|
71
|
+
blocks.push(buildCalloutBlock(type, content.join("\n")));
|
|
72
|
+
i = calloutResult.endIndex;
|
|
73
|
+
continue;
|
|
74
|
+
}
|
|
75
|
+
// --- 表格 ---
|
|
76
|
+
const tableResult = parseTable(lines, i);
|
|
77
|
+
if (tableResult) {
|
|
78
|
+
flushPara();
|
|
79
|
+
blocks.push(buildTableBlock(tableResult.data));
|
|
80
|
+
i = tableResult.endIndex;
|
|
81
|
+
continue;
|
|
82
|
+
}
|
|
83
|
+
// --- 任务列表 ---
|
|
84
|
+
const todoResult = parseTodo(line);
|
|
85
|
+
if (todoResult) {
|
|
86
|
+
flushPara();
|
|
87
|
+
blocks.push(buildTodoBlock(todoResult.content, todoResult.checked));
|
|
88
|
+
continue;
|
|
89
|
+
}
|
|
90
|
+
// --- 标题 ---
|
|
91
|
+
const headingLevel = parseHeading(line);
|
|
92
|
+
if (headingLevel > 0) {
|
|
93
|
+
flushPara();
|
|
94
|
+
const content = line.slice(headingLevel + 1).trim();
|
|
95
|
+
blocks.push(buildHeadingBlock(headingLevel, content));
|
|
96
|
+
continue;
|
|
97
|
+
}
|
|
98
|
+
// --- 分割线 ---
|
|
99
|
+
if (isDivider(line)) {
|
|
100
|
+
flushPara();
|
|
101
|
+
blocks.push(buildDividerBlock());
|
|
102
|
+
continue;
|
|
103
|
+
}
|
|
104
|
+
// --- 引用块 ---
|
|
105
|
+
if (line.trim().startsWith("> ")) {
|
|
106
|
+
flushPara();
|
|
107
|
+
const quoteContent = line.trim().slice(2);
|
|
108
|
+
// 检查是否是高亮块语法(已在上面处理)
|
|
109
|
+
if (!quoteContent.match(/^\[!\w+\]/)) {
|
|
110
|
+
blocks.push(buildQuoteBlock(quoteContent));
|
|
111
|
+
}
|
|
112
|
+
continue;
|
|
113
|
+
}
|
|
114
|
+
// --- 无序列表 ---
|
|
115
|
+
if (isBulletList(line)) {
|
|
116
|
+
flushPara();
|
|
117
|
+
const match = line.match(/^(\s*)[-*]\s+(.+)$/);
|
|
118
|
+
if (match) {
|
|
119
|
+
blocks.push(buildBulletBlock(match[2]));
|
|
120
|
+
}
|
|
121
|
+
continue;
|
|
122
|
+
}
|
|
123
|
+
// --- 有序列表 ---
|
|
124
|
+
if (isOrderedList(line)) {
|
|
125
|
+
flushPara();
|
|
126
|
+
const match = line.match(/^(\s*)(\d+)\.\s+(.+)$/);
|
|
127
|
+
if (match) {
|
|
128
|
+
blocks.push(buildOrderedBlock(match[3]));
|
|
129
|
+
}
|
|
130
|
+
continue;
|
|
131
|
+
}
|
|
132
|
+
// --- 普通段落 ---
|
|
133
|
+
currentPara.push(line);
|
|
134
|
+
}
|
|
135
|
+
// 处理剩余段落
|
|
136
|
+
flushPara();
|
|
137
|
+
// 3. 添加元数据头部
|
|
138
|
+
const headerBlocks = buildDocumentHeader(originalMessage, meta);
|
|
139
|
+
return { blocks: [...headerBlocks, ...blocks], warnings };
|
|
140
|
+
}
|
|
141
|
+
// ── 文档头部构建 ───────────────────────────────────────────────────
|
|
142
|
+
function buildDocumentHeader(originalMessage, meta) {
|
|
143
|
+
const blocks = [];
|
|
144
|
+
// 引用块显示用户原始消息
|
|
145
|
+
if (originalMessage) {
|
|
146
|
+
blocks.push({
|
|
147
|
+
block_type: BlockType.QUOTE,
|
|
148
|
+
quote: { elements: parseInlineText(originalMessage) },
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
// 分割线
|
|
152
|
+
blocks.push(buildDividerBlock());
|
|
153
|
+
// 元数据
|
|
154
|
+
const metaText = `📁 工作目录: ${meta.cwd}\n🤖 机器人: ${meta.profile}\n🔗 会话ID: ${meta.sessionId}\n📅 时间: ${meta.datetime}`;
|
|
155
|
+
blocks.push({
|
|
156
|
+
block_type: BlockType.TEXT,
|
|
157
|
+
text: { elements: parseInlineText(metaText) },
|
|
158
|
+
});
|
|
159
|
+
// 分割线
|
|
160
|
+
blocks.push(buildDividerBlock());
|
|
161
|
+
return blocks;
|
|
162
|
+
}
|
|
163
|
+
//# sourceMappingURL=document.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"document.js","sourceRoot":"","sources":["../../src/format/document.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 飞书格式处理模块
|
|
3
|
+
* 包含样式常量、内容清理、卡片处理、文档处理、解析器、块构建器
|
|
4
|
+
*/
|
|
5
|
+
export * from "./constants.js";
|
|
6
|
+
export { sanitizeContent, formatWarnings } from "./sanitize.js";
|
|
7
|
+
export type { SanitizeResult } from "./sanitize.js";
|
|
8
|
+
export { buildMarkdownCard, buildTextCard, buildStatusCard, sendMarkdownCardMessage, } from "./card.js";
|
|
9
|
+
export { markdownToBlocks } from "./document.js";
|
|
10
|
+
export type { DocumentMeta } from "./document.js";
|
|
11
|
+
export { parseTable, parseTodo, parseBlockEquation, parseInlineEquation, parseCallout, parseHeading, isCodeBlockStart, isCodeBlockEnd, isDivider, isBulletList, isOrderedList, isQuote, } from "./parser.js";
|
|
12
|
+
export type { TodoParseResult, EquationParseResult, CalloutParseResult } from "./parser.js";
|
|
13
|
+
export { parseInlineText, buildTextBlock, buildHeadingBlock, buildCodeBlock, buildBulletBlock, buildOrderedBlock, buildQuoteBlock, buildTodoBlock, buildEquationBlock, buildCalloutBlock, buildDividerBlock, buildTableBlock, } from "./builder.js";
|
|
14
|
+
export type { Block, TextElement, TableData } from "./builder.js";
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 飞书格式处理模块
|
|
3
|
+
* 包含样式常量、内容清理、卡片处理、文档处理、解析器、块构建器
|
|
4
|
+
*/
|
|
5
|
+
// 常量
|
|
6
|
+
export * from "./constants.js";
|
|
7
|
+
// 内容清理
|
|
8
|
+
export { sanitizeContent, formatWarnings } from "./sanitize.js";
|
|
9
|
+
// 卡片处理
|
|
10
|
+
export { buildMarkdownCard, buildTextCard, buildStatusCard, sendMarkdownCardMessage, } from "./card.js";
|
|
11
|
+
// 文档处理
|
|
12
|
+
export { markdownToBlocks } from "./document.js";
|
|
13
|
+
// 解析器
|
|
14
|
+
export { parseTable, parseTodo, parseBlockEquation, parseInlineEquation, parseCallout, parseHeading, isCodeBlockStart, isCodeBlockEnd, isDivider, isBulletList, isOrderedList, isQuote, } from "./parser.js";
|
|
15
|
+
// 块构建器
|
|
16
|
+
export { parseInlineText, buildTextBlock, buildHeadingBlock, buildCodeBlock, buildBulletBlock, buildOrderedBlock, buildQuoteBlock, buildTodoBlock, buildEquationBlock, buildCalloutBlock, buildDividerBlock, buildTableBlock, } from "./builder.js";
|
|
17
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/format/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,KAAK;AACL,cAAc,gBAAgB,CAAC;AAE/B,OAAO;AACP,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAGhE,OAAO;AACP,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,uBAAuB,GACxB,MAAM,WAAW,CAAC;AAEnB,OAAO;AACP,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAGjD,MAAM;AACN,OAAO,EACL,UAAU,EACV,SAAS,EACT,kBAAkB,EAClB,mBAAmB,EACnB,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,SAAS,EACT,YAAY,EACZ,aAAa,EACb,OAAO,GACR,MAAM,aAAa,CAAC;AAGrB,OAAO;AACP,OAAO,EACL,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,GAChB,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Markdown 解析器
|
|
3
|
+
* 解析表格、任务列表、公式、高亮块等
|
|
4
|
+
*/
|
|
5
|
+
import { CalloutType } from "./constants.js";
|
|
6
|
+
import { TableData } from "./builder.js";
|
|
7
|
+
/**
|
|
8
|
+
* 解析 Markdown 表格
|
|
9
|
+
* @returns 表格数据和结束行索引,如果不是表格返回 null
|
|
10
|
+
*/
|
|
11
|
+
export declare function parseTable(lines: string[], startIndex: number): {
|
|
12
|
+
data: TableData;
|
|
13
|
+
endIndex: number;
|
|
14
|
+
} | null;
|
|
15
|
+
export interface TodoParseResult {
|
|
16
|
+
content: string;
|
|
17
|
+
checked: boolean;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* 解析任务列表
|
|
21
|
+
* - [ ] 未完成
|
|
22
|
+
* - [x] 已完成
|
|
23
|
+
*/
|
|
24
|
+
export declare function parseTodo(line: string): TodoParseResult | null;
|
|
25
|
+
export interface EquationParseResult {
|
|
26
|
+
latex: string;
|
|
27
|
+
inline: boolean;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* 解析块级公式 $$...$$
|
|
31
|
+
*/
|
|
32
|
+
export declare function parseBlockEquation(lines: string[], startIndex: number): {
|
|
33
|
+
result: EquationParseResult;
|
|
34
|
+
endIndex: number;
|
|
35
|
+
} | null;
|
|
36
|
+
/**
|
|
37
|
+
* 解析行内公式 $...$
|
|
38
|
+
*/
|
|
39
|
+
export declare function parseInlineEquation(text: string): {
|
|
40
|
+
latex: string;
|
|
41
|
+
remaining: string;
|
|
42
|
+
} | null;
|
|
43
|
+
export interface CalloutParseResult {
|
|
44
|
+
type: CalloutType;
|
|
45
|
+
content: string[];
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* 解析高亮块
|
|
49
|
+
* > [!NOTE]
|
|
50
|
+
* > 这是一个提示
|
|
51
|
+
*
|
|
52
|
+
* > [!WARNING]
|
|
53
|
+
* > 这是一个警告
|
|
54
|
+
*/
|
|
55
|
+
export declare function parseCallout(lines: string[], startIndex: number): {
|
|
56
|
+
result: CalloutParseResult;
|
|
57
|
+
endIndex: number;
|
|
58
|
+
} | null;
|
|
59
|
+
/**
|
|
60
|
+
* 检测标题级别
|
|
61
|
+
* @returns 标题级别 (1-6),0 表示不是标题
|
|
62
|
+
*/
|
|
63
|
+
export declare function parseHeading(line: string): number;
|
|
64
|
+
/**
|
|
65
|
+
* 检测是否为代码块开始
|
|
66
|
+
*/
|
|
67
|
+
export declare function isCodeBlockStart(line: string): {
|
|
68
|
+
isStart: boolean;
|
|
69
|
+
lang: string;
|
|
70
|
+
};
|
|
71
|
+
/**
|
|
72
|
+
* 检测是否为代码块结束
|
|
73
|
+
*/
|
|
74
|
+
export declare function isCodeBlockEnd(line: string): boolean;
|
|
75
|
+
/**
|
|
76
|
+
* 检测是否为引用块
|
|
77
|
+
*/
|
|
78
|
+
export declare function isQuote(line: string): boolean;
|
|
79
|
+
/**
|
|
80
|
+
* 检测是否为无序列表
|
|
81
|
+
*/
|
|
82
|
+
export declare function isBulletList(line: string): boolean;
|
|
83
|
+
/**
|
|
84
|
+
* 检测是否为有序列表
|
|
85
|
+
*/
|
|
86
|
+
export declare function isOrderedList(line: string): boolean;
|
|
87
|
+
/**
|
|
88
|
+
* 检测是否为分割线
|
|
89
|
+
*/
|
|
90
|
+
export declare function isDivider(line: string): boolean;
|