@open-feishu-card/schema 0.1.0 → 0.1.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/index.cjs +3074 -0
- package/dist/index.js +2965 -16
- package/package.json +7 -4
- package/dist/card.js +0 -41
- package/dist/card.js.map +0 -1
- package/dist/common/behavior.js +0 -39
- package/dist/common/behavior.js.map +0 -1
- package/dist/common/behaviors-context.js +0 -88
- package/dist/common/behaviors-context.js.map +0 -1
- package/dist/common/confirm.js +0 -12
- package/dist/common/confirm.js.map +0 -1
- package/dist/common/enums.js +0 -131
- package/dist/common/enums.js.map +0 -1
- package/dist/common/fallback.js +0 -22
- package/dist/common/fallback.js.map +0 -1
- package/dist/common/icon-tokens.js +0 -1163
- package/dist/common/icon-tokens.js.map +0 -1
- package/dist/common/icon.js +0 -49
- package/dist/common/icon.js.map +0 -1
- package/dist/common/index.js +0 -9
- package/dist/common/index.js.map +0 -1
- package/dist/common/text.js +0 -80
- package/dist/common/text.js.map +0 -1
- package/dist/common/url.js +0 -30
- package/dist/common/url.js.map +0 -1
- package/dist/config.js +0 -123
- package/dist/config.js.map +0 -1
- package/dist/containers/index.js +0 -205
- package/dist/containers/index.js.map +0 -1
- package/dist/content/index.js +0 -426
- package/dist/content/index.js.map +0 -1
- package/dist/element-ref.js +0 -17
- package/dist/element-ref.js.map +0 -1
- package/dist/element.js +0 -46
- package/dist/element.js.map +0 -1
- package/dist/header.js +0 -27
- package/dist/header.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/interactive/index.js +0 -533
- package/dist/interactive/index.js.map +0 -1
- package/dist/markdown/builders.js +0 -140
- package/dist/markdown/builders.js.map +0 -1
- package/dist/markdown/code-language.js +0 -79
- package/dist/markdown/code-language.js.map +0 -1
- package/dist/markdown/component.js +0 -38
- package/dist/markdown/component.js.map +0 -1
- package/dist/markdown/emoji-tokens.js +0 -193
- package/dist/markdown/emoji-tokens.js.map +0 -1
- package/dist/markdown/enums.js +0 -49
- package/dist/markdown/enums.js.map +0 -1
- package/dist/markdown/escape.js +0 -42
- package/dist/markdown/escape.js.map +0 -1
- package/dist/markdown/index.js +0 -16
- package/dist/markdown/index.js.map +0 -1
- package/dist/markdown/tags.js +0 -238
- package/dist/markdown/tags.js.map +0 -1
- package/dist/markdown/text-size.js +0 -58
- package/dist/markdown/text-size.js.map +0 -1
|
@@ -1,140 +0,0 @@
|
|
|
1
|
-
import { FeishuEmojiTokenSchema, } from './emoji-tokens.js';
|
|
2
|
-
import { renderAnchorTag, renderAtTag, renderFontTag, renderInlineAudioTag, renderLinkTag, renderLocalDateTimeTag, renderNumberTag, renderPersonTag, renderTextTag, } from './tags.js';
|
|
3
|
-
/**
|
|
4
|
-
* 飞书卡片富文本内容构建器。
|
|
5
|
-
* 拼接标准 Markdown 与飞书扩展 HTML 标签,最终得到 markdown 组件的 content 字符串。
|
|
6
|
-
*/
|
|
7
|
-
export class MarkdownContentBuilder {
|
|
8
|
-
chunks = [];
|
|
9
|
-
/** 追加原始片段(可为 Markdown 或已渲染标签) */
|
|
10
|
-
raw(text) {
|
|
11
|
-
this.chunks.push(text);
|
|
12
|
-
return this;
|
|
13
|
-
}
|
|
14
|
-
/** 追加纯文本 */
|
|
15
|
-
text(value) {
|
|
16
|
-
return this.raw(value);
|
|
17
|
-
}
|
|
18
|
-
/** 硬换行(`\n`) */
|
|
19
|
-
br() {
|
|
20
|
-
return this.raw('\n');
|
|
21
|
-
}
|
|
22
|
-
/** HTML `<br>` / `<br/>` */
|
|
23
|
-
htmlBr(selfClosing = true) {
|
|
24
|
-
return this.raw(selfClosing ? '<br/>' : '<br>');
|
|
25
|
-
}
|
|
26
|
-
/** 分割线 */
|
|
27
|
-
hr(style = 'html') {
|
|
28
|
-
return this.raw(style === 'html' ? '<hr>' : '---');
|
|
29
|
-
}
|
|
30
|
-
italic(text) {
|
|
31
|
-
return this.raw(`*${text}*`);
|
|
32
|
-
}
|
|
33
|
-
bold(text) {
|
|
34
|
-
return this.raw(`**${text}**`);
|
|
35
|
-
}
|
|
36
|
-
strike(text) {
|
|
37
|
-
return this.raw(`~~${text}~~`);
|
|
38
|
-
}
|
|
39
|
-
inlineCode(text) {
|
|
40
|
-
return this.raw(`\`${text}\``);
|
|
41
|
-
}
|
|
42
|
-
/** `#` ~ `######` 标题 */
|
|
43
|
-
heading(level, text) {
|
|
44
|
-
return this.raw(`${'#'.repeat(level)} ${text}`);
|
|
45
|
-
}
|
|
46
|
-
quote(text) {
|
|
47
|
-
return this.raw(`> ${text}`);
|
|
48
|
-
}
|
|
49
|
-
/** Markdown 文字链接 */
|
|
50
|
-
mdLink(text, url) {
|
|
51
|
-
return this.raw(`[${text}](${url})`);
|
|
52
|
-
}
|
|
53
|
-
/** 可点击电话(仅移动端) */
|
|
54
|
-
tel(text, phone) {
|
|
55
|
-
return this.raw(`[${text}](tel://${phone})`);
|
|
56
|
-
}
|
|
57
|
-
/** 图片:`` */
|
|
58
|
-
image(imgKey, hoverText = '') {
|
|
59
|
-
return this.raw(``);
|
|
60
|
-
}
|
|
61
|
-
/** 飞书表情:`:DONE:`;key 为官方 emoji_type 枚举 */
|
|
62
|
-
emoji(key) {
|
|
63
|
-
const token = FeishuEmojiTokenSchema.parse(key.startsWith(':') && key.endsWith(':') ? key.slice(1, -1) : key);
|
|
64
|
-
return this.raw(`:${token}:`);
|
|
65
|
-
}
|
|
66
|
-
/**
|
|
67
|
-
* 代码块。language 官方声明大小写不敏感;未指定时为 Plain Text。
|
|
68
|
-
*/
|
|
69
|
-
codeBlock(code, language) {
|
|
70
|
-
const lang = language ?? '';
|
|
71
|
-
return this.raw(`\`\`\`${lang}\n${code}\n\`\`\``);
|
|
72
|
-
}
|
|
73
|
-
unorderedList(items, indent = 0) {
|
|
74
|
-
const prefix = ' '.repeat(indent * 4);
|
|
75
|
-
for (const item of items) {
|
|
76
|
-
this.raw(`${prefix}- ${item}\n`);
|
|
77
|
-
}
|
|
78
|
-
return this;
|
|
79
|
-
}
|
|
80
|
-
orderedList(items, indent = 0) {
|
|
81
|
-
const prefix = ' '.repeat(indent * 4);
|
|
82
|
-
items.forEach((item, index) => {
|
|
83
|
-
this.raw(`${prefix}${index + 1}. ${item}\n`);
|
|
84
|
-
});
|
|
85
|
-
return this;
|
|
86
|
-
}
|
|
87
|
-
/** Markdown 表格(除表头外客户端最多展示 5 行) */
|
|
88
|
-
table(headers, rows) {
|
|
89
|
-
const escapeCell = (cell) => cell.replace(/\|/g, '\\|');
|
|
90
|
-
const headerLine = `| ${headers.map(escapeCell).join(' | ')} |`;
|
|
91
|
-
const sepLine = `| ${headers.map(() => '--------').join(' | ')} |`;
|
|
92
|
-
this.raw(`${headerLine}\n${sepLine}\n`);
|
|
93
|
-
for (const row of rows) {
|
|
94
|
-
this.raw(`| ${row.map(escapeCell).join(' | ')} |\n`);
|
|
95
|
-
}
|
|
96
|
-
return this;
|
|
97
|
-
}
|
|
98
|
-
at(input) {
|
|
99
|
-
return this.raw(renderAtTag(input));
|
|
100
|
-
}
|
|
101
|
-
atAll() {
|
|
102
|
-
return this.at({ id: 'all' });
|
|
103
|
-
}
|
|
104
|
-
person(input) {
|
|
105
|
-
return this.raw(renderPersonTag(input));
|
|
106
|
-
}
|
|
107
|
-
link(input) {
|
|
108
|
-
return this.raw(renderLinkTag(input));
|
|
109
|
-
}
|
|
110
|
-
textTag(input) {
|
|
111
|
-
return this.raw(renderTextTag(input));
|
|
112
|
-
}
|
|
113
|
-
numberTag(input) {
|
|
114
|
-
return this.raw(renderNumberTag(input));
|
|
115
|
-
}
|
|
116
|
-
localDateTime(input = {}) {
|
|
117
|
-
return this.raw(renderLocalDateTimeTag(input));
|
|
118
|
-
}
|
|
119
|
-
font(input) {
|
|
120
|
-
return this.raw(renderFontTag(input));
|
|
121
|
-
}
|
|
122
|
-
anchor(input) {
|
|
123
|
-
return this.raw(renderAnchorTag(input));
|
|
124
|
-
}
|
|
125
|
-
audio(input) {
|
|
126
|
-
return this.raw(renderInlineAudioTag(input));
|
|
127
|
-
}
|
|
128
|
-
/** 生成最终 content 字符串 */
|
|
129
|
-
build() {
|
|
130
|
-
return this.chunks.join('');
|
|
131
|
-
}
|
|
132
|
-
toString() {
|
|
133
|
-
return this.build();
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
/** 快捷创建构建器 */
|
|
137
|
-
export function markdown() {
|
|
138
|
-
return new MarkdownContentBuilder();
|
|
139
|
-
}
|
|
140
|
-
//# sourceMappingURL=builders.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"builders.js","sourceRoot":"","sources":["../../src/markdown/builders.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
2
|
-
/**
|
|
3
|
-
* 富文本代码块支持的编程语言(大小写不敏感)。
|
|
4
|
-
* @see https://open.feishu.cn/document/feishu-cards/card-json-v2-components/content-components/rich-text
|
|
5
|
-
*/
|
|
6
|
-
export const MarkdownCodeLanguageSchema = z
|
|
7
|
-
.enum([
|
|
8
|
-
'plain_text',
|
|
9
|
-
'abap',
|
|
10
|
-
'ada',
|
|
11
|
-
'apache',
|
|
12
|
-
'apex',
|
|
13
|
-
'assembly',
|
|
14
|
-
'bash',
|
|
15
|
-
'c_sharp',
|
|
16
|
-
'cpp',
|
|
17
|
-
'c',
|
|
18
|
-
'cmake',
|
|
19
|
-
'cobol',
|
|
20
|
-
'css',
|
|
21
|
-
'coffee_script',
|
|
22
|
-
'd',
|
|
23
|
-
'dart',
|
|
24
|
-
'delphi',
|
|
25
|
-
'diff',
|
|
26
|
-
'django',
|
|
27
|
-
'docker_file',
|
|
28
|
-
'erlang',
|
|
29
|
-
'fortran',
|
|
30
|
-
'gherkin',
|
|
31
|
-
'go',
|
|
32
|
-
'graphql',
|
|
33
|
-
'groovy',
|
|
34
|
-
'html',
|
|
35
|
-
'htmlbars',
|
|
36
|
-
'http',
|
|
37
|
-
'haskell',
|
|
38
|
-
'json',
|
|
39
|
-
'java',
|
|
40
|
-
'javascript',
|
|
41
|
-
'julia',
|
|
42
|
-
'kotlin',
|
|
43
|
-
'latex',
|
|
44
|
-
'lisp',
|
|
45
|
-
'lua',
|
|
46
|
-
'matlab',
|
|
47
|
-
'makefile',
|
|
48
|
-
'markdown',
|
|
49
|
-
'nginx',
|
|
50
|
-
'objective_c',
|
|
51
|
-
'opengl_shading_language',
|
|
52
|
-
'php',
|
|
53
|
-
'perl',
|
|
54
|
-
'powershell',
|
|
55
|
-
'prolog',
|
|
56
|
-
'properties',
|
|
57
|
-
'protobuf',
|
|
58
|
-
'python',
|
|
59
|
-
'r',
|
|
60
|
-
'ruby',
|
|
61
|
-
'rust',
|
|
62
|
-
'sas',
|
|
63
|
-
'scss',
|
|
64
|
-
'sql',
|
|
65
|
-
'scala',
|
|
66
|
-
'scheme',
|
|
67
|
-
'shell',
|
|
68
|
-
'solidity',
|
|
69
|
-
'swift',
|
|
70
|
-
'toml',
|
|
71
|
-
'thrift',
|
|
72
|
-
'typescript',
|
|
73
|
-
'vbscript',
|
|
74
|
-
'visual_basic',
|
|
75
|
-
'xml',
|
|
76
|
-
'yaml',
|
|
77
|
-
])
|
|
78
|
-
.describe('富文本代码块语言标识(大小写不敏感)');
|
|
79
|
-
//# sourceMappingURL=code-language.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"code-language.js","sourceRoot":"","sources":["../../src/markdown/code-language.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;GAGG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC;KACxC,IAAI,CAAC;IACJ,YAAY;IACZ,MAAM;IACN,KAAK;IACL,QAAQ;IACR,MAAM;IACN,UAAU;IACV,MAAM;IACN,SAAS;IACT,KAAK;IACL,GAAG;IACH,OAAO;IACP,OAAO;IACP,KAAK;IACL,eAAe;IACf,GAAG;IACH,MAAM;IACN,QAAQ;IACR,MAAM;IACN,QAAQ;IACR,aAAa;IACb,QAAQ;IACR,SAAS;IACT,SAAS;IACT,IAAI;IACJ,SAAS;IACT,QAAQ;IACR,MAAM;IACN,UAAU;IACV,MAAM;IACN,SAAS;IACT,MAAM;IACN,MAAM;IACN,YAAY;IACZ,OAAO;IACP,QAAQ;IACR,OAAO;IACP,MAAM;IACN,KAAK;IACL,QAAQ;IACR,UAAU;IACV,UAAU;IACV,OAAO;IACP,aAAa;IACb,yBAAyB;IACzB,KAAK;IACL,MAAM;IACN,YAAY;IACZ,QAAQ;IACR,YAAY;IACZ,UAAU;IACV,QAAQ;IACR,GAAG;IACH,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,KAAK;IACL,OAAO;IACP,QAAQ;IACR,OAAO;IACP,UAAU;IACV,OAAO;IACP,MAAM;IACN,QAAQ;IACR,YAAY;IACZ,UAAU;IACV,cAAc;IACd,KAAK;IACL,MAAM;CACP,CAAC;KACD,QAAQ,CAAC,oBAAoB,CAAC,CAAC"}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
2
|
-
import { ElementIdSchema, HorizontalAlignSchema, SpacingValueSchema, } from '../common/enums.js';
|
|
3
|
-
import { IconSchema } from '../common/icon.js';
|
|
4
|
-
import { MultiUrlSchema } from '../common/url.js';
|
|
5
|
-
import { MarkdownTextSizeSchema } from './text-size.js';
|
|
6
|
-
/**
|
|
7
|
-
* 历史差异化跳转映射(JSON 1.0 / 旧语法)。
|
|
8
|
-
* JSON 2.0 已不推荐;请优先使用 `<link>` 标签。
|
|
9
|
-
*/
|
|
10
|
-
export const MarkdownHrefSchema = z
|
|
11
|
-
.record(z.string(), MultiUrlSchema)
|
|
12
|
-
.describe('差异化跳转映射(旧语法)。content 中使用 [文案]($key) 引用;JSON 2.0 建议改用 <link>');
|
|
13
|
-
/**
|
|
14
|
-
* 富文本(Markdown)组件。
|
|
15
|
-
*
|
|
16
|
-
* `content` 支持 CommonMark 标准语法(除 HTMLBlock)以及飞书扩展标签:
|
|
17
|
-
* `<at>` / `<person>` / `<link>` / `<text_tag>` / `<number_tag>` /
|
|
18
|
-
* `<local_datetime>` / `<font>` / `<a>` / `<audio>` / `<br>` / `<hr>` 等。
|
|
19
|
-
*
|
|
20
|
-
* 推荐使用 `markdown()` 构建器生成 content。
|
|
21
|
-
*
|
|
22
|
-
* @see https://open.feishu.cn/document/feishu-cards/card-json-v2-components/content-components/rich-text
|
|
23
|
-
*/
|
|
24
|
-
export const MarkdownSchema = z
|
|
25
|
-
.object({
|
|
26
|
-
tag: z.literal('markdown').describe('组件标签,固定为 markdown'),
|
|
27
|
-
content: z
|
|
28
|
-
.string()
|
|
29
|
-
.describe("Markdown 文本。分区标题默认写成 **分区名**(勿用 # 标题、勿默认色条丨)。字段标签用 <font color='grey'>;短标识用 <text_tag>。仅展示人员用 <person>,要通知用 <at>;二者勿包进 <font>。支持 at/person/link/text_tag/number_tag/local_datetime/font/audio 等"),
|
|
30
|
-
element_id: ElementIdSchema.optional().describe('组件唯一标识'),
|
|
31
|
-
margin: SpacingValueSchema.optional().describe('组件外边距,默认 0'),
|
|
32
|
-
text_align: HorizontalAlignSchema.optional().describe('文本对齐方式,默认 left'),
|
|
33
|
-
text_size: MarkdownTextSizeSchema.optional().describe('文本大小,默认 normal;可为官方枚举或自定义 text_size key。标签/辅助说明可用 notation,数值可用 heading'),
|
|
34
|
-
icon: IconSchema.optional().describe('文本前缀图标;与文内 emoji 二选一,不要叠用。图标颜色应与描述的状态文字一致'),
|
|
35
|
-
href: MarkdownHrefSchema.optional().describe('旧版差异化跳转映射;JSON 2.0 建议使用 <link> 替代'),
|
|
36
|
-
})
|
|
37
|
-
.describe('富文本(Markdown)组件。正文默认直接放在 body.elements;分区用 **加粗** 小标题起头');
|
|
38
|
-
//# sourceMappingURL=component.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"component.js","sourceRoot":"","sources":["../../src/markdown/component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAExD;;;GAGG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC;KAChC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,cAAc,CAAC;KAClC,QAAQ,CACP,6DAA6D,CAC9D,CAAC;AAIJ;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC;KAC5B,MAAM,CAAC;IACN,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC;IACxD,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,QAAQ,CACP,iMAAiM,CAClM;IACH,UAAU,EAAE,eAAe,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC;IACzD,MAAM,EAAE,kBAAkB,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;IAC5D,UAAU,EAAE,qBAAqB,CAAC,QAAQ,EAAE,CAAC,QAAQ,CACnD,gBAAgB,CACjB;IACD,SAAS,EAAE,sBAAsB,CAAC,QAAQ,EAAE,CAAC,QAAQ,CACnD,yEAAyE,CAC1E;IACD,IAAI,EAAE,UAAU,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAClC,2CAA2C,CAC5C;IACD,IAAI,EAAE,kBAAkB,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAC1C,mCAAmC,CACpC;CACF,CAAC;KACD,QAAQ,CACP,yDAAyD,CAC1D,CAAC"}
|
|
@@ -1,193 +0,0 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
2
|
-
/**
|
|
3
|
-
* 飞书表情(emoji_type)枚举。
|
|
4
|
-
* 在富文本中写作 `:KEY:`,例如 `:DONE:`、`:THUMBSUP:`。
|
|
5
|
-
* 来源:开放平台「表情文案说明」。
|
|
6
|
-
*/
|
|
7
|
-
export const FeishuEmojiTokenSchema = z
|
|
8
|
-
.enum([
|
|
9
|
-
'OK',
|
|
10
|
-
'THUMBSUP',
|
|
11
|
-
'THANKS',
|
|
12
|
-
'MUSCLE',
|
|
13
|
-
'FINGERHEART',
|
|
14
|
-
'APPLAUSE',
|
|
15
|
-
'FISTBUMP',
|
|
16
|
-
'JIAYI',
|
|
17
|
-
'DONE',
|
|
18
|
-
'SMILE',
|
|
19
|
-
'BLUSH',
|
|
20
|
-
'LAUGH',
|
|
21
|
-
'SMIRK',
|
|
22
|
-
'LOL',
|
|
23
|
-
'FACEPALM',
|
|
24
|
-
'LOVE',
|
|
25
|
-
'WINK',
|
|
26
|
-
'PROUD',
|
|
27
|
-
'WITTY',
|
|
28
|
-
'SMART',
|
|
29
|
-
'SCOWL',
|
|
30
|
-
'THINKING',
|
|
31
|
-
'SOB',
|
|
32
|
-
'CRY',
|
|
33
|
-
'ERROR',
|
|
34
|
-
'NOSEPICK',
|
|
35
|
-
'HAUGHTY',
|
|
36
|
-
'SLAP',
|
|
37
|
-
'SPITBLOOD',
|
|
38
|
-
'TOASTED',
|
|
39
|
-
'GLANCE',
|
|
40
|
-
'DULL',
|
|
41
|
-
'INNOCENTSMILE',
|
|
42
|
-
'JOYFUL',
|
|
43
|
-
'WOW',
|
|
44
|
-
'TRICK',
|
|
45
|
-
'YEAH',
|
|
46
|
-
'ENOUGH',
|
|
47
|
-
'TEARS',
|
|
48
|
-
'EMBARRASSED',
|
|
49
|
-
'KISS',
|
|
50
|
-
'SMOOCH',
|
|
51
|
-
'DROOL',
|
|
52
|
-
'OBSESSED',
|
|
53
|
-
'MONEY',
|
|
54
|
-
'TEASE',
|
|
55
|
-
'SHOWOFF',
|
|
56
|
-
'COMFORT',
|
|
57
|
-
'CLAP',
|
|
58
|
-
'PRAISE',
|
|
59
|
-
'STRIVE',
|
|
60
|
-
'XBLUSH',
|
|
61
|
-
'SILENT',
|
|
62
|
-
'WAVE',
|
|
63
|
-
'WHAT',
|
|
64
|
-
'FROWN',
|
|
65
|
-
'SHY',
|
|
66
|
-
'DIZZY',
|
|
67
|
-
'LOOKDOWN',
|
|
68
|
-
'CHUCKLE',
|
|
69
|
-
'WAIL',
|
|
70
|
-
'CRAZY',
|
|
71
|
-
'WHIMPER',
|
|
72
|
-
'HUG',
|
|
73
|
-
'BLUBBER',
|
|
74
|
-
'WRONGED',
|
|
75
|
-
'HUSKY',
|
|
76
|
-
'SHHH',
|
|
77
|
-
'SMUG',
|
|
78
|
-
'ANGRY',
|
|
79
|
-
'HAMMER.png',
|
|
80
|
-
'SHOCKED',
|
|
81
|
-
'TERROR',
|
|
82
|
-
'PETRIFIED',
|
|
83
|
-
'SKULL',
|
|
84
|
-
'SWEAT',
|
|
85
|
-
'SPEECHLESS',
|
|
86
|
-
'SLEEP',
|
|
87
|
-
'DROWSY',
|
|
88
|
-
'YAWN',
|
|
89
|
-
'SICK',
|
|
90
|
-
'PUKE',
|
|
91
|
-
'BETRAYED',
|
|
92
|
-
'HEADSET',
|
|
93
|
-
'EatingFood',
|
|
94
|
-
'MeMeMe',
|
|
95
|
-
'Sigh',
|
|
96
|
-
'Typing',
|
|
97
|
-
'Lemon',
|
|
98
|
-
'Get',
|
|
99
|
-
'LGTM',
|
|
100
|
-
'OnIt.png',
|
|
101
|
-
'OneSecond',
|
|
102
|
-
'VRHeadset',
|
|
103
|
-
'YouAreTheBest',
|
|
104
|
-
'SALUTE',
|
|
105
|
-
'SHAKE',
|
|
106
|
-
'HIGHFIVE',
|
|
107
|
-
'UPPERLEFT',
|
|
108
|
-
'ThumbsDown',
|
|
109
|
-
'SLIGHT',
|
|
110
|
-
'TONGUE',
|
|
111
|
-
'EYESCLOSED',
|
|
112
|
-
'RoarForYou',
|
|
113
|
-
'CALF',
|
|
114
|
-
'BEAR',
|
|
115
|
-
'BULL',
|
|
116
|
-
'RAINBOWPUKE',
|
|
117
|
-
'ROSE',
|
|
118
|
-
'HEART',
|
|
119
|
-
'PARTY',
|
|
120
|
-
'LIPS',
|
|
121
|
-
'BEER',
|
|
122
|
-
'CAKE',
|
|
123
|
-
'GIFT',
|
|
124
|
-
'CUCUMBER',
|
|
125
|
-
'Drumstick',
|
|
126
|
-
'Pepper',
|
|
127
|
-
'CANDIEDHAWS',
|
|
128
|
-
'BubbleTea',
|
|
129
|
-
'Coffee',
|
|
130
|
-
'Yes',
|
|
131
|
-
'No',
|
|
132
|
-
'OKR',
|
|
133
|
-
'CheckMark',
|
|
134
|
-
'CrossMark',
|
|
135
|
-
'MinusOne',
|
|
136
|
-
'Hundred',
|
|
137
|
-
'AWESOMEN',
|
|
138
|
-
'Pin',
|
|
139
|
-
'Alarm',
|
|
140
|
-
'Loudspeaker',
|
|
141
|
-
'Trophy',
|
|
142
|
-
'Fire',
|
|
143
|
-
'BOMB',
|
|
144
|
-
'Music',
|
|
145
|
-
'XmasTree',
|
|
146
|
-
'Snowman',
|
|
147
|
-
'XmasHat',
|
|
148
|
-
'FIREWORKS',
|
|
149
|
-
'2022',
|
|
150
|
-
'REDPACKET',
|
|
151
|
-
'FORTUNE',
|
|
152
|
-
'LUCK',
|
|
153
|
-
'FIRECRACKER',
|
|
154
|
-
'StickyRiceBalls',
|
|
155
|
-
'HEARTBROKEN',
|
|
156
|
-
'POOP',
|
|
157
|
-
'StatusFlashOfInspiration',
|
|
158
|
-
'18X',
|
|
159
|
-
'CLEAVER.png',
|
|
160
|
-
'Soccer',
|
|
161
|
-
'Basketball',
|
|
162
|
-
'GeneralDoNotDisturb',
|
|
163
|
-
'Status_PrivateMessage',
|
|
164
|
-
'GeneralInMeetingBusy',
|
|
165
|
-
'StatusReading',
|
|
166
|
-
'StatusInFlight',
|
|
167
|
-
'GeneralBusinessTrip',
|
|
168
|
-
'GeneralWorkFromHome',
|
|
169
|
-
'StatusEnjoyLife',
|
|
170
|
-
'GeneralTravellingCar',
|
|
171
|
-
'StatusBus',
|
|
172
|
-
'GeneralSun',
|
|
173
|
-
'GeneralMoonRest',
|
|
174
|
-
'MoonRabbit',
|
|
175
|
-
'Mooncake',
|
|
176
|
-
'JubilantRabbit',
|
|
177
|
-
'TV',
|
|
178
|
-
'Movie',
|
|
179
|
-
'Pumpkin',
|
|
180
|
-
'BeamingFace',
|
|
181
|
-
'Delighted',
|
|
182
|
-
'ColdSweat',
|
|
183
|
-
'FullMoonFace',
|
|
184
|
-
'Partying',
|
|
185
|
-
'GoGoGo',
|
|
186
|
-
'ThanksFace',
|
|
187
|
-
'SaluteFace',
|
|
188
|
-
'Shrug',
|
|
189
|
-
'ClownFace',
|
|
190
|
-
'HappyDragon',
|
|
191
|
-
])
|
|
192
|
-
.describe('飞书表情 key(emoji_type),富文本中写作 :KEY:');
|
|
193
|
-
//# sourceMappingURL=emoji-tokens.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"emoji-tokens.js","sourceRoot":"","sources":["../../src/markdown/emoji-tokens.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;GAIG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC;KACpC,IAAI,CAAC;IACJ,IAAI;IACJ,UAAU;IACV,QAAQ;IACR,QAAQ;IACR,aAAa;IACb,UAAU;IACV,UAAU;IACV,OAAO;IACP,MAAM;IACN,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,KAAK;IACL,UAAU;IACV,MAAM;IACN,MAAM;IACN,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,UAAU;IACV,KAAK;IACL,KAAK;IACL,OAAO;IACP,UAAU;IACV,SAAS;IACT,MAAM;IACN,WAAW;IACX,SAAS;IACT,QAAQ;IACR,MAAM;IACN,eAAe;IACf,QAAQ;IACR,KAAK;IACL,OAAO;IACP,MAAM;IACN,QAAQ;IACR,OAAO;IACP,aAAa;IACb,MAAM;IACN,QAAQ;IACR,OAAO;IACP,UAAU;IACV,OAAO;IACP,OAAO;IACP,SAAS;IACT,SAAS;IACT,MAAM;IACN,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,MAAM;IACN,MAAM;IACN,OAAO;IACP,KAAK;IACL,OAAO;IACP,UAAU;IACV,SAAS;IACT,MAAM;IACN,OAAO;IACP,SAAS;IACT,KAAK;IACL,SAAS;IACT,SAAS;IACT,OAAO;IACP,MAAM;IACN,MAAM;IACN,OAAO;IACP,YAAY;IACZ,SAAS;IACT,QAAQ;IACR,WAAW;IACX,OAAO;IACP,OAAO;IACP,YAAY;IACZ,OAAO;IACP,QAAQ;IACR,MAAM;IACN,MAAM;IACN,MAAM;IACN,UAAU;IACV,SAAS;IACT,YAAY;IACZ,QAAQ;IACR,MAAM;IACN,QAAQ;IACR,OAAO;IACP,KAAK;IACL,MAAM;IACN,UAAU;IACV,WAAW;IACX,WAAW;IACX,eAAe;IACf,QAAQ;IACR,OAAO;IACP,UAAU;IACV,WAAW;IACX,YAAY;IACZ,QAAQ;IACR,QAAQ;IACR,YAAY;IACZ,YAAY;IACZ,MAAM;IACN,MAAM;IACN,MAAM;IACN,aAAa;IACb,MAAM;IACN,OAAO;IACP,OAAO;IACP,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,UAAU;IACV,WAAW;IACX,QAAQ;IACR,aAAa;IACb,WAAW;IACX,QAAQ;IACR,KAAK;IACL,IAAI;IACJ,KAAK;IACL,WAAW;IACX,WAAW;IACX,UAAU;IACV,SAAS;IACT,UAAU;IACV,KAAK;IACL,OAAO;IACP,aAAa;IACb,QAAQ;IACR,MAAM;IACN,MAAM;IACN,OAAO;IACP,UAAU;IACV,SAAS;IACT,SAAS;IACT,WAAW;IACX,MAAM;IACN,WAAW;IACX,SAAS;IACT,MAAM;IACN,aAAa;IACb,iBAAiB;IACjB,aAAa;IACb,MAAM;IACN,0BAA0B;IAC1B,KAAK;IACL,aAAa;IACb,QAAQ;IACR,YAAY;IACZ,qBAAqB;IACrB,uBAAuB;IACvB,sBAAsB;IACtB,eAAe;IACf,gBAAgB;IAChB,qBAAqB;IACrB,qBAAqB;IACrB,iBAAiB;IACjB,sBAAsB;IACtB,WAAW;IACX,YAAY;IACZ,iBAAiB;IACjB,YAAY;IACZ,UAAU;IACV,gBAAgB;IAChB,IAAI;IACJ,OAAO;IACP,SAAS;IACT,aAAa;IACb,WAAW;IACX,WAAW;IACX,cAAc;IACd,UAAU;IACV,QAAQ;IACR,YAAY;IACZ,YAAY;IACZ,OAAO;IACP,WAAW;IACX,aAAa;CACd,CAAC;KACD,QAAQ,CAAC,mCAAmC,CAAC,CAAC"}
|
package/dist/markdown/enums.js
DELETED
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
2
|
-
/**
|
|
3
|
-
* 富文本 `<text_tag>` 颜色枚举。
|
|
4
|
-
*/
|
|
5
|
-
export const MarkdownTextTagColorSchema = z
|
|
6
|
-
.enum([
|
|
7
|
-
'neutral',
|
|
8
|
-
'blue',
|
|
9
|
-
'turquoise',
|
|
10
|
-
'lime',
|
|
11
|
-
'orange',
|
|
12
|
-
'violet',
|
|
13
|
-
'indigo',
|
|
14
|
-
'wathet',
|
|
15
|
-
'green',
|
|
16
|
-
'yellow',
|
|
17
|
-
'red',
|
|
18
|
-
'purple',
|
|
19
|
-
'carmine',
|
|
20
|
-
])
|
|
21
|
-
.describe('富文本 text_tag 颜色枚举');
|
|
22
|
-
/**
|
|
23
|
-
* 富文本 `<local_datetime>` 的 format_type。
|
|
24
|
-
*/
|
|
25
|
-
export const MarkdownDateTimeFormatSchema = z
|
|
26
|
-
.enum([
|
|
27
|
-
'date_num',
|
|
28
|
-
'date_short',
|
|
29
|
-
'date',
|
|
30
|
-
'week',
|
|
31
|
-
'week_short',
|
|
32
|
-
'time',
|
|
33
|
-
'time_sec',
|
|
34
|
-
'timezone',
|
|
35
|
-
])
|
|
36
|
-
.describe('国际化时间展示格式:date_num / date_short / date / week / week_short / time / time_sec / timezone');
|
|
37
|
-
/**
|
|
38
|
-
* 富文本内嵌 `<person>` 的展示样式。
|
|
39
|
-
*/
|
|
40
|
-
export const MarkdownPersonStyleSchema = z
|
|
41
|
-
.enum(['normal', 'capsule'])
|
|
42
|
-
.describe('人员标签样式:normal(普通)/ capsule(胶囊)');
|
|
43
|
-
/**
|
|
44
|
-
* 富文本内嵌 `<audio>` 的样式。
|
|
45
|
-
*/
|
|
46
|
-
export const MarkdownInlineAudioStyleSchema = z
|
|
47
|
-
.enum(['normal', 'speak'])
|
|
48
|
-
.describe('内嵌音频样式:normal(三角播放)/ speak(语音气泡)');
|
|
49
|
-
//# sourceMappingURL=enums.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"enums.js","sourceRoot":"","sources":["../../src/markdown/enums.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC;KACxC,IAAI,CAAC;IACJ,SAAS;IACT,MAAM;IACN,WAAW;IACX,MAAM;IACN,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,KAAK;IACL,QAAQ;IACR,SAAS;CACV,CAAC;KACD,QAAQ,CAAC,mBAAmB,CAAC,CAAC;AAIjC;;GAEG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC;KAC1C,IAAI,CAAC;IACJ,UAAU;IACV,YAAY;IACZ,MAAM;IACN,MAAM;IACN,YAAY;IACZ,MAAM;IACN,UAAU;IACV,UAAU;CACX,CAAC;KACD,QAAQ,CACP,yFAAyF,CAC1F,CAAC;AAIJ;;GAEG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC;KACvC,IAAI,CAAC,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;KAC3B,QAAQ,CAAC,gCAAgC,CAAC,CAAC;AAI9C;;GAEG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC;KAC5C,IAAI,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;KACzB,QAAQ,CAAC,kCAAkC,CAAC,CAAC"}
|
package/dist/markdown/escape.js
DELETED
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* 将文本中的 Markdown 特殊字符转义为 HTML 实体,便于按字面量展示。
|
|
3
|
-
*
|
|
4
|
-
* 注意:`&` 必须最先转义,避免二次污染。
|
|
5
|
-
*/
|
|
6
|
-
const ESCAPE_MAP = [
|
|
7
|
-
['&', '&'],
|
|
8
|
-
['<', '<'],
|
|
9
|
-
['>', '>'],
|
|
10
|
-
['*', '*'],
|
|
11
|
-
['~', '∼'],
|
|
12
|
-
['-', '-'],
|
|
13
|
-
['!', '!'],
|
|
14
|
-
['/', '/'],
|
|
15
|
-
['\\', '\'],
|
|
16
|
-
['[', '['],
|
|
17
|
-
[']', ']'],
|
|
18
|
-
['(', '('],
|
|
19
|
-
[')', ')'],
|
|
20
|
-
['#', '#'],
|
|
21
|
-
[':', ':'],
|
|
22
|
-
['+', '+'],
|
|
23
|
-
['"', '"'],
|
|
24
|
-
["'", '''],
|
|
25
|
-
['`', '`'],
|
|
26
|
-
['$', '$'],
|
|
27
|
-
['_', '_'],
|
|
28
|
-
];
|
|
29
|
-
export function escapeMarkdown(text) {
|
|
30
|
-
let result = text;
|
|
31
|
-
for (const [char, entity] of ESCAPE_MAP) {
|
|
32
|
-
result = result.split(char).join(entity);
|
|
33
|
-
}
|
|
34
|
-
return result;
|
|
35
|
-
}
|
|
36
|
-
/** 不换行空格 */
|
|
37
|
-
export const NBSP = ' ';
|
|
38
|
-
/** 半角空格 */
|
|
39
|
-
export const ENSP = ' ';
|
|
40
|
-
/** 全角空格 */
|
|
41
|
-
export const EMSP = ' ';
|
|
42
|
-
//# sourceMappingURL=escape.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"escape.js","sourceRoot":"","sources":["../../src/markdown/escape.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,UAAU,GAA6C;IAC3D,CAAC,GAAG,EAAE,OAAO,CAAC;IACd,CAAC,GAAG,EAAE,OAAO,CAAC;IACd,CAAC,GAAG,EAAE,OAAO,CAAC;IACd,CAAC,GAAG,EAAE,OAAO,CAAC;IACd,CAAC,GAAG,EAAE,OAAO,CAAC;IACd,CAAC,GAAG,EAAE,OAAO,CAAC;IACd,CAAC,GAAG,EAAE,OAAO,CAAC;IACd,CAAC,GAAG,EAAE,OAAO,CAAC;IACd,CAAC,IAAI,EAAE,OAAO,CAAC;IACf,CAAC,GAAG,EAAE,OAAO,CAAC;IACd,CAAC,GAAG,EAAE,OAAO,CAAC;IACd,CAAC,GAAG,EAAE,OAAO,CAAC;IACd,CAAC,GAAG,EAAE,OAAO,CAAC;IACd,CAAC,GAAG,EAAE,OAAO,CAAC;IACd,CAAC,GAAG,EAAE,OAAO,CAAC;IACd,CAAC,GAAG,EAAE,OAAO,CAAC;IACd,CAAC,GAAG,EAAE,OAAO,CAAC;IACd,CAAC,GAAG,EAAE,OAAO,CAAC;IACd,CAAC,GAAG,EAAE,OAAO,CAAC;IACd,CAAC,GAAG,EAAE,OAAO,CAAC;IACd,CAAC,GAAG,EAAE,OAAO,CAAC;CACf,CAAC;AAEF,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,IAAI,MAAM,GAAG,IAAI,CAAC;IAClB,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QACxC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,YAAY;AACZ,MAAM,CAAC,MAAM,IAAI,GAAG,QAAQ,CAAC;AAC7B,WAAW;AACX,MAAM,CAAC,MAAM,IAAI,GAAG,QAAQ,CAAC;AAC7B,WAAW;AACX,MAAM,CAAC,MAAM,IAAI,GAAG,QAAQ,CAAC"}
|
package/dist/markdown/index.js
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* 飞书卡片富文本(Markdown)模块。
|
|
3
|
-
*
|
|
4
|
-
* - `MarkdownSchema`:卡片组件 Schema
|
|
5
|
-
* - `markdown()` / `MarkdownContentBuilder`:类型安全地拼接 content
|
|
6
|
-
* - `tags` / `enums`:扩展标签参数 Schema 与渲染函数
|
|
7
|
-
*/
|
|
8
|
-
export * from './text-size.js';
|
|
9
|
-
export * from './code-language.js';
|
|
10
|
-
export * from './emoji-tokens.js';
|
|
11
|
-
export * from './enums.js';
|
|
12
|
-
export * from './escape.js';
|
|
13
|
-
export * from './tags.js';
|
|
14
|
-
export * from './builders.js';
|
|
15
|
-
export * from './component.js';
|
|
16
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/markdown/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC"}
|