@hcengineering/text-markdown 0.7.1

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/tsconfig.json ADDED
@@ -0,0 +1,12 @@
1
+ {
2
+ "extends": "./node_modules/@hcengineering/platform-rig/profiles/default/tsconfig.json",
3
+
4
+ "compilerOptions": {
5
+ "rootDir": "./src",
6
+ "outDir": "./lib",
7
+ "declarationDir": "./types",
8
+ "tsBuildInfoFile": ".build/build.tsbuildinfo"
9
+ },
10
+ "include": ["src/**/*"],
11
+ "exclude": ["node_modules", "lib", "dist", "types", "bundle"]
12
+ }
@@ -0,0 +1,9 @@
1
+ declare global {
2
+ namespace jest {
3
+ interface Matchers<R> {
4
+ toEqualMarkdown: (expected: string) => R;
5
+ }
6
+ }
7
+ }
8
+ export {};
9
+ //# sourceMappingURL=markdown.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"markdown.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/markdown.test.ts"],"names":[],"mappings":"AAuBA,OAAO,CAAC,MAAM,CAAC;IAEb,UAAU,IAAI,CAAC;QACb,UAAU,QAAQ,CAAC,CAAC;YAClB,eAAe,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,CAAC,CAAA;SACzC;KACF;CACF"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Calculate Sørensen–Dice coefficient
3
+ */
4
+ export declare function calcSørensenDiceCoefficient(a: string, b: string): number;
5
+ /**
6
+ * Perform markdown diff/comparison to understand do we have a major differences.
7
+ */
8
+ export declare function isMarkdownsEquals(source1: string, source2: string): boolean;
9
+ export declare function normalizeMarkdown(source: string): string;
10
+ //# sourceMappingURL=compare.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compare.d.ts","sourceRoot":"","sources":["../src/compare.ts"],"names":[],"mappings":"AAeA;;GAEG;AACH,wBAAgB,2BAA2B,CAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CA2BzE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAI5E;AAED,wBAAgB,iBAAiB,CAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CA8DzD"}
@@ -0,0 +1,14 @@
1
+ import { MarkupNode } from '@hcengineering/text-core';
2
+ export * from './compare';
3
+ export * from './parser';
4
+ export * from './serializer';
5
+ /** @public */
6
+ export interface MarkdownOptions {
7
+ refUrl?: string;
8
+ imageUrl?: string;
9
+ }
10
+ /** @public */
11
+ export declare function markupToMarkdown(markup: MarkupNode, options?: MarkdownOptions): string;
12
+ /** @public */
13
+ export declare function markdownToMarkup(markdown: string, options?: MarkdownOptions): MarkupNode;
14
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAIrD,cAAc,WAAW,CAAA;AACzB,cAAc,UAAU,CAAA;AACxB,cAAc,cAAc,CAAA;AAE5B,cAAc;AACd,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,cAAc;AACd,wBAAgB,gBAAgB,CAAE,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,MAAM,CAOvF;AAED,cAAc;AACd,wBAAgB,gBAAgB,CAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,UAAU,CAMzF"}
@@ -0,0 +1,8 @@
1
+ import { MarkupMark, MarkupMarkType } from '@hcengineering/text-core';
2
+ export declare function markAttrs(mark: MarkupMark): Record<string, string>;
3
+ export declare function isInSet(mark: MarkupMark, marks: MarkupMark[]): boolean;
4
+ export declare function addToSet(mark: MarkupMark, marks: MarkupMark[]): MarkupMark[];
5
+ export declare function removeFromSet(markType: MarkupMarkType, marks: MarkupMark[]): MarkupMark[];
6
+ export declare function sameSet(a?: MarkupMark[], b?: MarkupMark[]): boolean;
7
+ export declare function markEq(first: MarkupMark, other: MarkupMark): boolean;
8
+ //# sourceMappingURL=marks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"marks.d.ts","sourceRoot":"","sources":["../src/marks.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAGrE,wBAAgB,SAAS,CAAE,IAAI,EAAE,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAEnE;AAED,wBAAgB,OAAO,CAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,OAAO,CAEvE;AAED,wBAAgB,QAAQ,CAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,UAAU,EAAE,CAO7E;AAED,wBAAgB,aAAa,CAAE,QAAQ,EAAE,cAAc,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,UAAU,EAAE,CAE1F;AAED,wBAAgB,OAAO,CAAE,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,GAAG,OAAO,CAEpE;AAED,wBAAgB,MAAM,CAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO,CAErE"}
@@ -0,0 +1,4 @@
1
+ import { Attrs, MarkupNode } from '@hcengineering/text-core';
2
+ export declare function nodeContent(node: MarkupNode): MarkupNode[];
3
+ export declare function nodeAttrs(node: MarkupNode): Attrs;
4
+ //# sourceMappingURL=node.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAE5D,wBAAgB,WAAW,CAAE,IAAI,EAAE,UAAU,GAAG,UAAU,EAAE,CAE3D;AAED,wBAAgB,SAAS,CAAE,IAAI,EAAE,UAAU,GAAG,KAAK,CAElD"}
@@ -0,0 +1,50 @@
1
+ import { Attrs, MarkupMark, MarkupMarkType, MarkupNode, MarkupNodeType } from '@hcengineering/text-core';
2
+ import MarkdownIt, { type Token } from 'markdown-it';
3
+ import type { RuleCore } from 'markdown-it/lib/parser_core';
4
+ interface StateElement {
5
+ type: MarkupNodeType;
6
+ content: MarkupNode[];
7
+ attrs: Attrs;
8
+ }
9
+ declare class MarkdownParseState {
10
+ readonly refUrl: string;
11
+ readonly imageUrl: string;
12
+ stack: StateElement[];
13
+ marks: MarkupMark[];
14
+ tokenHandlers: Record<string, (state: MarkdownParseState, tok: Token) => void>;
15
+ constructor(tokenHandlers: Record<string, (state: MarkdownParseState, tok: Token) => void>, refUrl: string, imageUrl: string);
16
+ top(): StateElement | undefined;
17
+ push(elt: MarkupNode): void;
18
+ mergeWithLast(nodes: MarkupNode[], node: MarkupNode): boolean;
19
+ addText(text?: string): void;
20
+ openMark(mark: MarkupMark): void;
21
+ closeMark(mark: MarkupMarkType): void;
22
+ parseTokens(toks: Token[] | null): void;
23
+ addNode(type: MarkupNodeType, attrs: Attrs, content?: MarkupNode[]): MarkupNode;
24
+ openNode(type: MarkupNodeType, attrs: Attrs): void;
25
+ closeNode(): MarkupNode;
26
+ }
27
+ export declare const isInlineToken: (token?: Token) => boolean;
28
+ export declare const isParagraphToken: (token?: Token) => boolean;
29
+ export declare const isListItemToken: (token?: Token) => boolean;
30
+ export interface TaskListEnv {
31
+ tasklists: number;
32
+ }
33
+ export type HtmlParser = (html: string) => MarkupNode;
34
+ export interface MarkdownParserOptions {
35
+ refUrl: string;
36
+ imageUrl: string;
37
+ htmlParser?: HtmlParser;
38
+ }
39
+ export declare class MarkdownParser {
40
+ private readonly options;
41
+ tokenizer: MarkdownIt;
42
+ tokenHandlers: Record<string, (state: MarkdownParseState, tok: Token) => void>;
43
+ htmlParser: HtmlParser;
44
+ constructor(options: MarkdownParserOptions);
45
+ parse(text: string): MarkupNode;
46
+ htmlCommentRule: RuleCore;
47
+ listRule: RuleCore;
48
+ }
49
+ export {};
50
+ //# sourceMappingURL=parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAExG,OAAO,UAAU,EAAE,EAAE,KAAK,KAAK,EAAE,MAAM,aAAa,CAAA;AACpD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAA;AA8D3D,UAAU,YAAY;IACpB,IAAI,EAAE,cAAc,CAAA;IACpB,OAAO,EAAE,UAAU,EAAE,CAAA;IACrB,KAAK,EAAE,KAAK,CAAA;CACb;AAGD,cAAM,kBAAkB;IAOpB,QAAQ,CAAC,MAAM,EAAE,MAAM;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM;IAP3B,KAAK,EAAE,YAAY,EAAE,CAAA;IACrB,KAAK,EAAE,UAAU,EAAE,CAAA;IACnB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,kBAAkB,EAAE,GAAG,EAAE,KAAK,KAAK,IAAI,CAAC,CAAA;gBAG5E,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,kBAAkB,EAAE,GAAG,EAAE,KAAK,KAAK,IAAI,CAAC,EACrE,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM;IAO3B,GAAG,IAAK,YAAY,GAAG,SAAS;IAIhC,IAAI,CAAE,GAAG,EAAE,UAAU,GAAG,IAAI;IAO5B,aAAa,CAAE,KAAK,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO;IAY9D,OAAO,CAAE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI;IAsB7B,QAAQ,CAAE,IAAI,EAAE,UAAU,GAAG,IAAI;IAKjC,SAAS,CAAE,IAAI,EAAE,cAAc,GAAG,IAAI;IAItC,WAAW,CAAE,IAAI,EAAE,KAAK,EAAE,GAAG,IAAI,GAAG,IAAI;IA8BxC,OAAO,CAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,GAAE,UAAU,EAAO,GAAG,UAAU;IAcpF,QAAQ,CAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI;IAKnD,SAAS,IAAK,UAAU;CAQzB;AA8ZD,eAAO,MAAM,aAAa,GAAI,QAAQ,KAAK,KAAG,OAAmC,CAAA;AAEjF,eAAO,MAAM,gBAAgB,GAAI,QAAQ,KAAK,KAAG,OAA2C,CAAA;AAE5F,eAAO,MAAM,eAAe,GAAI,QAAQ,KAAK,KAAG,OAA2C,CAAA;AAE3F,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAA;CAClB;AAYD,MAAM,MAAM,UAAU,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,UAAU,CAAA;AAErD,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,CAAC,EAAE,UAAU,CAAA;CACxB;AAED,qBAAa,cAAc;IAKZ,OAAO,CAAC,QAAQ,CAAC,OAAO;IAJrC,SAAS,EAAE,UAAU,CAAA;IACrB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,kBAAkB,EAAE,GAAG,EAAE,KAAK,KAAK,IAAI,CAAC,CAAA;IAC9E,UAAU,EAAE,UAAU,CAAA;gBAEQ,OAAO,EAAE,qBAAqB;IAW5D,KAAK,CAAE,IAAI,EAAE,MAAM,GAAG,UAAU;IAahC,eAAe,EAAE,QAAQ,CAWxB;IAED,QAAQ,EAAE,QAAQ,CAgDjB;CACF"}
@@ -0,0 +1,102 @@
1
+ import { MarkupMark, MarkupNode } from '@hcengineering/text-core';
2
+ type FirstDelim = (i: number, attrs?: Record<string, any>, parentAttrs?: Record<string, any>) => string;
3
+ interface IState {
4
+ wrapBlock: (delim: string, firstDelim: string | null, node: MarkupNode, f: () => void) => void;
5
+ flushClose: (size: number) => void;
6
+ atBlank: () => void;
7
+ ensureNewLine: () => void;
8
+ write: (content: string) => void;
9
+ closeBlock: (node: any) => void;
10
+ text: (text: string, escape?: boolean) => void;
11
+ render: (node: MarkupNode, parent: MarkupNode, index: number) => void;
12
+ renderContent: (parent: MarkupNode) => void;
13
+ renderInline: (parent: MarkupNode) => void;
14
+ renderList: (node: MarkupNode, delim: string, firstDelim: FirstDelim) => void;
15
+ esc: (str: string, startOfLine?: boolean) => string;
16
+ htmlEsc: (str: string) => string;
17
+ quote: (str: string) => string;
18
+ repeat: (str: string, n: number) => string;
19
+ markString: (mark: MarkupMark, open: boolean, parent: MarkupNode, index: number) => string;
20
+ renderHtml: (node: MarkupNode) => string;
21
+ refUrl: string;
22
+ imageUrl: string;
23
+ inAutolink?: boolean;
24
+ renderAHref?: boolean;
25
+ }
26
+ type NodeProcessor = (state: IState, node: MarkupNode, parent: MarkupNode, index: number) => void;
27
+ interface InlineState {
28
+ active: MarkupMark[];
29
+ trailing: string;
30
+ parent: MarkupNode;
31
+ node?: MarkupNode;
32
+ marks: MarkupMark[];
33
+ }
34
+ export declare const storeNodes: Record<string, NodeProcessor>;
35
+ interface MarkProcessor {
36
+ open: ((_state: IState, mark: MarkupMark, parent: MarkupNode, index: number) => string) | string;
37
+ close: ((_state: IState, mark: MarkupMark, parent: MarkupNode, index: number) => string) | string;
38
+ mixable: boolean;
39
+ expelEnclosingWhitespace: boolean;
40
+ escape: boolean;
41
+ }
42
+ export declare const storeMarks: Record<string, MarkProcessor>;
43
+ export type HtmlWriter = (markup: MarkupNode) => string;
44
+ export interface StateOptions {
45
+ tightLists: boolean;
46
+ refUrl: string;
47
+ imageUrl: string;
48
+ htmlWriter?: HtmlWriter;
49
+ }
50
+ export declare class MarkdownState implements IState {
51
+ nodes: Record<string, NodeProcessor>;
52
+ marks: Record<string, MarkProcessor>;
53
+ delim: string;
54
+ out: string;
55
+ closed: boolean;
56
+ closedNode?: MarkupNode;
57
+ inTightList: boolean;
58
+ options: StateOptions;
59
+ refUrl: string;
60
+ imageUrl: string;
61
+ htmlWriter: HtmlWriter;
62
+ constructor(nodes?: Record<string, NodeProcessor>, marks?: Record<string, MarkProcessor>, options?: StateOptions);
63
+ flushClose(size: number): void;
64
+ private addDelim;
65
+ renderHtml(node: MarkupNode): string;
66
+ wrapBlock(delim: string, firstDelim: string | null, node: MarkupNode, f: () => void): void;
67
+ atBlank(): boolean;
68
+ ensureNewLine(): void;
69
+ write(content: string): void;
70
+ closeBlock(node: MarkupNode): void;
71
+ text(text: string, escape?: boolean): void;
72
+ render(node: MarkupNode, parent: MarkupNode, index: number): void;
73
+ renderContent(parent: MarkupNode): void;
74
+ reorderMixableMark(state: InlineState, mark: MarkupMark, i: number, len: number): void;
75
+ reorderMixableMarks(state: InlineState, len: number): void;
76
+ private checkSwitchMarks;
77
+ private switchMarks;
78
+ renderNodeInline(state: InlineState, index: number): void;
79
+ private checkOpenMarks;
80
+ private isNoEscapeRequire;
81
+ private renderMarkText;
82
+ private updateActiveMarks;
83
+ private checkCloseMarks;
84
+ private adjustLeading;
85
+ private isMarksHasExpelEnclosingWhitespace;
86
+ private adjustLeadingTextNode;
87
+ private updateHardBreakMarks;
88
+ private filterHardBreakMarks;
89
+ private isHardbreakText;
90
+ private isText;
91
+ renderInline(parent: MarkupNode): void;
92
+ renderList(node: MarkupNode, delim: string, firstDelim: FirstDelim): void;
93
+ renderListItem(node: MarkupNode, child: MarkupNode, i: number, isTight: boolean, delim: string, firstDelim: FirstDelim): void;
94
+ private flushListClose;
95
+ esc(str: string, startOfLine?: boolean): string;
96
+ htmlEsc(str: string): string;
97
+ quote(str: string): string;
98
+ repeat(str: string, n: number): string;
99
+ markString(mark: MarkupMark, open: boolean, parent: MarkupNode, index: number): string;
100
+ }
101
+ export {};
102
+ //# sourceMappingURL=serializer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serializer.d.ts","sourceRoot":"","sources":["../src/serializer.ts"],"names":[],"mappings":"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"}