stream-markdown-parser 0.0.83 → 0.0.85
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.d.ts +5 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +147 -14
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -413,6 +413,8 @@ interface HtmlToken {
|
|
|
413
413
|
}
|
|
414
414
|
declare function isCustomHtmlComponentTag(tagName: string, customComponents: Record<string, unknown>): boolean;
|
|
415
415
|
declare function sanitizeHtmlAttrs(attrs: Record<string, string>): Record<string, string>;
|
|
416
|
+
declare function tokenAttrsToRecord(attrs?: Array<[string, string | null]> | null): Record<string, string>;
|
|
417
|
+
declare function sanitizeHtmlTokenAttrs(attrs?: Array<[string, string | null]> | null): [string, string][] | undefined;
|
|
416
418
|
declare function convertHtmlPropValue(value: string, key: string): any;
|
|
417
419
|
declare function convertHtmlAttrsToProps(attrs: Record<string, string>): Record<string, any>;
|
|
418
420
|
declare function tokenizeHtml(html: string): HtmlToken[];
|
|
@@ -427,6 +429,7 @@ declare const EXTENDED_STANDARD_HTML_TAG_NAMES: readonly ["address", "audio", "b
|
|
|
427
429
|
declare const DANGEROUS_HTML_ATTR_NAMES: readonly ["onclick", "onerror", "onload", "onmouseover", "onmouseout", "onmousedown", "onmouseup", "onkeydown", "onkeyup", "onfocus", "onblur", "onsubmit", "onreset", "onchange", "onselect", "ondblclick", "ontouchstart", "ontouchend", "ontouchmove", "ontouchcancel", "onwheel", "onscroll", "oncopy", "oncut", "onpaste", "oninput", "oninvalid", "onsearch"];
|
|
428
430
|
declare const URL_HTML_ATTR_NAMES: readonly ["href", "src", "srcset", "xlink:href", "formaction"];
|
|
429
431
|
declare const BLOCKED_HTML_TAG_NAMES: readonly ["script"];
|
|
432
|
+
declare const NON_STRUCTURING_HTML_TAG_NAMES: readonly ["pre", "script", "style", "textarea", "title"];
|
|
430
433
|
declare const VOID_HTML_TAGS: Set<string>;
|
|
431
434
|
declare const STANDARD_BLOCK_HTML_TAGS: Set<string>;
|
|
432
435
|
declare const STANDARD_HTML_TAGS: Set<string>;
|
|
@@ -434,6 +437,7 @@ declare const EXTENDED_STANDARD_HTML_TAGS: Set<string>;
|
|
|
434
437
|
declare const DANGEROUS_HTML_ATTRS: Set<string>;
|
|
435
438
|
declare const URL_HTML_ATTRS: Set<string>;
|
|
436
439
|
declare const BLOCKED_HTML_TAGS: Set<string>;
|
|
440
|
+
declare const NON_STRUCTURING_HTML_TAGS: Set<string>;
|
|
437
441
|
declare function stripHtmlControlAndWhitespace(value: string): string;
|
|
438
442
|
declare function isUnsafeHtmlUrl(value: string): boolean;
|
|
439
443
|
//#endregion
|
|
@@ -467,5 +471,5 @@ interface GetMarkdownOptions extends FactoryOptions {
|
|
|
467
471
|
}
|
|
468
472
|
declare function getMarkdown(msgId?: string, options?: GetMarkdownOptions): MarkdownIt;
|
|
469
473
|
//#endregion
|
|
470
|
-
export { AdmonitionNode, BLOCKED_HTML_TAGS, BLOCKED_HTML_TAG_NAMES, BLOCK_HTML_TAG_NAMES, BaseNode, BlockquoteNode, CheckboxInputNode, CheckboxNode, CodeBlockNode, CustomComponentAttrs, CustomComponentNode, CustomComponents, DANGEROUS_HTML_ATTRS, DANGEROUS_HTML_ATTR_NAMES, DefinitionItemNode, DefinitionListNode, ESCAPED_TEX_BRACE_COMMANDS, EXTENDED_STANDARD_HTML_TAGS, EXTENDED_STANDARD_HTML_TAG_NAMES, EmojiNode, EmphasisNode, FootnoteAnchorNode, FootnoteNode, FootnoteReferenceNode, GetMarkdownOptions, HardBreakNode, HeadingNode, HighlightNode, HtmlBlockNode, HtmlInlineNode, HtmlToken, INLINE_HTML_TAG_NAMES, ImageNode, InlineCodeNode, InlineNode, InsertNode, KATEX_COMMANDS, LinkNode, ListItemNode, ListNode, type MarkdownIt, MarkdownRender, MarkdownToken, MarkdownTokenLite, MathBlockNode, MathInlineNode, type MathOptions, MermaidBlockNode, ParagraphNode, ParseOptions, ParsedNode, PostTransformNodesHook, ReferenceNode, STANDARD_BLOCK_HTML_TAGS, STANDARD_HTML_TAGS, SVG_HTML_TAG_NAMES, StrikethroughNode, StrongNode, SubscriptNode, SuperscriptNode, TEX_BRACE_COMMANDS, TableCellNode, TableNode, TableRowNode, TextNode, ThematicBreakNode, TransformTokensHook, URL_HTML_ATTRS, URL_HTML_ATTR_NAMES, UnknownNode, VOID_HTML_TAGS, VOID_HTML_TAG_NAMES, VmrContainerNode, applyContainers, applyMath, clearRegisteredMarkdownPlugins, convertHtmlAttrsToProps, convertHtmlPropValue, findMatchingClose, getHtmlTagFromContent, getMarkdown, hasCompleteHtmlTagContent, hasCustomHtmlComponents, isCustomHtmlComponentTag, isHtmlLikeTagName, isMathLike, isUnsafeHtmlUrl, mergeCustomHtmlTags, normalizeCustomHtmlTagName, normalizeCustomHtmlTags, normalizeStandaloneBackslashT, parseFenceToken, parseInlineTokens, parseMarkdownToStructure, processTokens, registerMarkdownPlugin, resolveCustomHtmlTags, sanitizeHtmlAttrs, setDefaultMathOptions, shouldRenderUnknownHtmlTagAsText, stripCustomHtmlWrapper, stripHtmlControlAndWhitespace, tokenizeHtml };
|
|
474
|
+
export { AdmonitionNode, BLOCKED_HTML_TAGS, BLOCKED_HTML_TAG_NAMES, BLOCK_HTML_TAG_NAMES, BaseNode, BlockquoteNode, CheckboxInputNode, CheckboxNode, CodeBlockNode, CustomComponentAttrs, CustomComponentNode, CustomComponents, DANGEROUS_HTML_ATTRS, DANGEROUS_HTML_ATTR_NAMES, DefinitionItemNode, DefinitionListNode, ESCAPED_TEX_BRACE_COMMANDS, EXTENDED_STANDARD_HTML_TAGS, EXTENDED_STANDARD_HTML_TAG_NAMES, EmojiNode, EmphasisNode, FootnoteAnchorNode, FootnoteNode, FootnoteReferenceNode, GetMarkdownOptions, HardBreakNode, HeadingNode, HighlightNode, HtmlBlockNode, HtmlInlineNode, HtmlToken, INLINE_HTML_TAG_NAMES, ImageNode, InlineCodeNode, InlineNode, InsertNode, KATEX_COMMANDS, LinkNode, ListItemNode, ListNode, type MarkdownIt, MarkdownRender, MarkdownToken, MarkdownTokenLite, MathBlockNode, MathInlineNode, type MathOptions, MermaidBlockNode, NON_STRUCTURING_HTML_TAGS, NON_STRUCTURING_HTML_TAG_NAMES, ParagraphNode, ParseOptions, ParsedNode, PostTransformNodesHook, ReferenceNode, STANDARD_BLOCK_HTML_TAGS, STANDARD_HTML_TAGS, SVG_HTML_TAG_NAMES, StrikethroughNode, StrongNode, SubscriptNode, SuperscriptNode, TEX_BRACE_COMMANDS, TableCellNode, TableNode, TableRowNode, TextNode, ThematicBreakNode, TransformTokensHook, URL_HTML_ATTRS, URL_HTML_ATTR_NAMES, UnknownNode, VOID_HTML_TAGS, VOID_HTML_TAG_NAMES, VmrContainerNode, applyContainers, applyMath, clearRegisteredMarkdownPlugins, convertHtmlAttrsToProps, convertHtmlPropValue, findMatchingClose, getHtmlTagFromContent, getMarkdown, hasCompleteHtmlTagContent, hasCustomHtmlComponents, isCustomHtmlComponentTag, isHtmlLikeTagName, isMathLike, isUnsafeHtmlUrl, mergeCustomHtmlTags, normalizeCustomHtmlTagName, normalizeCustomHtmlTags, normalizeStandaloneBackslashT, parseFenceToken, parseInlineTokens, parseMarkdownToStructure, processTokens, registerMarkdownPlugin, resolveCustomHtmlTags, sanitizeHtmlAttrs, sanitizeHtmlTokenAttrs, setDefaultMathOptions, shouldRenderUnknownHtmlTagAsText, stripCustomHtmlWrapper, stripHtmlControlAndWhitespace, tokenAttrsToRecord, tokenizeHtml };
|
|
471
475
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","names":[],"sources":["../src/factory.ts","../src/types.ts","../src/parser/inline-parsers/index.ts","../src/parser/index.ts","../src/config.ts","../src/customHtmlTags.ts","../src/findMatchingClose.ts","../src/htmlRenderUtils.ts","../src/htmlTags.ts","../src/parser/inline-parsers/fence-parser.ts","../src/plugins/containers.ts","../src/plugins/isMathLike.ts","../src/plugins/math.ts","../src/index.ts"],"sourcesContent":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../src/factory.ts","../src/types.ts","../src/parser/inline-parsers/index.ts","../src/parser/index.ts","../src/config.ts","../src/customHtmlTags.ts","../src/findMatchingClose.ts","../src/htmlRenderUtils.ts","../src/htmlTags.ts","../src/parser/inline-parsers/fence-parser.ts","../src/plugins/containers.ts","../src/plugins/isMathLike.ts","../src/plugins/math.ts","../src/index.ts"],"sourcesContent":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -9573,6 +9573,13 @@ const URL_HTML_ATTR_NAMES = [
|
|
|
9573
9573
|
"formaction"
|
|
9574
9574
|
];
|
|
9575
9575
|
const BLOCKED_HTML_TAG_NAMES = ["script"];
|
|
9576
|
+
const NON_STRUCTURING_HTML_TAG_NAMES = [
|
|
9577
|
+
"pre",
|
|
9578
|
+
"script",
|
|
9579
|
+
"style",
|
|
9580
|
+
"textarea",
|
|
9581
|
+
"title"
|
|
9582
|
+
];
|
|
9576
9583
|
const VOID_HTML_TAGS = new Set(VOID_HTML_TAG_NAMES);
|
|
9577
9584
|
const STANDARD_BLOCK_HTML_TAGS = new Set(BLOCK_HTML_TAG_NAMES);
|
|
9578
9585
|
const STANDARD_HTML_TAGS = new Set([
|
|
@@ -9585,6 +9592,7 @@ const EXTENDED_STANDARD_HTML_TAGS = new Set([...STANDARD_HTML_TAGS, ...EXTENDED_
|
|
|
9585
9592
|
const DANGEROUS_HTML_ATTRS = new Set(DANGEROUS_HTML_ATTR_NAMES);
|
|
9586
9593
|
const URL_HTML_ATTRS = new Set(URL_HTML_ATTR_NAMES);
|
|
9587
9594
|
const BLOCKED_HTML_TAGS = new Set(BLOCKED_HTML_TAG_NAMES);
|
|
9595
|
+
const NON_STRUCTURING_HTML_TAGS = new Set(NON_STRUCTURING_HTML_TAG_NAMES);
|
|
9588
9596
|
function stripHtmlControlAndWhitespace(value) {
|
|
9589
9597
|
let out = "";
|
|
9590
9598
|
for (const ch of value) {
|
|
@@ -11772,6 +11780,16 @@ function applyMath(md, mathOpts) {
|
|
|
11772
11780
|
const s = state;
|
|
11773
11781
|
const strict = !!mathOpts?.strictDelimiters;
|
|
11774
11782
|
const allowLoading = !s?.env?.__markstreamFinal;
|
|
11783
|
+
const preserveSpacesBeforeLineBreak = (src, start) => {
|
|
11784
|
+
let end = start;
|
|
11785
|
+
while (end < src.length && (src[end] === " " || src[end] === " ")) end++;
|
|
11786
|
+
if (end === start) return start;
|
|
11787
|
+
if (!(src[end] === "\n" || src[end] === "\r" && src[end + 1] === "\n")) return start;
|
|
11788
|
+
const text$1 = src.slice(start, end);
|
|
11789
|
+
const token = s.push("text", "", 0);
|
|
11790
|
+
token.content = text$1;
|
|
11791
|
+
return end;
|
|
11792
|
+
};
|
|
11775
11793
|
if (/^\*[^*]+/.test(s.src)) return false;
|
|
11776
11794
|
const delimiters = [
|
|
11777
11795
|
["$$", "$$"],
|
|
@@ -12054,11 +12072,11 @@ function applyMath(md, mathOpts) {
|
|
|
12054
12072
|
token.loading = false;
|
|
12055
12073
|
const isBeforeClose = src.slice(endIdx + close.length).startsWith(strongMarker);
|
|
12056
12074
|
if (isBeforeClose) s.push("strong_close", "", 0);
|
|
12057
|
-
s.pos = endIdx + close.length;
|
|
12075
|
+
s.pos = preserveSpacesBeforeLineBreak(src, endIdx + close.length);
|
|
12058
12076
|
searchPos = s.pos;
|
|
12059
12077
|
preMathPos = searchPos;
|
|
12060
12078
|
if (!isBeforeClose) s.push("strong_close", "", 0);
|
|
12061
|
-
|
|
12079
|
+
return true;
|
|
12062
12080
|
} else {
|
|
12063
12081
|
const token = s.push("math_inline", "math", 0);
|
|
12064
12082
|
token.content = normalizeStandaloneBackslashT(content, mathOpts);
|
|
@@ -12067,9 +12085,10 @@ function applyMath(md, mathOpts) {
|
|
|
12067
12085
|
token.loading = false;
|
|
12068
12086
|
}
|
|
12069
12087
|
}
|
|
12070
|
-
searchPos = endIdx + close.length;
|
|
12088
|
+
searchPos = preserveSpacesBeforeLineBreak(src, endIdx + close.length);
|
|
12071
12089
|
preMathPos = searchPos;
|
|
12072
12090
|
s.pos = searchPos;
|
|
12091
|
+
return true;
|
|
12073
12092
|
}
|
|
12074
12093
|
if (foundAny) {
|
|
12075
12094
|
if (!silent) {
|
|
@@ -12531,6 +12550,40 @@ function normalizeLinkAttrs$1(attrs, href, title) {
|
|
|
12531
12550
|
function stringifyTokens(tokens) {
|
|
12532
12551
|
return tokens.map(tokenToRaw).join("");
|
|
12533
12552
|
}
|
|
12553
|
+
function normalizeStandardHtmlChildren(children) {
|
|
12554
|
+
const normalized = [];
|
|
12555
|
+
const pushText = (rawText) => {
|
|
12556
|
+
const text$1 = String(rawText ?? "");
|
|
12557
|
+
if (!text$1) return;
|
|
12558
|
+
const last = normalized[normalized.length - 1];
|
|
12559
|
+
if (last?.type === "text") {
|
|
12560
|
+
last.content = String(last.content ?? "") + text$1;
|
|
12561
|
+
last.raw = String(last.raw ?? "") + text$1;
|
|
12562
|
+
return;
|
|
12563
|
+
}
|
|
12564
|
+
normalized.push({
|
|
12565
|
+
type: "text",
|
|
12566
|
+
content: text$1,
|
|
12567
|
+
raw: text$1
|
|
12568
|
+
});
|
|
12569
|
+
};
|
|
12570
|
+
for (const child of children) {
|
|
12571
|
+
if (!child) continue;
|
|
12572
|
+
if (child.type === "reference" || child.type === "footnote_reference") {
|
|
12573
|
+
pushText(String(child.raw ?? ""));
|
|
12574
|
+
continue;
|
|
12575
|
+
}
|
|
12576
|
+
if (Array.isArray(child.children)) {
|
|
12577
|
+
normalized.push({
|
|
12578
|
+
...child,
|
|
12579
|
+
children: normalizeStandardHtmlChildren(child.children ?? [])
|
|
12580
|
+
});
|
|
12581
|
+
continue;
|
|
12582
|
+
}
|
|
12583
|
+
normalized.push(child);
|
|
12584
|
+
}
|
|
12585
|
+
return normalized;
|
|
12586
|
+
}
|
|
12534
12587
|
function findMatchingClosing(tokens, startIndex, tag) {
|
|
12535
12588
|
let depth = 0;
|
|
12536
12589
|
for (let idx = startIndex; idx < tokens.length; idx++) {
|
|
@@ -12615,9 +12668,9 @@ function parseHtmlInlineCodeToken(token, tokens, i, parseInlineTokens$1, raw, pP
|
|
|
12615
12668
|
const titleAttr = getAttrValue$1(attrs$1, "title");
|
|
12616
12669
|
const title = titleAttr == null ? null : String(titleAttr);
|
|
12617
12670
|
const normalizedAttrs = normalizeLinkAttrs$1(attrs$1, href, title);
|
|
12618
|
-
const
|
|
12671
|
+
const normalizedChildren$1 = normalizeStandardHtmlChildren(innerTokens.length ? parseInlineTokens$1(innerTokens, raw, pPreToken, options) : []);
|
|
12619
12672
|
const textContent = innerTokens.length ? stringifyTokens(innerTokens) : href || "";
|
|
12620
|
-
if (!
|
|
12673
|
+
if (!normalizedChildren$1.length && textContent) normalizedChildren$1.push({
|
|
12621
12674
|
type: "text",
|
|
12622
12675
|
content: textContent,
|
|
12623
12676
|
raw: textContent
|
|
@@ -12628,7 +12681,7 @@ function parseHtmlInlineCodeToken(token, tokens, i, parseInlineTokens$1, raw, pP
|
|
|
12628
12681
|
title,
|
|
12629
12682
|
text: textContent,
|
|
12630
12683
|
attrs: normalizedAttrs,
|
|
12631
|
-
children:
|
|
12684
|
+
children: normalizedChildren$1,
|
|
12632
12685
|
loading: !fragment$1.closed,
|
|
12633
12686
|
raw: fragment$1.html || code$1
|
|
12634
12687
|
}, fragment$1.nextIndex];
|
|
@@ -12644,10 +12697,10 @@ function parseHtmlInlineCodeToken(token, tokens, i, parseInlineTokens$1, raw, pP
|
|
|
12644
12697
|
const fragment = collectHtmlFragment(tokens, i, tag);
|
|
12645
12698
|
if (tag === "p" || tag === "div") return [{
|
|
12646
12699
|
type: "paragraph",
|
|
12647
|
-
children: fragment.innerTokens.length ? parseInlineTokens$1(fragment.innerTokens, raw, pPreToken, options) : [],
|
|
12700
|
+
children: normalizeStandardHtmlChildren(fragment.innerTokens.length ? parseInlineTokens$1(fragment.innerTokens, raw, pPreToken, options) : []),
|
|
12648
12701
|
raw: fragment.html
|
|
12649
12702
|
}, fragment.nextIndex];
|
|
12650
|
-
const
|
|
12703
|
+
const normalizedChildren = normalizeStandardHtmlChildren(fragment.innerTokens.length ? parseInlineTokens$1(fragment.innerTokens, raw, pPreToken, options) : []);
|
|
12651
12704
|
let content = fragment.html || code$1;
|
|
12652
12705
|
let loading = !fragment.closed;
|
|
12653
12706
|
let autoClosed = false;
|
|
@@ -12680,7 +12733,7 @@ function parseHtmlInlineCodeToken(token, tokens, i, parseInlineTokens$1, raw, pP
|
|
|
12680
12733
|
tag,
|
|
12681
12734
|
attrs,
|
|
12682
12735
|
content,
|
|
12683
|
-
children,
|
|
12736
|
+
children: normalizedChildren,
|
|
12684
12737
|
raw: content,
|
|
12685
12738
|
loading,
|
|
12686
12739
|
autoClosed
|
|
@@ -12972,7 +13025,7 @@ function parseTextToken(token) {
|
|
|
12972
13025
|
const STRONG_PAIR_RE = /\*\*([\s\S]*?)\*\*/;
|
|
12973
13026
|
const STRIKETHROUGH_RE = /[^~]*~{2,}[^~]+/;
|
|
12974
13027
|
const HAS_STRONG_RE = /\*\*/;
|
|
12975
|
-
const INLINE_REPARSE_MARKER_RE =
|
|
13028
|
+
const INLINE_REPARSE_MARKER_RE = /[[_*^~]/;
|
|
12976
13029
|
const ESCAPED_PUNCTUATION_RE = /\\([\\()[\]`$|*_\-!])/g;
|
|
12977
13030
|
const ESCAPABLE_PUNCTUATION = new Set([
|
|
12978
13031
|
"\\",
|
|
@@ -13434,10 +13487,10 @@ function parseInlineTokens(tokens, raw, pPreToken, options) {
|
|
|
13434
13487
|
}
|
|
13435
13488
|
function tryReparseCollapsedInlineText(rawContent) {
|
|
13436
13489
|
const md = options?.__markdownIt;
|
|
13437
|
-
if (!md
|
|
13490
|
+
if (!md) return null;
|
|
13438
13491
|
if (tokens.length <= 1 || !tokens.some((token) => token?.type === "math_inline")) return null;
|
|
13439
13492
|
if (!INLINE_REPARSE_MARKER_RE.test(rawContent)) return null;
|
|
13440
|
-
const reparsed = md.parseInline(rawContent, { __markstreamFinal:
|
|
13493
|
+
const reparsed = md.parseInline(rawContent, { __markstreamFinal: !!options?.final });
|
|
13441
13494
|
if (!Array.isArray(reparsed) || reparsed.length === 0) return null;
|
|
13442
13495
|
const children = (reparsed.find((token) => token?.type === "inline")?.children ?? []).filter((child) => !(child?.type === "text" && String(child.content ?? "") === ""));
|
|
13443
13496
|
if (!children.length) return null;
|
|
@@ -15242,6 +15295,14 @@ function buildHtmlBlockContent(raw, tag, closed) {
|
|
|
15242
15295
|
if (closed) return raw;
|
|
15243
15296
|
return `${raw.replace(/<[^>]*$/, "")}\n</${tag}>`;
|
|
15244
15297
|
}
|
|
15298
|
+
function normalizeIndentedSourceForLookup(value) {
|
|
15299
|
+
return value.replace(/\r\n/g, "\n").replace(/(^|\n)[ \t]{1,4}/g, "$1");
|
|
15300
|
+
}
|
|
15301
|
+
function canFindNodeRawAfterSourceIndex(source, startIndex, nodeRaw) {
|
|
15302
|
+
if (!nodeRaw) return false;
|
|
15303
|
+
if (source.indexOf(nodeRaw, startIndex) !== -1) return true;
|
|
15304
|
+
return normalizeIndentedSourceForLookup(source.slice(Math.max(0, startIndex))).includes(normalizeIndentedSourceForLookup(nodeRaw));
|
|
15305
|
+
}
|
|
15245
15306
|
function extendHtmlBlockCloseToLineEnding(source, startIndex) {
|
|
15246
15307
|
let end = Math.max(0, startIndex);
|
|
15247
15308
|
while (end < source.length && (source[end] === " " || source[end] === " ")) end++;
|
|
@@ -15279,6 +15340,54 @@ function buildDetailsChildParseOptions(options, final) {
|
|
|
15279
15340
|
validateLink: options.validateLink
|
|
15280
15341
|
};
|
|
15281
15342
|
}
|
|
15343
|
+
const STRUCTURED_HTML_WRAPPER_BLOCK_TYPES = new Set([
|
|
15344
|
+
"admonition",
|
|
15345
|
+
"blockquote",
|
|
15346
|
+
"code_block",
|
|
15347
|
+
"definition_list",
|
|
15348
|
+
"footnote",
|
|
15349
|
+
"heading",
|
|
15350
|
+
"list",
|
|
15351
|
+
"math_block",
|
|
15352
|
+
"table",
|
|
15353
|
+
"thematic_break"
|
|
15354
|
+
]);
|
|
15355
|
+
const STRUCTURED_HTML_WRAPPER_MARKER_RE = /(?:^|\n)(?:\s{0,3}(?:#{1,6}\s+\S|[-+*]\s+\S|\d+[.)]\s+\S|>\s*\S|(?:`{3,}|~{3,})|(?:\*{3,}|-{3,}|_{3,})(?:\s|$)|\|.*\|))/m;
|
|
15356
|
+
function hasStructuredHtmlWrapperMarkers(fragment) {
|
|
15357
|
+
return /\n\s*\n/.test(fragment) || STRUCTURED_HTML_WRAPPER_MARKER_RE.test(fragment);
|
|
15358
|
+
}
|
|
15359
|
+
function shouldStructureGenericHtmlBlockChildren(innerRaw, children) {
|
|
15360
|
+
if (!innerRaw.trim() || children.length === 0) return false;
|
|
15361
|
+
if (children.some((child) => STRUCTURED_HTML_WRAPPER_BLOCK_TYPES.has(String(child?.type ?? "").toLowerCase()))) return true;
|
|
15362
|
+
if (children.some((child) => {
|
|
15363
|
+
if (child?.type !== "html_block") return false;
|
|
15364
|
+
return Array.isArray(child?.children) && child.children.length > 0;
|
|
15365
|
+
})) return true;
|
|
15366
|
+
if (!hasStructuredHtmlWrapperMarkers(innerRaw)) return false;
|
|
15367
|
+
if (children.length > 1) return true;
|
|
15368
|
+
const [first] = children;
|
|
15369
|
+
return Boolean(first && first.type === "paragraph");
|
|
15370
|
+
}
|
|
15371
|
+
function structureGenericHtmlBlockChildren(nodes, md, options, final) {
|
|
15372
|
+
return nodes.map((node) => {
|
|
15373
|
+
if (node?.type !== "html_block") return node;
|
|
15374
|
+
const tag = String(node?.tag ?? "").toLowerCase();
|
|
15375
|
+
if (!tag || tag === "details" || NON_STRUCTURING_HTML_TAGS.has(tag) || Array.isArray(node?.children)) return node;
|
|
15376
|
+
const raw = String(node?.raw ?? node?.content ?? "");
|
|
15377
|
+
if (!raw) return node;
|
|
15378
|
+
const openEnd = findTagCloseIndexOutsideQuotes(raw);
|
|
15379
|
+
if (openEnd === -1) return node;
|
|
15380
|
+
const closeStart = findLastClosingTagStart(raw, tag);
|
|
15381
|
+
const innerRaw = closeStart !== -1 && closeStart >= openEnd + 1 ? raw.slice(openEnd + 1, closeStart) : raw.slice(openEnd + 1);
|
|
15382
|
+
if (!innerRaw.trim()) return node;
|
|
15383
|
+
const children = parseDetailsFragmentChildren(innerRaw, md, buildDetailsChildParseOptions(options, final));
|
|
15384
|
+
if (!shouldStructureGenericHtmlBlockChildren(innerRaw, children)) return node;
|
|
15385
|
+
return {
|
|
15386
|
+
...node,
|
|
15387
|
+
children
|
|
15388
|
+
};
|
|
15389
|
+
});
|
|
15390
|
+
}
|
|
15282
15391
|
function parseDetailsFragmentChildren(fragment, md, options) {
|
|
15283
15392
|
if (!fragment.trim()) return [];
|
|
15284
15393
|
return parseMarkdownToStructure(fragment, md, options);
|
|
@@ -15411,9 +15520,13 @@ function mergeSplitTopLevelHtmlBlocks(nodes, final, source) {
|
|
|
15411
15520
|
const nextContent = buildHtmlBlockContent(exact.raw, tag, exact.closed);
|
|
15412
15521
|
const desiredLoading = !final && !exact.closed;
|
|
15413
15522
|
const needsExpansion = currentContent !== nextContent || currentRaw !== exact.raw || Boolean(node?.loading) !== desiredLoading;
|
|
15523
|
+
const exactOpenEnd = findTagCloseIndexOutsideQuotes(exact.raw);
|
|
15524
|
+
const exactOpenTag = exactOpenEnd === -1 ? "" : exact.raw.slice(0, exactOpenEnd + 1);
|
|
15525
|
+
const exactAttrs = exactOpenTag ? parseTagAttrs(exactOpenTag) : [];
|
|
15414
15526
|
node.content = nextContent;
|
|
15415
15527
|
node.raw = exact.raw;
|
|
15416
15528
|
node.loading = desiredLoading;
|
|
15529
|
+
node.attrs = exactAttrs.length ? exactAttrs : void 0;
|
|
15417
15530
|
if (!needsExpansion) continue;
|
|
15418
15531
|
let tailCursor = findApproximateConsumedPrefixEnd(exact.raw, currentRaw);
|
|
15419
15532
|
if (tailCursor === -1) tailCursor = 0;
|
|
@@ -15426,7 +15539,11 @@ function mergeSplitTopLevelHtmlBlocks(nodes, final, source) {
|
|
|
15426
15539
|
const nextRaw = getMergeableNodeRaw(merged[j]);
|
|
15427
15540
|
if (!nextRaw) break;
|
|
15428
15541
|
const nextPos = exact.raw.indexOf(nextRaw, tailCursor);
|
|
15429
|
-
if (nextPos === -1)
|
|
15542
|
+
if (nextPos === -1) {
|
|
15543
|
+
if (canFindNodeRawAfterSourceIndex(source, exact.end, nextRaw)) break;
|
|
15544
|
+
merged.splice(j, 1);
|
|
15545
|
+
continue;
|
|
15546
|
+
}
|
|
15430
15547
|
tailCursor = nextPos + nextRaw.length;
|
|
15431
15548
|
merged.splice(j, 1);
|
|
15432
15549
|
}
|
|
@@ -16270,6 +16387,7 @@ function parseMarkdownToStructure(markdown, md, options = {}) {
|
|
|
16270
16387
|
}
|
|
16271
16388
|
result = mergeSplitTopLevelHtmlBlocks(result, isFinal, safeMarkdown);
|
|
16272
16389
|
result = combineStructuredDetailsHtmlBlocks(result, safeMarkdown, md, options, isFinal)[0];
|
|
16390
|
+
result = structureGenericHtmlBlockChildren(result, md, options, isFinal);
|
|
16273
16391
|
if (isFinal) {
|
|
16274
16392
|
const seen = /* @__PURE__ */ new WeakSet();
|
|
16275
16393
|
const finalizeHtmlBlockLoading = (value) => {
|
|
@@ -16398,6 +16516,20 @@ function sanitizeHtmlAttrs(attrs) {
|
|
|
16398
16516
|
}
|
|
16399
16517
|
return clean;
|
|
16400
16518
|
}
|
|
16519
|
+
function tokenAttrsToRecord(attrs) {
|
|
16520
|
+
const record = {};
|
|
16521
|
+
if (!Array.isArray(attrs) || attrs.length === 0) return record;
|
|
16522
|
+
for (const [key, value] of attrs) {
|
|
16523
|
+
if (!key) continue;
|
|
16524
|
+
record[String(key)] = value == null ? "" : String(value);
|
|
16525
|
+
}
|
|
16526
|
+
return record;
|
|
16527
|
+
}
|
|
16528
|
+
function sanitizeHtmlTokenAttrs(attrs) {
|
|
16529
|
+
const sanitized = sanitizeHtmlAttrs(tokenAttrsToRecord(attrs));
|
|
16530
|
+
const pairs = Object.entries(sanitized).map(([key, value]) => [key, value]);
|
|
16531
|
+
return pairs.length > 0 ? pairs : void 0;
|
|
16532
|
+
}
|
|
16401
16533
|
function convertHtmlPropValue(value, key) {
|
|
16402
16534
|
const lowerKey = key.toLowerCase();
|
|
16403
16535
|
if ([
|
|
@@ -16657,6 +16789,7 @@ function getMarkdown(msgId = `editor-${Date.now()}`, options = {}) {
|
|
|
16657
16789
|
const token = s.push("reference", "span", 0);
|
|
16658
16790
|
token.content = id;
|
|
16659
16791
|
token.markup = match[0];
|
|
16792
|
+
token.raw = match[0];
|
|
16660
16793
|
}
|
|
16661
16794
|
s.pos += match[0].length;
|
|
16662
16795
|
return true;
|
|
@@ -16671,5 +16804,5 @@ function getMarkdown(msgId = `editor-${Date.now()}`, options = {}) {
|
|
|
16671
16804
|
}
|
|
16672
16805
|
|
|
16673
16806
|
//#endregion
|
|
16674
|
-
export { BLOCKED_HTML_TAGS, BLOCKED_HTML_TAG_NAMES, BLOCK_HTML_TAG_NAMES, DANGEROUS_HTML_ATTRS, DANGEROUS_HTML_ATTR_NAMES, ESCAPED_TEX_BRACE_COMMANDS, EXTENDED_STANDARD_HTML_TAGS, EXTENDED_STANDARD_HTML_TAG_NAMES, INLINE_HTML_TAG_NAMES, KATEX_COMMANDS, STANDARD_BLOCK_HTML_TAGS, STANDARD_HTML_TAGS, SVG_HTML_TAG_NAMES, TEX_BRACE_COMMANDS, URL_HTML_ATTRS, URL_HTML_ATTR_NAMES, VOID_HTML_TAGS, VOID_HTML_TAG_NAMES, applyContainers, applyMath, clearRegisteredMarkdownPlugins, convertHtmlAttrsToProps, convertHtmlPropValue, findMatchingClose, getHtmlTagFromContent, getMarkdown, hasCompleteHtmlTagContent, hasCustomHtmlComponents, isCustomHtmlComponentTag, isHtmlLikeTagName, isMathLike, isUnsafeHtmlUrl, mergeCustomHtmlTags, normalizeCustomHtmlTagName, normalizeCustomHtmlTags, normalizeStandaloneBackslashT, parseFenceToken, parseInlineTokens, parseMarkdownToStructure, processTokens, registerMarkdownPlugin, resolveCustomHtmlTags, sanitizeHtmlAttrs, setDefaultMathOptions, shouldRenderUnknownHtmlTagAsText, stripCustomHtmlWrapper, stripHtmlControlAndWhitespace, tokenizeHtml };
|
|
16807
|
+
export { BLOCKED_HTML_TAGS, BLOCKED_HTML_TAG_NAMES, BLOCK_HTML_TAG_NAMES, DANGEROUS_HTML_ATTRS, DANGEROUS_HTML_ATTR_NAMES, ESCAPED_TEX_BRACE_COMMANDS, EXTENDED_STANDARD_HTML_TAGS, EXTENDED_STANDARD_HTML_TAG_NAMES, INLINE_HTML_TAG_NAMES, KATEX_COMMANDS, NON_STRUCTURING_HTML_TAGS, NON_STRUCTURING_HTML_TAG_NAMES, STANDARD_BLOCK_HTML_TAGS, STANDARD_HTML_TAGS, SVG_HTML_TAG_NAMES, TEX_BRACE_COMMANDS, URL_HTML_ATTRS, URL_HTML_ATTR_NAMES, VOID_HTML_TAGS, VOID_HTML_TAG_NAMES, applyContainers, applyMath, clearRegisteredMarkdownPlugins, convertHtmlAttrsToProps, convertHtmlPropValue, findMatchingClose, getHtmlTagFromContent, getMarkdown, hasCompleteHtmlTagContent, hasCustomHtmlComponents, isCustomHtmlComponentTag, isHtmlLikeTagName, isMathLike, isUnsafeHtmlUrl, mergeCustomHtmlTags, normalizeCustomHtmlTagName, normalizeCustomHtmlTags, normalizeStandaloneBackslashT, parseFenceToken, parseInlineTokens, parseMarkdownToStructure, processTokens, registerMarkdownPlugin, resolveCustomHtmlTags, sanitizeHtmlAttrs, sanitizeHtmlTokenAttrs, setDefaultMathOptions, shouldRenderUnknownHtmlTagAsText, stripCustomHtmlWrapper, stripHtmlControlAndWhitespace, tokenAttrsToRecord, tokenizeHtml };
|
|
16675
16808
|
//# sourceMappingURL=index.js.map
|