@refinex-md/markdown 0.1.0-canary.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.
- package/LICENSE +21 -0
- package/README.md +25 -0
- package/dist/index.d.ts +202 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +944 -0
- package/dist/index.js.map +1 -0
- package/package.json +56 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Refinex-Space
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# @refinex-md/markdown
|
|
2
|
+
|
|
3
|
+
Markdown 与 `RefinexDoc` / ProseMirror document 的转换包,基于 remark / unified,并支持 rich blocks 扩展。
|
|
4
|
+
|
|
5
|
+
## 安装
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
pnpm add @refinex-md/markdown @refinex-md/model
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## 最短示例
|
|
12
|
+
|
|
13
|
+
```ts
|
|
14
|
+
import { docToMarkdown, markdownToDoc } from '@refinex-md/markdown'
|
|
15
|
+
|
|
16
|
+
const parsed = markdownToDoc('# Hello\n\nRefinex MD Editor')
|
|
17
|
+
const serialized = docToMarkdown(parsed.doc)
|
|
18
|
+
|
|
19
|
+
console.log(serialized.markdown)
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## 文档
|
|
23
|
+
|
|
24
|
+
- [导入导出](../../docs/guides/import-export.md)
|
|
25
|
+
- [API 参考](../../docs/api/README.md#refinex-mdmarkdown)
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
import { Node as ProseMirrorNode, Schema } from 'prosemirror-model';
|
|
2
|
+
import { defaultSchema, ProseMirrorDocJSON, RefinexDoc, RefinexDocMetadata, RefinexSchemaExtension } from '@refinex-md/model';
|
|
3
|
+
export type MarkdownTransformIssueCode = 'MARKDOWN_PARSE_FAILED' | 'FRONTMATTER_INVALID' | 'FRONTMATTER_UNSERIALIZABLE' | 'MDAST_NODE_UNSUPPORTED' | 'PMAST_NODE_UNSUPPORTED' | 'MARK_UNSUPPORTED' | 'EXTENSION_CODEC_CONFLICT' | 'EXTENSION_CODEC_FAILED' | 'BLOCK_ID_COMMENT_INVALID' | 'GFM_TABLE_FALLBACK' | 'GFM_TASK_LIST_ITEM' | 'HTML_FALLBACK' | 'RICH_BLOCK_ATTR_FALLBACK' | 'TABLE_COMPLEX_MARKDOWN_FALLBACK' | 'MATH_PARSE_WARNING' | 'ROUNDTRIP_LOSSY' | 'DOC_VALIDATION_FAILED';
|
|
4
|
+
export type MarkdownIssueSeverity = 'error' | 'warn' | 'info';
|
|
5
|
+
export type FrontmatterMode = 'preserve' | 'drop' | 'metadata-only';
|
|
6
|
+
export type SerializeFrontmatterMode = 'emit' | 'drop';
|
|
7
|
+
export type BlockIdMode = 'regenerate' | 'preserve-trusted' | 'preserve-comments';
|
|
8
|
+
export type SerializeBlockIds = 'drop' | 'html-comments';
|
|
9
|
+
export type UnknownNodePolicy = 'warn-and-drop' | 'warn-and-paragraph' | 'error';
|
|
10
|
+
export type UnsupportedNodePolicy = 'warn-and-drop' | 'warn-and-code-fence' | 'error';
|
|
11
|
+
export interface MarkdownTransformIssue {
|
|
12
|
+
readonly code: MarkdownTransformIssueCode;
|
|
13
|
+
readonly severity: MarkdownIssueSeverity;
|
|
14
|
+
readonly path: string;
|
|
15
|
+
readonly message: string;
|
|
16
|
+
}
|
|
17
|
+
export interface MarkdownFormatOptions {
|
|
18
|
+
readonly bullet: '-' | '*' | '+';
|
|
19
|
+
readonly emphasis: '*' | '_';
|
|
20
|
+
readonly strong: '*' | '_';
|
|
21
|
+
readonly bulletOrdered: '.' | ')';
|
|
22
|
+
readonly incrementListMarker: boolean;
|
|
23
|
+
readonly fences: boolean;
|
|
24
|
+
readonly listItemIndent: 'one' | 'tab' | 'mixed';
|
|
25
|
+
readonly rule: '-' | '*' | '_';
|
|
26
|
+
readonly ruleRepetition: number;
|
|
27
|
+
readonly setext: boolean;
|
|
28
|
+
}
|
|
29
|
+
export interface ParseMarkdownOptions {
|
|
30
|
+
readonly schemaExtensions?: readonly RefinexSchemaExtension[];
|
|
31
|
+
readonly markdownExtensions?: readonly RefinexMarkdownExtension[];
|
|
32
|
+
readonly frontmatter?: FrontmatterMode;
|
|
33
|
+
readonly blockIdMode?: BlockIdMode;
|
|
34
|
+
readonly unknownNodePolicy?: UnknownNodePolicy;
|
|
35
|
+
readonly source?: RefinexDocMetadata['source'];
|
|
36
|
+
}
|
|
37
|
+
export interface SerializeMarkdownOptions {
|
|
38
|
+
readonly schemaExtensions?: readonly RefinexSchemaExtension[];
|
|
39
|
+
readonly markdownExtensions?: readonly RefinexMarkdownExtension[];
|
|
40
|
+
readonly frontmatter?: SerializeFrontmatterMode;
|
|
41
|
+
readonly blockIds?: SerializeBlockIds;
|
|
42
|
+
readonly unsupportedNodePolicy?: UnsupportedNodePolicy;
|
|
43
|
+
readonly format?: Partial<MarkdownFormatOptions>;
|
|
44
|
+
}
|
|
45
|
+
export interface ParseMarkdownResult {
|
|
46
|
+
readonly doc: RefinexDoc;
|
|
47
|
+
readonly issues: readonly MarkdownTransformIssue[];
|
|
48
|
+
readonly frontmatter: Record<string, unknown>;
|
|
49
|
+
}
|
|
50
|
+
export interface SerializeMarkdownResult {
|
|
51
|
+
readonly markdown: string;
|
|
52
|
+
readonly issues: readonly MarkdownTransformIssue[];
|
|
53
|
+
}
|
|
54
|
+
export interface MarkdownTransformerOptions {
|
|
55
|
+
readonly schemaExtensions?: readonly RefinexSchemaExtension[];
|
|
56
|
+
readonly markdownExtensions?: readonly RefinexMarkdownExtension[];
|
|
57
|
+
readonly parse?: Omit<ParseMarkdownOptions, 'schemaExtensions' | 'markdownExtensions'>;
|
|
58
|
+
readonly serialize?: Omit<SerializeMarkdownOptions, 'schemaExtensions' | 'markdownExtensions'>;
|
|
59
|
+
}
|
|
60
|
+
export interface MarkdownTransformer {
|
|
61
|
+
parse(markdown: string, options?: ParseMarkdownOptions): ParseMarkdownResult;
|
|
62
|
+
serialize(doc: RefinexDoc | ProseMirrorDocJSON | ProseMirrorNode, options?: SerializeMarkdownOptions): SerializeMarkdownResult;
|
|
63
|
+
}
|
|
64
|
+
export interface MarkdownParseContext {
|
|
65
|
+
readonly schema: Schema;
|
|
66
|
+
readonly issues: MarkdownTransformIssue[];
|
|
67
|
+
}
|
|
68
|
+
export interface MarkdownSerializeContext {
|
|
69
|
+
readonly node: ProseMirrorNode;
|
|
70
|
+
readonly issues: MarkdownTransformIssue[];
|
|
71
|
+
serializeInline(node: ProseMirrorNode): MdastPhrasing[];
|
|
72
|
+
}
|
|
73
|
+
export interface MarkdownNodeCodec {
|
|
74
|
+
parse?(context: MarkdownParseContext, node: MdastNode): ProseMirrorNode | ProseMirrorNode[] | null;
|
|
75
|
+
serialize?(context: MarkdownSerializeContext, node: ProseMirrorNode): MdastNode | MdastNode[] | null;
|
|
76
|
+
readonly fallback: 'paragraph' | 'code_block' | 'html-comment' | 'drop' | 'error';
|
|
77
|
+
}
|
|
78
|
+
export interface MarkdownMarkCodec {
|
|
79
|
+
readonly fallback: 'drop' | 'code' | 'html-comment' | 'error';
|
|
80
|
+
}
|
|
81
|
+
export interface RefinexMarkdownExtension {
|
|
82
|
+
readonly name: string;
|
|
83
|
+
readonly version: string;
|
|
84
|
+
readonly nodes?: Record<string, MarkdownNodeCodec>;
|
|
85
|
+
readonly marks?: Record<string, MarkdownMarkCodec>;
|
|
86
|
+
}
|
|
87
|
+
interface MdastParent {
|
|
88
|
+
children: MdastNode[];
|
|
89
|
+
}
|
|
90
|
+
interface MdastLiteral {
|
|
91
|
+
value: string;
|
|
92
|
+
}
|
|
93
|
+
type MdastNode = MdastRoot | MdastYaml | MdastText | MdastBreak | MdastInlineCode | MdastInlineMath | MdastEmphasis | MdastStrong | MdastDelete | MdastLink | MdastImage | MdastHtml | MdastParagraph | MdastHeading | MdastBlockquote | MdastCode | MdastMath | MdastThematicBreak | MdastList | MdastListItem | MdastTable | MdastTableRow | MdastTableCell;
|
|
94
|
+
interface MdastRoot extends MdastParent {
|
|
95
|
+
type: 'root';
|
|
96
|
+
}
|
|
97
|
+
interface MdastYaml extends MdastLiteral {
|
|
98
|
+
type: 'yaml';
|
|
99
|
+
}
|
|
100
|
+
interface MdastText extends MdastLiteral {
|
|
101
|
+
type: 'text';
|
|
102
|
+
}
|
|
103
|
+
interface MdastBreak {
|
|
104
|
+
type: 'break';
|
|
105
|
+
}
|
|
106
|
+
interface MdastInlineCode extends MdastLiteral {
|
|
107
|
+
type: 'inlineCode';
|
|
108
|
+
}
|
|
109
|
+
interface MdastInlineMath extends MdastLiteral {
|
|
110
|
+
type: 'inlineMath';
|
|
111
|
+
}
|
|
112
|
+
interface MdastEmphasis extends MdastParent {
|
|
113
|
+
type: 'emphasis';
|
|
114
|
+
children: MdastPhrasing[];
|
|
115
|
+
}
|
|
116
|
+
interface MdastStrong extends MdastParent {
|
|
117
|
+
type: 'strong';
|
|
118
|
+
children: MdastPhrasing[];
|
|
119
|
+
}
|
|
120
|
+
interface MdastDelete extends MdastParent {
|
|
121
|
+
type: 'delete';
|
|
122
|
+
children: MdastPhrasing[];
|
|
123
|
+
}
|
|
124
|
+
interface MdastLink extends MdastParent {
|
|
125
|
+
type: 'link';
|
|
126
|
+
url: string;
|
|
127
|
+
title?: string | null;
|
|
128
|
+
children: MdastPhrasing[];
|
|
129
|
+
}
|
|
130
|
+
interface MdastImage {
|
|
131
|
+
type: 'image';
|
|
132
|
+
url: string;
|
|
133
|
+
alt?: string;
|
|
134
|
+
title?: string | null;
|
|
135
|
+
}
|
|
136
|
+
interface MdastHtml extends MdastLiteral {
|
|
137
|
+
type: 'html';
|
|
138
|
+
}
|
|
139
|
+
interface MdastParagraph extends MdastParent {
|
|
140
|
+
type: 'paragraph';
|
|
141
|
+
children: MdastPhrasing[];
|
|
142
|
+
}
|
|
143
|
+
interface MdastHeading extends MdastParent {
|
|
144
|
+
type: 'heading';
|
|
145
|
+
depth: 1 | 2 | 3 | 4 | 5 | 6;
|
|
146
|
+
children: MdastPhrasing[];
|
|
147
|
+
}
|
|
148
|
+
interface MdastBlockquote extends MdastParent {
|
|
149
|
+
type: 'blockquote';
|
|
150
|
+
children: MdastBlock[];
|
|
151
|
+
}
|
|
152
|
+
interface MdastCode extends MdastLiteral {
|
|
153
|
+
type: 'code';
|
|
154
|
+
lang?: string | null;
|
|
155
|
+
}
|
|
156
|
+
interface MdastMath extends MdastLiteral {
|
|
157
|
+
type: 'math';
|
|
158
|
+
meta?: string | null;
|
|
159
|
+
}
|
|
160
|
+
interface MdastThematicBreak {
|
|
161
|
+
type: 'thematicBreak';
|
|
162
|
+
}
|
|
163
|
+
interface MdastList extends MdastParent {
|
|
164
|
+
type: 'list';
|
|
165
|
+
ordered?: boolean | null;
|
|
166
|
+
start?: number | null;
|
|
167
|
+
spread?: boolean | null;
|
|
168
|
+
children: MdastListItem[];
|
|
169
|
+
}
|
|
170
|
+
interface MdastListItem extends MdastParent {
|
|
171
|
+
type: 'listItem';
|
|
172
|
+
checked?: boolean | null;
|
|
173
|
+
spread?: boolean | null;
|
|
174
|
+
children: MdastBlock[];
|
|
175
|
+
}
|
|
176
|
+
interface MdastTable extends MdastParent {
|
|
177
|
+
type: 'table';
|
|
178
|
+
align?: Array<'left' | 'right' | 'center' | null>;
|
|
179
|
+
children: MdastTableRow[];
|
|
180
|
+
}
|
|
181
|
+
interface MdastTableRow extends MdastParent {
|
|
182
|
+
type: 'tableRow';
|
|
183
|
+
children: MdastTableCell[];
|
|
184
|
+
}
|
|
185
|
+
interface MdastTableCell extends MdastParent {
|
|
186
|
+
type: 'tableCell';
|
|
187
|
+
children: MdastPhrasing[];
|
|
188
|
+
}
|
|
189
|
+
type MdastPhrasing = MdastText | MdastBreak | MdastInlineCode | MdastInlineMath | MdastEmphasis | MdastStrong | MdastDelete | MdastLink | MdastImage | MdastHtml;
|
|
190
|
+
type MdastBlock = MdastParagraph | MdastHeading | MdastBlockquote | MdastCode | MdastMath | MdastThematicBreak | MdastList | MdastTable | MdastHtml;
|
|
191
|
+
export declare function parseMarkdown(markdown: string, options?: ParseMarkdownOptions): ProseMirrorNode;
|
|
192
|
+
export declare function serializeMarkdown(doc: RefinexDoc | ProseMirrorDocJSON | ProseMirrorNode, options?: SerializeMarkdownOptions): string;
|
|
193
|
+
export declare function markdownToDoc(markdown: string, options?: ParseMarkdownOptions): ParseMarkdownResult;
|
|
194
|
+
export declare function docToMarkdown(doc: RefinexDoc | ProseMirrorDocJSON | ProseMirrorNode, options?: SerializeMarkdownOptions): SerializeMarkdownResult;
|
|
195
|
+
export declare function parseMarkdownDocument(markdown: string, options?: ParseMarkdownOptions): ParseMarkdownResult & {
|
|
196
|
+
readonly docNode: ProseMirrorNode;
|
|
197
|
+
};
|
|
198
|
+
export declare function serializeMarkdownDocument(input: RefinexDoc | ProseMirrorDocJSON | ProseMirrorNode, options?: SerializeMarkdownOptions): SerializeMarkdownResult;
|
|
199
|
+
export declare function createMarkdownTransformer(options?: MarkdownTransformerOptions): MarkdownTransformer;
|
|
200
|
+
export declare function createRichBlockMarkdownExtension(): RefinexMarkdownExtension;
|
|
201
|
+
export { defaultSchema };
|
|
202
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|