markdown-codec 1.3.31 → 1.4.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/dist/ast/ast.cjs +2 -1
- package/dist/ast/ast.d.cts +2 -2
- package/dist/ast/ast.d.ts +2 -2
- package/dist/ast/ast.js +2 -1
- package/dist/{ast-BXYwy08e.d.cts → ast-DbjiuYr8.d.cts} +13 -3
- package/dist/{ast-BXYwy08e.d.ts → ast-DbjiuYr8.d.ts} +13 -3
- package/dist/block/block.cjs +44 -4
- package/dist/block/block.d.cts +3 -3
- package/dist/block/block.d.ts +3 -3
- package/dist/block/block.js +44 -4
- package/dist/block/definitions.d.cts +1 -1
- package/dist/block/definitions.d.ts +1 -1
- package/dist/block/node.cjs +1 -1
- package/dist/block/node.d.cts +2 -2
- package/dist/block/node.d.ts +2 -2
- package/dist/block/node.js +1 -1
- package/dist/block/table.d.cts +1 -1
- package/dist/block/table.d.ts +1 -1
- package/dist/diagnostics/diagnostics.cjs +3 -0
- package/dist/diagnostics/diagnostics.d.cts +1 -1
- package/dist/diagnostics/diagnostics.d.ts +1 -1
- package/dist/diagnostics/diagnostics.js +3 -0
- package/dist/{diagnostics-DmuWc7d8.d.cts → diagnostics-B72W0P_E.d.cts} +3 -0
- package/dist/{diagnostics-DmuWc7d8.d.ts → diagnostics-B72W0P_E.d.ts} +3 -0
- package/dist/emit/emit.cjs +3 -1
- package/dist/emit/emit.js +4 -2
- package/dist/emit/inline.cjs +2 -3
- package/dist/emit/inline.d.cts +1 -1
- package/dist/emit/inline.d.ts +1 -1
- package/dist/emit/inline.js +2 -3
- package/dist/emit/table.d.cts +1 -1
- package/dist/emit/table.d.ts +1 -1
- package/dist/html/render.cjs +6 -0
- package/dist/html/render.d.cts +1 -1
- package/dist/html/render.d.ts +1 -1
- package/dist/html/render.js +6 -0
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/inline/inline.cjs +16 -0
- package/dist/inline/inline.d.cts +1 -1
- package/dist/inline/inline.d.ts +1 -1
- package/dist/inline/inline.js +16 -0
- package/dist/inline/math.cjs +10 -0
- package/dist/inline/math.d.cts +4 -0
- package/dist/inline/math.d.ts +4 -0
- package/dist/inline/math.js +9 -0
- package/dist/inline/node.d.cts +1 -1
- package/dist/inline/node.d.ts +1 -1
- package/dist/{inline-B50cM6cn.d.ts → inline-TuBQ2TUr.d.ts} +1 -1
- package/dist/{inline-C9YEGDV5.d.cts → inline-uVHJ5xzT.d.cts} +1 -1
- package/dist/lower/front-matter.d.cts +1 -1
- package/dist/lower/front-matter.d.ts +1 -1
- package/dist/lower/inline.cjs +7 -0
- package/dist/lower/inline.d.cts +2 -2
- package/dist/lower/inline.d.ts +2 -2
- package/dist/lower/inline.js +8 -1
- package/dist/lower/lower.cjs +14 -0
- package/dist/lower/lower.js +15 -1
- package/dist/lower/table.d.cts +1 -1
- package/dist/lower/table.d.ts +1 -1
- package/dist/options/options.d.cts +1 -1
- package/dist/options/options.d.ts +1 -1
- package/dist/read.d.cts +1 -1
- package/dist/read.d.ts +1 -1
- package/dist/shared/style-constants.cjs +4 -0
- package/dist/shared/style-constants.d.cts +3 -1
- package/dist/shared/style-constants.d.ts +3 -1
- package/dist/shared/style-constants.js +3 -1
- package/package.json +1 -1
package/dist/ast/ast.cjs
CHANGED
package/dist/ast/ast.d.cts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { A as
|
|
2
|
-
export { MarkdownAutolinkNode, MarkdownBlockNode, MarkdownBlockquoteNode, MarkdownBulletMarker, MarkdownCodeBlockNode, MarkdownCodeSpanNode, MarkdownDocumentNode, MarkdownEmphasisMarker, MarkdownEmphasisNode, MarkdownEntityNode, MarkdownHardBreakNode, MarkdownHeadingNode, MarkdownHeadingStyle, MarkdownHtmlBlockNode, MarkdownImageNode, MarkdownInlineNode, MarkdownLinkNode, MarkdownListItemNode, MarkdownListMarkerType, MarkdownListNode, MarkdownNode, MarkdownOrderedListDelimiter, MarkdownParagraphNode, MarkdownPosition, MarkdownRawHtmlNode, MarkdownSoftBreakNode, MarkdownStrikethroughNode, MarkdownStrongNode, MarkdownTableAlignment, MarkdownTableCellNode, MarkdownTableNode, MarkdownTableRowNode, MarkdownTextNode, MarkdownThematicBreakNode, isMarkdownBlockNode, isMarkdownInlineNode };
|
|
1
|
+
import { A as MarkdownStrongNode, C as MarkdownNode, D as MarkdownRawHtmlNode, E as MarkdownPosition, F as MarkdownTextNode, I as MarkdownThematicBreakNode, L as isMarkdownBlockNode, M as MarkdownTableCellNode, N as MarkdownTableNode, O as MarkdownSoftBreakNode, P as MarkdownTableRowNode, R as isMarkdownInlineNode, S as MarkdownMathInlineNode, T as MarkdownParagraphNode, _ as MarkdownLinkNode, a as MarkdownCodeBlockNode, b as MarkdownListNode, c as MarkdownEmphasisMarker, d as MarkdownHardBreakNode, f as MarkdownHeadingNode, g as MarkdownInlineNode, h as MarkdownImageNode, i as MarkdownBulletMarker, j as MarkdownTableAlignment, k as MarkdownStrikethroughNode, l as MarkdownEmphasisNode, m as MarkdownHtmlBlockNode, n as MarkdownBlockNode, o as MarkdownCodeSpanNode, p as MarkdownHeadingStyle, r as MarkdownBlockquoteNode, s as MarkdownDocumentNode, t as MarkdownAutolinkNode, u as MarkdownEntityNode, v as MarkdownListItemNode, w as MarkdownOrderedListDelimiter, x as MarkdownMathBlockNode, y as MarkdownListMarkerType } from "../ast-DbjiuYr8.cjs";
|
|
2
|
+
export { MarkdownAutolinkNode, MarkdownBlockNode, MarkdownBlockquoteNode, MarkdownBulletMarker, MarkdownCodeBlockNode, MarkdownCodeSpanNode, MarkdownDocumentNode, MarkdownEmphasisMarker, MarkdownEmphasisNode, MarkdownEntityNode, MarkdownHardBreakNode, MarkdownHeadingNode, MarkdownHeadingStyle, MarkdownHtmlBlockNode, MarkdownImageNode, MarkdownInlineNode, MarkdownLinkNode, MarkdownListItemNode, MarkdownListMarkerType, MarkdownListNode, MarkdownMathBlockNode, MarkdownMathInlineNode, MarkdownNode, MarkdownOrderedListDelimiter, MarkdownParagraphNode, MarkdownPosition, MarkdownRawHtmlNode, MarkdownSoftBreakNode, MarkdownStrikethroughNode, MarkdownStrongNode, MarkdownTableAlignment, MarkdownTableCellNode, MarkdownTableNode, MarkdownTableRowNode, MarkdownTextNode, MarkdownThematicBreakNode, isMarkdownBlockNode, isMarkdownInlineNode };
|
package/dist/ast/ast.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { A as
|
|
2
|
-
export { MarkdownAutolinkNode, MarkdownBlockNode, MarkdownBlockquoteNode, MarkdownBulletMarker, MarkdownCodeBlockNode, MarkdownCodeSpanNode, MarkdownDocumentNode, MarkdownEmphasisMarker, MarkdownEmphasisNode, MarkdownEntityNode, MarkdownHardBreakNode, MarkdownHeadingNode, MarkdownHeadingStyle, MarkdownHtmlBlockNode, MarkdownImageNode, MarkdownInlineNode, MarkdownLinkNode, MarkdownListItemNode, MarkdownListMarkerType, MarkdownListNode, MarkdownNode, MarkdownOrderedListDelimiter, MarkdownParagraphNode, MarkdownPosition, MarkdownRawHtmlNode, MarkdownSoftBreakNode, MarkdownStrikethroughNode, MarkdownStrongNode, MarkdownTableAlignment, MarkdownTableCellNode, MarkdownTableNode, MarkdownTableRowNode, MarkdownTextNode, MarkdownThematicBreakNode, isMarkdownBlockNode, isMarkdownInlineNode };
|
|
1
|
+
import { A as MarkdownStrongNode, C as MarkdownNode, D as MarkdownRawHtmlNode, E as MarkdownPosition, F as MarkdownTextNode, I as MarkdownThematicBreakNode, L as isMarkdownBlockNode, M as MarkdownTableCellNode, N as MarkdownTableNode, O as MarkdownSoftBreakNode, P as MarkdownTableRowNode, R as isMarkdownInlineNode, S as MarkdownMathInlineNode, T as MarkdownParagraphNode, _ as MarkdownLinkNode, a as MarkdownCodeBlockNode, b as MarkdownListNode, c as MarkdownEmphasisMarker, d as MarkdownHardBreakNode, f as MarkdownHeadingNode, g as MarkdownInlineNode, h as MarkdownImageNode, i as MarkdownBulletMarker, j as MarkdownTableAlignment, k as MarkdownStrikethroughNode, l as MarkdownEmphasisNode, m as MarkdownHtmlBlockNode, n as MarkdownBlockNode, o as MarkdownCodeSpanNode, p as MarkdownHeadingStyle, r as MarkdownBlockquoteNode, s as MarkdownDocumentNode, t as MarkdownAutolinkNode, u as MarkdownEntityNode, v as MarkdownListItemNode, w as MarkdownOrderedListDelimiter, x as MarkdownMathBlockNode, y as MarkdownListMarkerType } from "../ast-DbjiuYr8.js";
|
|
2
|
+
export { MarkdownAutolinkNode, MarkdownBlockNode, MarkdownBlockquoteNode, MarkdownBulletMarker, MarkdownCodeBlockNode, MarkdownCodeSpanNode, MarkdownDocumentNode, MarkdownEmphasisMarker, MarkdownEmphasisNode, MarkdownEntityNode, MarkdownHardBreakNode, MarkdownHeadingNode, MarkdownHeadingStyle, MarkdownHtmlBlockNode, MarkdownImageNode, MarkdownInlineNode, MarkdownLinkNode, MarkdownListItemNode, MarkdownListMarkerType, MarkdownListNode, MarkdownMathBlockNode, MarkdownMathInlineNode, MarkdownNode, MarkdownOrderedListDelimiter, MarkdownParagraphNode, MarkdownPosition, MarkdownRawHtmlNode, MarkdownSoftBreakNode, MarkdownStrikethroughNode, MarkdownStrongNode, MarkdownTableAlignment, MarkdownTableCellNode, MarkdownTableNode, MarkdownTableRowNode, MarkdownTextNode, MarkdownThematicBreakNode, isMarkdownBlockNode, isMarkdownInlineNode };
|
package/dist/ast/ast.js
CHANGED
|
@@ -6,7 +6,7 @@ interface MarkdownPosition {
|
|
|
6
6
|
readonly endColumn: number;
|
|
7
7
|
}
|
|
8
8
|
type MarkdownNode = MarkdownBlockNode | MarkdownInlineNode;
|
|
9
|
-
type MarkdownBlockNode = MarkdownDocumentNode | MarkdownParagraphNode | MarkdownHeadingNode | MarkdownBlockquoteNode | MarkdownListNode | MarkdownListItemNode | MarkdownCodeBlockNode | MarkdownThematicBreakNode | MarkdownHtmlBlockNode | MarkdownTableNode | MarkdownTableRowNode | MarkdownTableCellNode;
|
|
9
|
+
type MarkdownBlockNode = MarkdownDocumentNode | MarkdownParagraphNode | MarkdownHeadingNode | MarkdownBlockquoteNode | MarkdownListNode | MarkdownListItemNode | MarkdownCodeBlockNode | MarkdownThematicBreakNode | MarkdownHtmlBlockNode | MarkdownTableNode | MarkdownTableRowNode | MarkdownTableCellNode | MarkdownMathBlockNode;
|
|
10
10
|
interface MarkdownDocumentNode {
|
|
11
11
|
readonly type: 'document';
|
|
12
12
|
readonly children: MarkdownBlockNode[];
|
|
@@ -84,7 +84,12 @@ interface MarkdownTableCellNode {
|
|
|
84
84
|
readonly children: MarkdownInlineNode[];
|
|
85
85
|
readonly position?: MarkdownPosition;
|
|
86
86
|
}
|
|
87
|
-
|
|
87
|
+
interface MarkdownMathBlockNode {
|
|
88
|
+
readonly type: 'mathBlock';
|
|
89
|
+
readonly literal: string;
|
|
90
|
+
readonly position?: MarkdownPosition;
|
|
91
|
+
}
|
|
92
|
+
type MarkdownInlineNode = MarkdownTextNode | MarkdownEmphasisNode | MarkdownStrongNode | MarkdownStrikethroughNode | MarkdownCodeSpanNode | MarkdownLinkNode | MarkdownImageNode | MarkdownAutolinkNode | MarkdownHardBreakNode | MarkdownSoftBreakNode | MarkdownRawHtmlNode | MarkdownEntityNode | MarkdownMathInlineNode;
|
|
88
93
|
type MarkdownEmphasisMarker = '_' | '*';
|
|
89
94
|
interface MarkdownTextNode {
|
|
90
95
|
readonly type: 'text';
|
|
@@ -154,7 +159,12 @@ interface MarkdownEntityNode {
|
|
|
154
159
|
readonly value: string;
|
|
155
160
|
readonly position?: MarkdownPosition;
|
|
156
161
|
}
|
|
162
|
+
interface MarkdownMathInlineNode {
|
|
163
|
+
readonly type: 'mathInline';
|
|
164
|
+
readonly literal: string;
|
|
165
|
+
readonly position?: MarkdownPosition;
|
|
166
|
+
}
|
|
157
167
|
declare function isMarkdownBlockNode(node: MarkdownNode): node is MarkdownBlockNode;
|
|
158
168
|
declare function isMarkdownInlineNode(node: MarkdownNode): node is MarkdownInlineNode;
|
|
159
169
|
//#endregion
|
|
160
|
-
export {
|
|
170
|
+
export { MarkdownStrongNode as A, MarkdownNode as C, MarkdownRawHtmlNode as D, MarkdownPosition as E, MarkdownTextNode as F, MarkdownThematicBreakNode as I, isMarkdownBlockNode as L, MarkdownTableCellNode as M, MarkdownTableNode as N, MarkdownSoftBreakNode as O, MarkdownTableRowNode as P, isMarkdownInlineNode as R, MarkdownMathInlineNode as S, MarkdownParagraphNode as T, MarkdownLinkNode as _, MarkdownCodeBlockNode as a, MarkdownListNode as b, MarkdownEmphasisMarker as c, MarkdownHardBreakNode as d, MarkdownHeadingNode as f, MarkdownInlineNode as g, MarkdownImageNode as h, MarkdownBulletMarker as i, MarkdownTableAlignment as j, MarkdownStrikethroughNode as k, MarkdownEmphasisNode as l, MarkdownHtmlBlockNode as m, MarkdownBlockNode as n, MarkdownCodeSpanNode as o, MarkdownHeadingStyle as p, MarkdownBlockquoteNode as r, MarkdownDocumentNode as s, MarkdownAutolinkNode as t, MarkdownEntityNode as u, MarkdownListItemNode as v, MarkdownOrderedListDelimiter as w, MarkdownMathBlockNode as x, MarkdownListMarkerType as y };
|
|
@@ -6,7 +6,7 @@ interface MarkdownPosition {
|
|
|
6
6
|
readonly endColumn: number;
|
|
7
7
|
}
|
|
8
8
|
type MarkdownNode = MarkdownBlockNode | MarkdownInlineNode;
|
|
9
|
-
type MarkdownBlockNode = MarkdownDocumentNode | MarkdownParagraphNode | MarkdownHeadingNode | MarkdownBlockquoteNode | MarkdownListNode | MarkdownListItemNode | MarkdownCodeBlockNode | MarkdownThematicBreakNode | MarkdownHtmlBlockNode | MarkdownTableNode | MarkdownTableRowNode | MarkdownTableCellNode;
|
|
9
|
+
type MarkdownBlockNode = MarkdownDocumentNode | MarkdownParagraphNode | MarkdownHeadingNode | MarkdownBlockquoteNode | MarkdownListNode | MarkdownListItemNode | MarkdownCodeBlockNode | MarkdownThematicBreakNode | MarkdownHtmlBlockNode | MarkdownTableNode | MarkdownTableRowNode | MarkdownTableCellNode | MarkdownMathBlockNode;
|
|
10
10
|
interface MarkdownDocumentNode {
|
|
11
11
|
readonly type: 'document';
|
|
12
12
|
readonly children: MarkdownBlockNode[];
|
|
@@ -84,7 +84,12 @@ interface MarkdownTableCellNode {
|
|
|
84
84
|
readonly children: MarkdownInlineNode[];
|
|
85
85
|
readonly position?: MarkdownPosition;
|
|
86
86
|
}
|
|
87
|
-
|
|
87
|
+
interface MarkdownMathBlockNode {
|
|
88
|
+
readonly type: 'mathBlock';
|
|
89
|
+
readonly literal: string;
|
|
90
|
+
readonly position?: MarkdownPosition;
|
|
91
|
+
}
|
|
92
|
+
type MarkdownInlineNode = MarkdownTextNode | MarkdownEmphasisNode | MarkdownStrongNode | MarkdownStrikethroughNode | MarkdownCodeSpanNode | MarkdownLinkNode | MarkdownImageNode | MarkdownAutolinkNode | MarkdownHardBreakNode | MarkdownSoftBreakNode | MarkdownRawHtmlNode | MarkdownEntityNode | MarkdownMathInlineNode;
|
|
88
93
|
type MarkdownEmphasisMarker = '_' | '*';
|
|
89
94
|
interface MarkdownTextNode {
|
|
90
95
|
readonly type: 'text';
|
|
@@ -154,7 +159,12 @@ interface MarkdownEntityNode {
|
|
|
154
159
|
readonly value: string;
|
|
155
160
|
readonly position?: MarkdownPosition;
|
|
156
161
|
}
|
|
162
|
+
interface MarkdownMathInlineNode {
|
|
163
|
+
readonly type: 'mathInline';
|
|
164
|
+
readonly literal: string;
|
|
165
|
+
readonly position?: MarkdownPosition;
|
|
166
|
+
}
|
|
157
167
|
declare function isMarkdownBlockNode(node: MarkdownNode): node is MarkdownBlockNode;
|
|
158
168
|
declare function isMarkdownInlineNode(node: MarkdownNode): node is MarkdownInlineNode;
|
|
159
169
|
//#endregion
|
|
160
|
-
export {
|
|
170
|
+
export { MarkdownStrongNode as A, MarkdownNode as C, MarkdownRawHtmlNode as D, MarkdownPosition as E, MarkdownTextNode as F, MarkdownThematicBreakNode as I, isMarkdownBlockNode as L, MarkdownTableCellNode as M, MarkdownTableNode as N, MarkdownSoftBreakNode as O, MarkdownTableRowNode as P, isMarkdownInlineNode as R, MarkdownMathInlineNode as S, MarkdownParagraphNode as T, MarkdownLinkNode as _, MarkdownCodeBlockNode as a, MarkdownListNode as b, MarkdownEmphasisMarker as c, MarkdownHardBreakNode as d, MarkdownHeadingNode as f, MarkdownInlineNode as g, MarkdownImageNode as h, MarkdownBulletMarker as i, MarkdownTableAlignment as j, MarkdownStrikethroughNode as k, MarkdownEmphasisNode as l, MarkdownHtmlBlockNode as m, MarkdownBlockNode as n, MarkdownCodeSpanNode as o, MarkdownHeadingStyle as p, MarkdownBlockquoteNode as r, MarkdownDocumentNode as s, MarkdownAutolinkNode as t, MarkdownEntityNode as u, MarkdownListItemNode as v, MarkdownOrderedListDelimiter as w, MarkdownMathBlockNode as x, MarkdownListMarkerType as y };
|
package/dist/block/block.cjs
CHANGED
|
@@ -14,12 +14,14 @@ const TASK_LIST_MARKER_PATTERN = /^\[([ xX])\][ \t]/;
|
|
|
14
14
|
const NUL_REPLACEMENT = "�";
|
|
15
15
|
const NUL_PATTERN = /\0/g;
|
|
16
16
|
const LINE_ENDING_PATTERN = /\r\n|\n|\r/;
|
|
17
|
-
const MAYBE_SPECIAL_PATTERN = /^[
|
|
17
|
+
const MAYBE_SPECIAL_PATTERN = /^[#$`~*+_=<>0-9|:-]/;
|
|
18
18
|
const ATX_MARKER_PATTERN = /^#{1,6}(?:[ \t]+|$)/;
|
|
19
19
|
const ATX_ONLY_CLOSING_SEQUENCE_PATTERN = /^[ \t]*#+[ \t]*$/;
|
|
20
20
|
const ATX_TRAILING_CLOSING_SEQUENCE_PATTERN = /[ \t]+#+[ \t]*$/;
|
|
21
21
|
const CODE_FENCE_PATTERN = /^`{3,}(?!.*`)|^~{3,}/;
|
|
22
22
|
const CLOSING_CODE_FENCE_PATTERN = /^(?:`{3,}|~{3,})(?=[ \t]*$)/;
|
|
23
|
+
const MATH_BLOCK_MARKER_PATTERN = /^\$\$[ \t]*$/;
|
|
24
|
+
const MATH_BLOCK_MARKER_LENGTH = 2;
|
|
23
25
|
const SETEXT_UNDERLINE_PATTERN = /^(?:=+|-+)[ \t]*$/;
|
|
24
26
|
const THEMATIC_BREAK_PATTERN = /^(?:\*[ \t]*){3,}$|^(?:_[ \t]*){3,}$|^(?:-[ \t]*){3,}$/;
|
|
25
27
|
const BLANK_CONTENT_PATTERN = /^[ \t\n]*$/;
|
|
@@ -83,10 +85,19 @@ var BlockParser = class {
|
|
|
83
85
|
});
|
|
84
86
|
return;
|
|
85
87
|
}
|
|
86
|
-
if (node.kind === "htmlBlock" && !HTML_BLOCK_BLANK_LINE_END_TYPES.includes(node.htmlBlockType))
|
|
87
|
-
|
|
88
|
+
if (node.kind === "htmlBlock" && !HTML_BLOCK_BLANK_LINE_END_TYPES.includes(node.htmlBlockType)) {
|
|
89
|
+
this.sink({
|
|
90
|
+
code: require_diagnostics_diagnostics.MarkdownDiagnosticCodes.UNTERMINATED_HTML_BLOCK,
|
|
91
|
+
severity: "warning",
|
|
92
|
+
message: `HTML block (type ${String(node.htmlBlockType)}) starting at line ${String(node.startLine)} never met its own end condition before the end of the document`,
|
|
93
|
+
line: node.startLine
|
|
94
|
+
});
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
97
|
+
if (node.kind === "mathBlock") this.sink({
|
|
98
|
+
code: require_diagnostics_diagnostics.MarkdownDiagnosticCodes.UNCLOSED_MATH_BLOCK,
|
|
88
99
|
severity: "warning",
|
|
89
|
-
message: `
|
|
100
|
+
message: `math block starting at line ${String(node.startLine)} was never closed by a matching closing $$ before the end of the document`,
|
|
90
101
|
line: node.startLine
|
|
91
102
|
});
|
|
92
103
|
}
|
|
@@ -119,6 +130,7 @@ var BlockParser = class {
|
|
|
119
130
|
case "blockquote": return this.continueBlockquote();
|
|
120
131
|
case "listItem": return this.continueListItem(node);
|
|
121
132
|
case "codeBlock": return this.continueCodeBlock(node);
|
|
133
|
+
case "mathBlock": return this.continueMathBlock(node);
|
|
122
134
|
case "htmlBlock": return this.line.blank && HTML_BLOCK_BLANK_LINE_END_TYPES.includes(node.htmlBlockType) ? "not-matched" : "matched";
|
|
123
135
|
case "paragraph":
|
|
124
136
|
case "table": return this.line.blank ? "not-matched" : "matched";
|
|
@@ -172,6 +184,13 @@ var BlockParser = class {
|
|
|
172
184
|
for (let remaining = node.fenceOffset; remaining > 0 && this.line.peek() === " "; remaining -= 1) this.line.advance(1);
|
|
173
185
|
return "matched";
|
|
174
186
|
}
|
|
187
|
+
continueMathBlock(node) {
|
|
188
|
+
if (!this.line.indented && MATH_BLOCK_MARKER_PATTERN.test(this.line.restFromNextNonspace())) {
|
|
189
|
+
this.finalize(node);
|
|
190
|
+
return "finished";
|
|
191
|
+
}
|
|
192
|
+
return "matched";
|
|
193
|
+
}
|
|
175
194
|
openNewBlocks(matchedContainer) {
|
|
176
195
|
let container = matchedContainer;
|
|
177
196
|
let matchedLeaf = container.kind !== "paragraph" && container.kind !== "table" && require_block_node.acceptsLines(container.kind);
|
|
@@ -196,6 +215,7 @@ var BlockParser = class {
|
|
|
196
215
|
() => this.tryBlockquoteStart(),
|
|
197
216
|
() => this.tryAtxHeadingStart(),
|
|
198
217
|
() => this.tryCodeFenceStart(),
|
|
218
|
+
() => this.tryMathBlockStart(),
|
|
199
219
|
() => this.tryHtmlBlockStart(container),
|
|
200
220
|
() => this.tryPromoteParagraph(container),
|
|
201
221
|
() => this.tryThematicBreakStart(),
|
|
@@ -244,6 +264,15 @@ var BlockParser = class {
|
|
|
244
264
|
this.line.advance(fence.length);
|
|
245
265
|
return "leaf";
|
|
246
266
|
}
|
|
267
|
+
tryMathBlockStart() {
|
|
268
|
+
if (this.line.indented) return "none";
|
|
269
|
+
if (!MATH_BLOCK_MARKER_PATTERN.test(this.line.restFromNextNonspace())) return "none";
|
|
270
|
+
this.closeUnmatchedBlocks();
|
|
271
|
+
this.addChild("mathBlock");
|
|
272
|
+
this.line.advanceToNextNonspace();
|
|
273
|
+
this.line.advance(MATH_BLOCK_MARKER_LENGTH);
|
|
274
|
+
return "leaf";
|
|
275
|
+
}
|
|
247
276
|
tryHtmlBlockStart(container) {
|
|
248
277
|
if (this.line.indented || this.line.peekNextNonspace() !== "<") return "none";
|
|
249
278
|
const interruptsParagraph = container.kind === "paragraph" || !this.allClosed && !this.line.blank && this.tip.kind === "paragraph";
|
|
@@ -374,6 +403,9 @@ var BlockParser = class {
|
|
|
374
403
|
case "codeBlock":
|
|
375
404
|
this.finalizeCodeBlock(node);
|
|
376
405
|
return;
|
|
406
|
+
case "mathBlock":
|
|
407
|
+
this.finalizeMathBlock(node);
|
|
408
|
+
return;
|
|
377
409
|
case "htmlBlock":
|
|
378
410
|
node.literal = node.content.replace(TRAILING_HTML_BLANK_LINES_PATTERN, "");
|
|
379
411
|
return;
|
|
@@ -392,6 +424,10 @@ var BlockParser = class {
|
|
|
392
424
|
node.infoString = require_inline_entity.unescapeString(node.content.slice(0, breakIndex).trim());
|
|
393
425
|
node.literal = node.content.slice(breakIndex + 1);
|
|
394
426
|
}
|
|
427
|
+
finalizeMathBlock(node) {
|
|
428
|
+
const breakIndex = node.content.indexOf("\n");
|
|
429
|
+
node.literal = breakIndex === -1 ? "" : node.content.slice(breakIndex + 1);
|
|
430
|
+
}
|
|
395
431
|
};
|
|
396
432
|
function toInlineChildren(content, references, options) {
|
|
397
433
|
return require_inline_inline.parseInlines(content.trim(), references, options);
|
|
@@ -501,6 +537,10 @@ function toAstBlock(node, references, options) {
|
|
|
501
537
|
literal: node.literal
|
|
502
538
|
};
|
|
503
539
|
case "thematicBreak": return { type: "thematicBreak" };
|
|
540
|
+
case "mathBlock": return {
|
|
541
|
+
type: "mathBlock",
|
|
542
|
+
literal: node.literal
|
|
543
|
+
};
|
|
504
544
|
case "table": return toTableNode(node, references, options);
|
|
505
545
|
case "document":
|
|
506
546
|
case "listItem": return;
|
package/dist/block/block.d.cts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { s as MarkdownDocumentNode } from "../ast-
|
|
2
|
-
import { i as MarkdownDiagnosticSink } from "../diagnostics-
|
|
1
|
+
import { s as MarkdownDocumentNode } from "../ast-DbjiuYr8.cjs";
|
|
2
|
+
import { i as MarkdownDiagnosticSink } from "../diagnostics-B72W0P_E.cjs";
|
|
3
3
|
import { n as LinkReferenceMap } from "../link-Dv4kxVjk.cjs";
|
|
4
|
-
import { t as InlineParseOptions } from "../inline-
|
|
4
|
+
import { t as InlineParseOptions } from "../inline-uVHJ5xzT.cjs";
|
|
5
5
|
//#region src/block/block.d.ts
|
|
6
6
|
interface MarkdownParseOptions extends InlineParseOptions {
|
|
7
7
|
readonly gfmTables?: boolean;
|
package/dist/block/block.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { s as MarkdownDocumentNode } from "../ast-
|
|
2
|
-
import { i as MarkdownDiagnosticSink } from "../diagnostics-
|
|
1
|
+
import { s as MarkdownDocumentNode } from "../ast-DbjiuYr8.js";
|
|
2
|
+
import { i as MarkdownDiagnosticSink } from "../diagnostics-B72W0P_E.js";
|
|
3
3
|
import { n as LinkReferenceMap } from "../link-Dv4kxVjk.js";
|
|
4
|
-
import { t as InlineParseOptions } from "../inline-
|
|
4
|
+
import { t as InlineParseOptions } from "../inline-TuBQ2TUr.js";
|
|
5
5
|
//#region src/block/block.d.ts
|
|
6
6
|
interface MarkdownParseOptions extends InlineParseOptions {
|
|
7
7
|
readonly gfmTables?: boolean;
|
package/dist/block/block.js
CHANGED
|
@@ -13,12 +13,14 @@ const TASK_LIST_MARKER_PATTERN = /^\[([ xX])\][ \t]/;
|
|
|
13
13
|
const NUL_REPLACEMENT = "�";
|
|
14
14
|
const NUL_PATTERN = /\0/g;
|
|
15
15
|
const LINE_ENDING_PATTERN = /\r\n|\n|\r/;
|
|
16
|
-
const MAYBE_SPECIAL_PATTERN = /^[
|
|
16
|
+
const MAYBE_SPECIAL_PATTERN = /^[#$`~*+_=<>0-9|:-]/;
|
|
17
17
|
const ATX_MARKER_PATTERN = /^#{1,6}(?:[ \t]+|$)/;
|
|
18
18
|
const ATX_ONLY_CLOSING_SEQUENCE_PATTERN = /^[ \t]*#+[ \t]*$/;
|
|
19
19
|
const ATX_TRAILING_CLOSING_SEQUENCE_PATTERN = /[ \t]+#+[ \t]*$/;
|
|
20
20
|
const CODE_FENCE_PATTERN = /^`{3,}(?!.*`)|^~{3,}/;
|
|
21
21
|
const CLOSING_CODE_FENCE_PATTERN = /^(?:`{3,}|~{3,})(?=[ \t]*$)/;
|
|
22
|
+
const MATH_BLOCK_MARKER_PATTERN = /^\$\$[ \t]*$/;
|
|
23
|
+
const MATH_BLOCK_MARKER_LENGTH = 2;
|
|
22
24
|
const SETEXT_UNDERLINE_PATTERN = /^(?:=+|-+)[ \t]*$/;
|
|
23
25
|
const THEMATIC_BREAK_PATTERN = /^(?:\*[ \t]*){3,}$|^(?:_[ \t]*){3,}$|^(?:-[ \t]*){3,}$/;
|
|
24
26
|
const BLANK_CONTENT_PATTERN = /^[ \t\n]*$/;
|
|
@@ -82,10 +84,19 @@ var BlockParser = class {
|
|
|
82
84
|
});
|
|
83
85
|
return;
|
|
84
86
|
}
|
|
85
|
-
if (node.kind === "htmlBlock" && !HTML_BLOCK_BLANK_LINE_END_TYPES.includes(node.htmlBlockType))
|
|
86
|
-
|
|
87
|
+
if (node.kind === "htmlBlock" && !HTML_BLOCK_BLANK_LINE_END_TYPES.includes(node.htmlBlockType)) {
|
|
88
|
+
this.sink({
|
|
89
|
+
code: MarkdownDiagnosticCodes.UNTERMINATED_HTML_BLOCK,
|
|
90
|
+
severity: "warning",
|
|
91
|
+
message: `HTML block (type ${String(node.htmlBlockType)}) starting at line ${String(node.startLine)} never met its own end condition before the end of the document`,
|
|
92
|
+
line: node.startLine
|
|
93
|
+
});
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
if (node.kind === "mathBlock") this.sink({
|
|
97
|
+
code: MarkdownDiagnosticCodes.UNCLOSED_MATH_BLOCK,
|
|
87
98
|
severity: "warning",
|
|
88
|
-
message: `
|
|
99
|
+
message: `math block starting at line ${String(node.startLine)} was never closed by a matching closing $$ before the end of the document`,
|
|
89
100
|
line: node.startLine
|
|
90
101
|
});
|
|
91
102
|
}
|
|
@@ -118,6 +129,7 @@ var BlockParser = class {
|
|
|
118
129
|
case "blockquote": return this.continueBlockquote();
|
|
119
130
|
case "listItem": return this.continueListItem(node);
|
|
120
131
|
case "codeBlock": return this.continueCodeBlock(node);
|
|
132
|
+
case "mathBlock": return this.continueMathBlock(node);
|
|
121
133
|
case "htmlBlock": return this.line.blank && HTML_BLOCK_BLANK_LINE_END_TYPES.includes(node.htmlBlockType) ? "not-matched" : "matched";
|
|
122
134
|
case "paragraph":
|
|
123
135
|
case "table": return this.line.blank ? "not-matched" : "matched";
|
|
@@ -171,6 +183,13 @@ var BlockParser = class {
|
|
|
171
183
|
for (let remaining = node.fenceOffset; remaining > 0 && this.line.peek() === " "; remaining -= 1) this.line.advance(1);
|
|
172
184
|
return "matched";
|
|
173
185
|
}
|
|
186
|
+
continueMathBlock(node) {
|
|
187
|
+
if (!this.line.indented && MATH_BLOCK_MARKER_PATTERN.test(this.line.restFromNextNonspace())) {
|
|
188
|
+
this.finalize(node);
|
|
189
|
+
return "finished";
|
|
190
|
+
}
|
|
191
|
+
return "matched";
|
|
192
|
+
}
|
|
174
193
|
openNewBlocks(matchedContainer) {
|
|
175
194
|
let container = matchedContainer;
|
|
176
195
|
let matchedLeaf = container.kind !== "paragraph" && container.kind !== "table" && acceptsLines(container.kind);
|
|
@@ -195,6 +214,7 @@ var BlockParser = class {
|
|
|
195
214
|
() => this.tryBlockquoteStart(),
|
|
196
215
|
() => this.tryAtxHeadingStart(),
|
|
197
216
|
() => this.tryCodeFenceStart(),
|
|
217
|
+
() => this.tryMathBlockStart(),
|
|
198
218
|
() => this.tryHtmlBlockStart(container),
|
|
199
219
|
() => this.tryPromoteParagraph(container),
|
|
200
220
|
() => this.tryThematicBreakStart(),
|
|
@@ -243,6 +263,15 @@ var BlockParser = class {
|
|
|
243
263
|
this.line.advance(fence.length);
|
|
244
264
|
return "leaf";
|
|
245
265
|
}
|
|
266
|
+
tryMathBlockStart() {
|
|
267
|
+
if (this.line.indented) return "none";
|
|
268
|
+
if (!MATH_BLOCK_MARKER_PATTERN.test(this.line.restFromNextNonspace())) return "none";
|
|
269
|
+
this.closeUnmatchedBlocks();
|
|
270
|
+
this.addChild("mathBlock");
|
|
271
|
+
this.line.advanceToNextNonspace();
|
|
272
|
+
this.line.advance(MATH_BLOCK_MARKER_LENGTH);
|
|
273
|
+
return "leaf";
|
|
274
|
+
}
|
|
246
275
|
tryHtmlBlockStart(container) {
|
|
247
276
|
if (this.line.indented || this.line.peekNextNonspace() !== "<") return "none";
|
|
248
277
|
const interruptsParagraph = container.kind === "paragraph" || !this.allClosed && !this.line.blank && this.tip.kind === "paragraph";
|
|
@@ -373,6 +402,9 @@ var BlockParser = class {
|
|
|
373
402
|
case "codeBlock":
|
|
374
403
|
this.finalizeCodeBlock(node);
|
|
375
404
|
return;
|
|
405
|
+
case "mathBlock":
|
|
406
|
+
this.finalizeMathBlock(node);
|
|
407
|
+
return;
|
|
376
408
|
case "htmlBlock":
|
|
377
409
|
node.literal = node.content.replace(TRAILING_HTML_BLANK_LINES_PATTERN, "");
|
|
378
410
|
return;
|
|
@@ -391,6 +423,10 @@ var BlockParser = class {
|
|
|
391
423
|
node.infoString = unescapeString(node.content.slice(0, breakIndex).trim());
|
|
392
424
|
node.literal = node.content.slice(breakIndex + 1);
|
|
393
425
|
}
|
|
426
|
+
finalizeMathBlock(node) {
|
|
427
|
+
const breakIndex = node.content.indexOf("\n");
|
|
428
|
+
node.literal = breakIndex === -1 ? "" : node.content.slice(breakIndex + 1);
|
|
429
|
+
}
|
|
394
430
|
};
|
|
395
431
|
function toInlineChildren(content, references, options) {
|
|
396
432
|
return parseInlines(content.trim(), references, options);
|
|
@@ -500,6 +536,10 @@ function toAstBlock(node, references, options) {
|
|
|
500
536
|
literal: node.literal
|
|
501
537
|
};
|
|
502
538
|
case "thematicBreak": return { type: "thematicBreak" };
|
|
539
|
+
case "mathBlock": return {
|
|
540
|
+
type: "mathBlock",
|
|
541
|
+
literal: node.literal
|
|
542
|
+
};
|
|
503
543
|
case "table": return toTableNode(node, references, options);
|
|
504
544
|
case "document":
|
|
505
545
|
case "listItem": return;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { i as MarkdownDiagnosticSink } from "../diagnostics-
|
|
1
|
+
import { i as MarkdownDiagnosticSink } from "../diagnostics-B72W0P_E.cjs";
|
|
2
2
|
import { t as LinkReferenceDefinition } from "../link-Dv4kxVjk.cjs";
|
|
3
3
|
//#region src/block/definitions.d.ts
|
|
4
4
|
declare function extractDefinitions(content: string, references: Map<string, LinkReferenceDefinition>, sink?: MarkdownDiagnosticSink, startLine?: number): string;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { i as MarkdownDiagnosticSink } from "../diagnostics-
|
|
1
|
+
import { i as MarkdownDiagnosticSink } from "../diagnostics-B72W0P_E.js";
|
|
2
2
|
import { t as LinkReferenceDefinition } from "../link-Dv4kxVjk.js";
|
|
3
3
|
//#region src/block/definitions.d.ts
|
|
4
4
|
declare function extractDefinitions(content: string, references: Map<string, LinkReferenceDefinition>, sink?: MarkdownDiagnosticSink, startLine?: number): string;
|
package/dist/block/node.cjs
CHANGED
|
@@ -60,7 +60,7 @@ function canContain(parent, child) {
|
|
|
60
60
|
}
|
|
61
61
|
}
|
|
62
62
|
function acceptsLines(kind) {
|
|
63
|
-
return kind === "paragraph" || kind === "codeBlock" || kind === "htmlBlock" || kind === "table";
|
|
63
|
+
return kind === "paragraph" || kind === "codeBlock" || kind === "htmlBlock" || kind === "table" || kind === "mathBlock";
|
|
64
64
|
}
|
|
65
65
|
//#endregion
|
|
66
66
|
exports.BlockNode = BlockNode;
|
package/dist/block/node.d.cts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { i as MarkdownBulletMarker, j as MarkdownTableAlignment, w as MarkdownOrderedListDelimiter } from "../ast-DbjiuYr8.cjs";
|
|
2
2
|
import { t as HtmlBlockType } from "../html-bkz2QTuq.cjs";
|
|
3
3
|
//#region src/block/node.d.ts
|
|
4
|
-
type BlockNodeKind = 'document' | 'paragraph' | 'heading' | 'blockquote' | 'list' | 'listItem' | 'codeBlock' | 'htmlBlock' | 'thematicBreak' | 'table';
|
|
4
|
+
type BlockNodeKind = 'document' | 'paragraph' | 'heading' | 'blockquote' | 'list' | 'listItem' | 'codeBlock' | 'htmlBlock' | 'thematicBreak' | 'table' | 'mathBlock';
|
|
5
5
|
type BlockHeadingLevel = 1 | 2 | 3 | 4 | 5 | 6;
|
|
6
6
|
interface ListMarkerData {
|
|
7
7
|
readonly type: 'bullet' | 'ordered';
|
package/dist/block/node.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { i as MarkdownBulletMarker, j as MarkdownTableAlignment, w as MarkdownOrderedListDelimiter } from "../ast-DbjiuYr8.js";
|
|
2
2
|
import { t as HtmlBlockType } from "../html-bkz2QTuq.js";
|
|
3
3
|
//#region src/block/node.d.ts
|
|
4
|
-
type BlockNodeKind = 'document' | 'paragraph' | 'heading' | 'blockquote' | 'list' | 'listItem' | 'codeBlock' | 'htmlBlock' | 'thematicBreak' | 'table';
|
|
4
|
+
type BlockNodeKind = 'document' | 'paragraph' | 'heading' | 'blockquote' | 'list' | 'listItem' | 'codeBlock' | 'htmlBlock' | 'thematicBreak' | 'table' | 'mathBlock';
|
|
5
5
|
type BlockHeadingLevel = 1 | 2 | 3 | 4 | 5 | 6;
|
|
6
6
|
interface ListMarkerData {
|
|
7
7
|
readonly type: 'bullet' | 'ordered';
|
package/dist/block/node.js
CHANGED
|
@@ -59,7 +59,7 @@ function canContain(parent, child) {
|
|
|
59
59
|
}
|
|
60
60
|
}
|
|
61
61
|
function acceptsLines(kind) {
|
|
62
|
-
return kind === "paragraph" || kind === "codeBlock" || kind === "htmlBlock" || kind === "table";
|
|
62
|
+
return kind === "paragraph" || kind === "codeBlock" || kind === "htmlBlock" || kind === "table" || kind === "mathBlock";
|
|
63
63
|
}
|
|
64
64
|
//#endregion
|
|
65
65
|
export { BlockNode, acceptsLines, canContain };
|
package/dist/block/table.d.cts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { j as MarkdownTableAlignment } from "../ast-DbjiuYr8.cjs";
|
|
2
2
|
//#region src/block/table.d.ts
|
|
3
3
|
declare function splitTableRow(line: string): string[];
|
|
4
4
|
declare function parseTableDelimiterRow(line: string): MarkdownTableAlignment[] | undefined;
|
package/dist/block/table.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { j as MarkdownTableAlignment } from "../ast-DbjiuYr8.js";
|
|
2
2
|
//#region src/block/table.d.ts
|
|
3
3
|
declare function splitTableRow(line: string): string[];
|
|
4
4
|
declare function parseTableDelimiterRow(line: string): MarkdownTableAlignment[] | undefined;
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
|
3
3
|
const NOOP_MARKDOWN_DIAGNOSTIC_SINK = () => {};
|
|
4
4
|
const MarkdownDiagnosticCodes = {
|
|
5
5
|
UNCLOSED_FENCE: "md/unclosed-fence",
|
|
6
|
+
UNCLOSED_MATH_BLOCK: "md/unclosed-math-block",
|
|
6
7
|
UNTERMINATED_HTML_BLOCK: "md/unterminated-html-block",
|
|
7
8
|
TABLE_CELL_COUNT_MISMATCH: "md/table-cell-count-mismatch",
|
|
8
9
|
DUPLICATE_LINK_REFERENCE: "md/duplicate-link-reference",
|
|
@@ -17,6 +18,8 @@ const MarkdownDiagnosticCodes = {
|
|
|
17
18
|
IMAGE_UNRESOLVED: "md/image-unresolved",
|
|
18
19
|
RAW_HTML_PRESERVED_AS_TEXT: "md/raw-html-preserved-as-text",
|
|
19
20
|
RAW_HTML_DROPPED: "md/raw-html-dropped",
|
|
21
|
+
MATH_BLOCK_PRESERVED_AS_TEXT: "md/math-block-preserved-as-text",
|
|
22
|
+
MATH_INLINE_PRESERVED_AS_TEXT: "md/math-inline-preserved-as-text",
|
|
20
23
|
FRONT_MATTER_KEY_UNMAPPED: "md/front-matter-key-unmapped",
|
|
21
24
|
HEADING_LEVEL_CLAMPED: "md/heading-level-clamped",
|
|
22
25
|
ADJACENT_LINKS_MERGED: "md/adjacent-links-merged",
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as MarkdownInputTooLargeError, c as MarkdownParseError, d as NOOP_MARKDOWN_DIAGNOSTIC_SINK, i as MarkdownDiagnosticSink, l as MarkdownUnsupportedDocumentKindError, n as MarkdownDiagnosticCodes, o as MarkdownInvalidUtf8Error, r as MarkdownDiagnosticSeverity, s as MarkdownNestingLimitExceededError, t as MarkdownDiagnostic, u as MarkdownWriteError } from "../diagnostics-
|
|
1
|
+
import { a as MarkdownInputTooLargeError, c as MarkdownParseError, d as NOOP_MARKDOWN_DIAGNOSTIC_SINK, i as MarkdownDiagnosticSink, l as MarkdownUnsupportedDocumentKindError, n as MarkdownDiagnosticCodes, o as MarkdownInvalidUtf8Error, r as MarkdownDiagnosticSeverity, s as MarkdownNestingLimitExceededError, t as MarkdownDiagnostic, u as MarkdownWriteError } from "../diagnostics-B72W0P_E.cjs";
|
|
2
2
|
export { MarkdownDiagnostic, MarkdownDiagnosticCodes, MarkdownDiagnosticSeverity, MarkdownDiagnosticSink, MarkdownInputTooLargeError, MarkdownInvalidUtf8Error, MarkdownNestingLimitExceededError, MarkdownParseError, MarkdownUnsupportedDocumentKindError, MarkdownWriteError, NOOP_MARKDOWN_DIAGNOSTIC_SINK };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as MarkdownInputTooLargeError, c as MarkdownParseError, d as NOOP_MARKDOWN_DIAGNOSTIC_SINK, i as MarkdownDiagnosticSink, l as MarkdownUnsupportedDocumentKindError, n as MarkdownDiagnosticCodes, o as MarkdownInvalidUtf8Error, r as MarkdownDiagnosticSeverity, s as MarkdownNestingLimitExceededError, t as MarkdownDiagnostic, u as MarkdownWriteError } from "../diagnostics-
|
|
1
|
+
import { a as MarkdownInputTooLargeError, c as MarkdownParseError, d as NOOP_MARKDOWN_DIAGNOSTIC_SINK, i as MarkdownDiagnosticSink, l as MarkdownUnsupportedDocumentKindError, n as MarkdownDiagnosticCodes, o as MarkdownInvalidUtf8Error, r as MarkdownDiagnosticSeverity, s as MarkdownNestingLimitExceededError, t as MarkdownDiagnostic, u as MarkdownWriteError } from "../diagnostics-B72W0P_E.js";
|
|
2
2
|
export { MarkdownDiagnostic, MarkdownDiagnosticCodes, MarkdownDiagnosticSeverity, MarkdownDiagnosticSink, MarkdownInputTooLargeError, MarkdownInvalidUtf8Error, MarkdownNestingLimitExceededError, MarkdownParseError, MarkdownUnsupportedDocumentKindError, MarkdownWriteError, NOOP_MARKDOWN_DIAGNOSTIC_SINK };
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
const NOOP_MARKDOWN_DIAGNOSTIC_SINK = () => {};
|
|
3
3
|
const MarkdownDiagnosticCodes = {
|
|
4
4
|
UNCLOSED_FENCE: "md/unclosed-fence",
|
|
5
|
+
UNCLOSED_MATH_BLOCK: "md/unclosed-math-block",
|
|
5
6
|
UNTERMINATED_HTML_BLOCK: "md/unterminated-html-block",
|
|
6
7
|
TABLE_CELL_COUNT_MISMATCH: "md/table-cell-count-mismatch",
|
|
7
8
|
DUPLICATE_LINK_REFERENCE: "md/duplicate-link-reference",
|
|
@@ -16,6 +17,8 @@ const MarkdownDiagnosticCodes = {
|
|
|
16
17
|
IMAGE_UNRESOLVED: "md/image-unresolved",
|
|
17
18
|
RAW_HTML_PRESERVED_AS_TEXT: "md/raw-html-preserved-as-text",
|
|
18
19
|
RAW_HTML_DROPPED: "md/raw-html-dropped",
|
|
20
|
+
MATH_BLOCK_PRESERVED_AS_TEXT: "md/math-block-preserved-as-text",
|
|
21
|
+
MATH_INLINE_PRESERVED_AS_TEXT: "md/math-inline-preserved-as-text",
|
|
19
22
|
FRONT_MATTER_KEY_UNMAPPED: "md/front-matter-key-unmapped",
|
|
20
23
|
HEADING_LEVEL_CLAMPED: "md/heading-level-clamped",
|
|
21
24
|
ADJACENT_LINKS_MERGED: "md/adjacent-links-merged",
|
|
@@ -10,6 +10,7 @@ type MarkdownDiagnosticSink = (diagnostic: MarkdownDiagnostic) => void;
|
|
|
10
10
|
declare const NOOP_MARKDOWN_DIAGNOSTIC_SINK: MarkdownDiagnosticSink;
|
|
11
11
|
declare const MarkdownDiagnosticCodes: {
|
|
12
12
|
readonly UNCLOSED_FENCE: "md/unclosed-fence";
|
|
13
|
+
readonly UNCLOSED_MATH_BLOCK: "md/unclosed-math-block";
|
|
13
14
|
readonly UNTERMINATED_HTML_BLOCK: "md/unterminated-html-block";
|
|
14
15
|
readonly TABLE_CELL_COUNT_MISMATCH: "md/table-cell-count-mismatch";
|
|
15
16
|
readonly DUPLICATE_LINK_REFERENCE: "md/duplicate-link-reference";
|
|
@@ -24,6 +25,8 @@ declare const MarkdownDiagnosticCodes: {
|
|
|
24
25
|
readonly IMAGE_UNRESOLVED: "md/image-unresolved";
|
|
25
26
|
readonly RAW_HTML_PRESERVED_AS_TEXT: "md/raw-html-preserved-as-text";
|
|
26
27
|
readonly RAW_HTML_DROPPED: "md/raw-html-dropped";
|
|
28
|
+
readonly MATH_BLOCK_PRESERVED_AS_TEXT: "md/math-block-preserved-as-text";
|
|
29
|
+
readonly MATH_INLINE_PRESERVED_AS_TEXT: "md/math-inline-preserved-as-text";
|
|
27
30
|
readonly FRONT_MATTER_KEY_UNMAPPED: "md/front-matter-key-unmapped";
|
|
28
31
|
readonly HEADING_LEVEL_CLAMPED: "md/heading-level-clamped";
|
|
29
32
|
readonly ADJACENT_LINKS_MERGED: "md/adjacent-links-merged";
|
|
@@ -10,6 +10,7 @@ type MarkdownDiagnosticSink = (diagnostic: MarkdownDiagnostic) => void;
|
|
|
10
10
|
declare const NOOP_MARKDOWN_DIAGNOSTIC_SINK: MarkdownDiagnosticSink;
|
|
11
11
|
declare const MarkdownDiagnosticCodes: {
|
|
12
12
|
readonly UNCLOSED_FENCE: "md/unclosed-fence";
|
|
13
|
+
readonly UNCLOSED_MATH_BLOCK: "md/unclosed-math-block";
|
|
13
14
|
readonly UNTERMINATED_HTML_BLOCK: "md/unterminated-html-block";
|
|
14
15
|
readonly TABLE_CELL_COUNT_MISMATCH: "md/table-cell-count-mismatch";
|
|
15
16
|
readonly DUPLICATE_LINK_REFERENCE: "md/duplicate-link-reference";
|
|
@@ -24,6 +25,8 @@ declare const MarkdownDiagnosticCodes: {
|
|
|
24
25
|
readonly IMAGE_UNRESOLVED: "md/image-unresolved";
|
|
25
26
|
readonly RAW_HTML_PRESERVED_AS_TEXT: "md/raw-html-preserved-as-text";
|
|
26
27
|
readonly RAW_HTML_DROPPED: "md/raw-html-dropped";
|
|
28
|
+
readonly MATH_BLOCK_PRESERVED_AS_TEXT: "md/math-block-preserved-as-text";
|
|
29
|
+
readonly MATH_INLINE_PRESERVED_AS_TEXT: "md/math-inline-preserved-as-text";
|
|
27
30
|
readonly FRONT_MATTER_KEY_UNMAPPED: "md/front-matter-key-unmapped";
|
|
28
31
|
readonly HEADING_LEVEL_CLAMPED: "md/heading-level-clamped";
|
|
29
32
|
readonly ADJACENT_LINKS_MERGED: "md/adjacent-links-merged";
|
package/dist/emit/emit.cjs
CHANGED
|
@@ -34,7 +34,8 @@ const QUOTABLE_STYLE_IDS = /* @__PURE__ */ new Set([
|
|
|
34
34
|
require_shared_style_constants.QUOTE_STYLE_ID,
|
|
35
35
|
require_shared_style_constants.CODE_BLOCK_STYLE_ID,
|
|
36
36
|
require_shared_style_constants.HORIZONTAL_RULE_STYLE_ID,
|
|
37
|
-
require_shared_style_constants.HTML_PREFORMATTED_STYLE_ID
|
|
37
|
+
require_shared_style_constants.HTML_PREFORMATTED_STYLE_ID,
|
|
38
|
+
require_shared_style_constants.MATH_BLOCK_STYLE_ID
|
|
38
39
|
]);
|
|
39
40
|
function isQuotableStyle(styleId) {
|
|
40
41
|
if (styleId === void 0) return false;
|
|
@@ -52,6 +53,7 @@ function renderParagraphBody(paragraph, context) {
|
|
|
52
53
|
return literal.length === 0 ? `${fence}\n${fence}` : `${fence}\n${literal}\n${fence}`;
|
|
53
54
|
}
|
|
54
55
|
if (paragraph.styleId === "HTMLPreformatted") return paragraph.runs.map((run) => run.text).join("");
|
|
56
|
+
if (paragraph.styleId === "MathBlock") return `$$\n${paragraph.runs.map((run) => run.text).join("")}\n$$`;
|
|
55
57
|
const headingLevel = paragraph.styleId === void 0 ? void 0 : require_shared_style_constants.parseHeadingStyleId(paragraph.styleId);
|
|
56
58
|
if (headingLevel !== void 0) {
|
|
57
59
|
let level = headingLevel;
|
package/dist/emit/emit.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import "../defaults/defaults.js";
|
|
2
2
|
import { MarkdownDiagnosticCodes, MarkdownUnsupportedDocumentKindError, NOOP_MARKDOWN_DIAGNOSTIC_SINK } from "../diagnostics/diagnostics.js";
|
|
3
3
|
import { parseListNumId } from "../shared/list-id.js";
|
|
4
|
-
import { CODE_BLOCK_STYLE_ID, HORIZONTAL_RULE_STYLE_ID, HTML_PREFORMATTED_STYLE_ID, QUOTE_STYLE_ID, parseHeadingStyleId } from "../shared/style-constants.js";
|
|
4
|
+
import { CODE_BLOCK_STYLE_ID, HORIZONTAL_RULE_STYLE_ID, HTML_PREFORMATTED_STYLE_ID, MATH_BLOCK_STYLE_ID, QUOTE_STYLE_ID, parseHeadingStyleId } from "../shared/style-constants.js";
|
|
5
5
|
import { emitFrontMatter } from "./front-matter.js";
|
|
6
6
|
import { emitRuns } from "./inline.js";
|
|
7
7
|
import { emitImage } from "./image.js";
|
|
@@ -33,7 +33,8 @@ const QUOTABLE_STYLE_IDS = /* @__PURE__ */ new Set([
|
|
|
33
33
|
QUOTE_STYLE_ID,
|
|
34
34
|
CODE_BLOCK_STYLE_ID,
|
|
35
35
|
HORIZONTAL_RULE_STYLE_ID,
|
|
36
|
-
HTML_PREFORMATTED_STYLE_ID
|
|
36
|
+
HTML_PREFORMATTED_STYLE_ID,
|
|
37
|
+
MATH_BLOCK_STYLE_ID
|
|
37
38
|
]);
|
|
38
39
|
function isQuotableStyle(styleId) {
|
|
39
40
|
if (styleId === void 0) return false;
|
|
@@ -51,6 +52,7 @@ function renderParagraphBody(paragraph, context) {
|
|
|
51
52
|
return literal.length === 0 ? `${fence}\n${fence}` : `${fence}\n${literal}\n${fence}`;
|
|
52
53
|
}
|
|
53
54
|
if (paragraph.styleId === "HTMLPreformatted") return paragraph.runs.map((run) => run.text).join("");
|
|
55
|
+
if (paragraph.styleId === "MathBlock") return `$$\n${paragraph.runs.map((run) => run.text).join("")}\n$$`;
|
|
54
56
|
const headingLevel = paragraph.styleId === void 0 ? void 0 : parseHeadingStyleId(paragraph.styleId);
|
|
55
57
|
if (headingLevel !== void 0) {
|
|
56
58
|
let level = headingLevel;
|
package/dist/emit/inline.cjs
CHANGED
|
@@ -11,8 +11,6 @@ const ESCAPE_CHARS = /* @__PURE__ */ new Set([
|
|
|
11
11
|
"%",
|
|
12
12
|
"&",
|
|
13
13
|
"'",
|
|
14
|
-
"(",
|
|
15
|
-
")",
|
|
16
14
|
"*",
|
|
17
15
|
"+",
|
|
18
16
|
",",
|
|
@@ -87,6 +85,7 @@ function renderLeaf(run, context) {
|
|
|
87
85
|
});
|
|
88
86
|
return renderCodeSpan(run.text);
|
|
89
87
|
}
|
|
88
|
+
if (run.fontFamily === "Cambria Math") return `\\(${run.text}\\)`;
|
|
90
89
|
return escapeMarkdownText(run.text);
|
|
91
90
|
}
|
|
92
91
|
const STYLE_KEYS = [
|
|
@@ -136,7 +135,7 @@ function renderNestedStyles(runs, depth, context) {
|
|
|
136
135
|
return out;
|
|
137
136
|
}
|
|
138
137
|
function isPlainAutolink(run) {
|
|
139
|
-
if (run.hyperlink === void 0 || run.hyperlink.length === 0 || run.bold === true || run.italic === true || run.strike === true || run.fontFamily === "Courier New") return false;
|
|
138
|
+
if (run.hyperlink === void 0 || run.hyperlink.length === 0 || run.bold === true || run.italic === true || run.strike === true || run.fontFamily === "Courier New" || run.fontFamily === "Cambria Math") return false;
|
|
140
139
|
return run.text === run.hyperlink || run.hyperlink === `mailto:${run.text}`;
|
|
141
140
|
}
|
|
142
141
|
function escapeLinkDestination(destination) {
|
package/dist/emit/inline.d.cts
CHANGED
package/dist/emit/inline.d.ts
CHANGED