stream-markdown-parser 0.0.16 → 0.0.18

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 CHANGED
@@ -35,6 +35,11 @@ interface ParagraphNode extends BaseNode {
35
35
  children: ParsedNode[];
36
36
  maybeCheckbox?: boolean;
37
37
  }
38
+ interface InlineNode extends BaseNode {
39
+ type: 'inline';
40
+ children: ParsedNode[];
41
+ content?: string;
42
+ }
38
43
  interface ListNode extends BaseNode {
39
44
  type: 'list';
40
45
  ordered: boolean;
@@ -59,8 +64,15 @@ interface CodeBlockNode extends BaseNode {
59
64
  }
60
65
  interface HtmlBlockNode extends BaseNode {
61
66
  type: 'html_block';
67
+ attrs?: [string, string][] | null;
68
+ tag: string;
62
69
  content: string;
63
70
  }
71
+ interface HtmlInlineNode extends BaseNode {
72
+ type: 'html_inline';
73
+ content: string;
74
+ children: ParsedNode[];
75
+ }
64
76
  interface InlineCodeNode extends BaseNode {
65
77
  type: 'inline_code';
66
78
  code: string;
@@ -311,5 +323,5 @@ interface GetMarkdownOptions extends FactoryOptions {
311
323
  }
312
324
  declare function getMarkdown(msgId?: string, options?: GetMarkdownOptions): MarkdownIt$1;
313
325
  //#endregion
314
- export { AdmonitionNode, BaseNode, BlockquoteNode, CheckboxInputNode, CheckboxNode, CodeBlockNode, CustomComponents, DefinitionItemNode, DefinitionListNode, ESCAPED_TEX_BRACE_COMMANDS, EmojiNode, EmphasisNode, FootnoteNode, FootnoteReferenceNode, GetMarkdownOptions, HardBreakNode, HeadingNode, HighlightNode, HtmlBlockNode, ImageNode, InlineCodeNode, InsertNode, KATEX_COMMANDS, LinkNode, ListItemNode, ListNode, MarkdownRender, MarkdownToken, MarkdownTokenLite, MathBlockNode, MathInlineNode, type MathOptions, MermaidBlockNode, ParagraphNode, ParseOptions, ParsedNode, PostTransformNodesHook, ReferenceNode, StrikethroughNode, StrongNode, SubscriptNode, SuperscriptNode, TEX_BRACE_COMMANDS, TableCellNode, TableNode, TableRowNode, TextNode, ThematicBreakNode, TransformTokensHook, applyContainers, applyMath, findMatchingClose, getMarkdown, isMathLike, normalizeStandaloneBackslashT, parseFenceToken, parseInlineTokens, parseMarkdownToStructure, processTokens, setDefaultMathOptions };
326
+ export { AdmonitionNode, BaseNode, BlockquoteNode, CheckboxInputNode, CheckboxNode, CodeBlockNode, CustomComponents, DefinitionItemNode, DefinitionListNode, ESCAPED_TEX_BRACE_COMMANDS, EmojiNode, EmphasisNode, FootnoteNode, FootnoteReferenceNode, GetMarkdownOptions, HardBreakNode, HeadingNode, HighlightNode, HtmlBlockNode, HtmlInlineNode, ImageNode, InlineCodeNode, InlineNode, InsertNode, KATEX_COMMANDS, LinkNode, ListItemNode, ListNode, MarkdownRender, MarkdownToken, MarkdownTokenLite, MathBlockNode, MathInlineNode, type MathOptions, MermaidBlockNode, ParagraphNode, ParseOptions, ParsedNode, PostTransformNodesHook, ReferenceNode, StrikethroughNode, StrongNode, SubscriptNode, SuperscriptNode, TEX_BRACE_COMMANDS, TableCellNode, TableNode, TableRowNode, TextNode, ThematicBreakNode, TransformTokensHook, applyContainers, applyMath, findMatchingClose, getMarkdown, isMathLike, normalizeStandaloneBackslashT, parseFenceToken, parseInlineTokens, parseMarkdownToStructure, processTokens, setDefaultMathOptions };
315
327
  //# sourceMappingURL=index.d.ts.map
@@ -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/findMatchingClose.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/findMatchingClose.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
@@ -75,6 +75,61 @@ function applyContainers(md) {
75
75
  });
76
76
  }
77
77
 
78
+ //#endregion
79
+ //#region src/plugins/fixHtmlInline.ts
80
+ function applyFixHtmlInlineTokens(md) {
81
+ md.core.ruler.push("fix_html_inline_tokens", (state) => {
82
+ const toks = state.tokens ?? [];
83
+ const VOID_TAGS = new Set([
84
+ "area",
85
+ "base",
86
+ "br",
87
+ "col",
88
+ "embed",
89
+ "hr",
90
+ "img",
91
+ "input",
92
+ "link",
93
+ "meta",
94
+ "param",
95
+ "source",
96
+ "track",
97
+ "wbr"
98
+ ]);
99
+ for (let i = 0; i < toks.length; i++) {
100
+ const t = toks[i];
101
+ if (!t || t.type !== "inline") continue;
102
+ if (/\s*<$/.test(t.content)) {
103
+ t.children.length = 0;
104
+ continue;
105
+ }
106
+ if (t.children.length === 2 && t.children[0].type === "html_inline") {
107
+ t.children = [{
108
+ type: "html_block",
109
+ content: t.children[0].content + t.children[1].content,
110
+ tag: t.children[0].content.match(/<([^\s>/]+)/)?.[1] ?? "",
111
+ loading: true
112
+ }];
113
+ continue;
114
+ }
115
+ if (!t.content?.startsWith("<") || t.children?.length !== 1) continue;
116
+ const raw = String(t.content);
117
+ const tagName = raw.match(/<([^\s>/]+)/)?.[1]?.toLowerCase() ?? "";
118
+ if (!tagName) continue;
119
+ const isVoid = /\/\s*>\s*$/.test(raw) || VOID_TAGS.has(tagName);
120
+ const htmlToken = t;
121
+ if (isVoid) {
122
+ htmlToken.children = [{
123
+ type: "html_inline",
124
+ content: raw
125
+ }];
126
+ continue;
127
+ }
128
+ htmlToken.children.length = 0;
129
+ }
130
+ });
131
+ }
132
+
78
133
  //#endregion
79
134
  //#region src/plugins/fixLinkInline.ts
80
135
  function applyFixLinkInline(md) {
@@ -547,6 +602,37 @@ function findMatchingClose(src, startIdx, open, close) {
547
602
  }
548
603
  var findMatchingClose_default = findMatchingClose;
549
604
 
605
+ //#endregion
606
+ //#region src/utils/lru.ts
607
+ var LRUCache = class {
608
+ constructor(max = 500) {
609
+ this.max = max;
610
+ this.map = /* @__PURE__ */ new Map();
611
+ }
612
+ get(key) {
613
+ if (!this.map.has(key)) return void 0;
614
+ const val = this.map.get(key);
615
+ this.map.delete(key);
616
+ this.map.set(key, val);
617
+ return val;
618
+ }
619
+ set(key, value) {
620
+ if (this.map.has(key)) this.map.delete(key);
621
+ this.map.set(key, value);
622
+ if (this.map.size > this.max) {
623
+ const firstKey = this.map.keys().next().value;
624
+ if (firstKey !== void 0) this.map.delete(firstKey);
625
+ }
626
+ }
627
+ getOrCreate(key, factory$1) {
628
+ const existing = this.get(key);
629
+ if (existing !== void 0) return existing;
630
+ const v = factory$1();
631
+ this.set(key, v);
632
+ return v;
633
+ }
634
+ };
635
+
550
636
  //#endregion
551
637
  //#region src/plugins/isMathLike.ts
552
638
  const TEX_BRACE_COMMANDS = [
@@ -665,6 +751,13 @@ const CONTROL_MAP = {
665
751
  "\f": "f",
666
752
  "\v": "v"
667
753
  };
754
+ const DEFAULT_STANDALONE_BACKSLASH_T_RE = new RegExp(`${CONTROL_CHARS_CLASS}|(?<!\\\\|\\w)(${ESCAPED_KATEX_COMMANDS})\\b`, "g");
755
+ const DEFAULT_BRACE_CMD_RE = (() => {
756
+ const combined = [ESCAPED_TEX_BRACE_COMMANDS, ESCAPED_KATEX_COMMANDS].filter(Boolean).join("|");
757
+ return combined ? new RegExp(`(^|[^\\\\\\w])(${combined})\\s*\\{`, "g") : null;
758
+ })();
759
+ const commandsRegexCache = new LRUCache(500);
760
+ const braceCmdRegexCache = new LRUCache(500);
668
761
  function countUnescapedStrong(s) {
669
762
  const re = /(^|[^\\])(__|\*\*)/g;
670
763
  let c = 0;
@@ -676,11 +769,15 @@ function normalizeStandaloneBackslashT(s, opts) {
676
769
  const escapeExclamation = opts?.escapeExclamation ?? true;
677
770
  const useDefault = opts?.commands == null;
678
771
  let re;
679
- if (useDefault) re = new RegExp(`${CONTROL_CHARS_CLASS}|(?<!\\\\|\\w)(${ESCAPED_KATEX_COMMANDS})\\b`, "g");
772
+ if (useDefault) re = DEFAULT_STANDALONE_BACKSLASH_T_RE;
680
773
  else {
681
- const commandPattern = `(?:${commands.slice().sort((a, b) => b.length - a.length).map((c) => c.replace(/[.*+?^${}()|[\\]\\"\]/g, "\\$&")).join("|")})`;
682
- re = new RegExp(`${CONTROL_CHARS_CLASS}|(?<!\\\\|\\w)(${commandPattern})\\b`, "g");
774
+ const key = commands.slice().sort((a, b) => b.length - a.length).join("|");
775
+ re = commandsRegexCache.getOrCreate(key, () => {
776
+ const commandPattern = `(?:${commands.slice().sort((a, b) => b.length - a.length).map((c) => c.replace(/[.*+?^${}()|[\\]\\"\\\]/g, "\\$&")).join("|")})`;
777
+ return new RegExp(`${CONTROL_CHARS_CLASS}|(?<!\\\\|\\w)(${commandPattern})\\b`, "g");
778
+ });
683
779
  }
780
+ if (re && "lastIndex" in re) re.lastIndex = 0;
684
781
  let out = s.replace(re, (m, cmd) => {
685
782
  if (CONTROL_MAP[m] !== void 0) return `\\${CONTROL_MAP[m]}`;
686
783
  if (cmd && commands.includes(cmd)) return `\\${cmd}`;
@@ -690,8 +787,18 @@ function normalizeStandaloneBackslashT(s, opts) {
690
787
  const braceEscaped = useDefault ? [ESCAPED_TEX_BRACE_COMMANDS, ESCAPED_KATEX_COMMANDS].filter(Boolean).join("|") : [commands.map((c) => c.replace(/[.*+?^${}()|[\\]\\\]/g, "\\$&")).join("|"), ESCAPED_TEX_BRACE_COMMANDS].filter(Boolean).join("|");
691
788
  let result = out;
692
789
  if (braceEscaped) {
693
- const braceCmdRe = new RegExp(`(^|[^\\\\\\w])(${braceEscaped})\\s*\\{`, "g");
694
- result = result.replace(braceCmdRe, (_m, p1, p2) => `${p1}\\${p2}{`);
790
+ let braceCmdRe = null;
791
+ if (useDefault && DEFAULT_BRACE_CMD_RE) braceCmdRe = DEFAULT_BRACE_CMD_RE;
792
+ else {
793
+ const key = commands.slice().sort((a, b) => b.length - a.length).join("|");
794
+ const combined = [commands.map((c) => c.replace(/[.*+?^${}()|[\\]\\"\]/g, "\\$&")).join("|"), ESCAPED_TEX_BRACE_COMMANDS].filter(Boolean).join("|");
795
+ if (combined) braceCmdRe = braceCmdRegexCache.getOrCreate(key, () => new RegExp(`(^|[^\\\\\\w])(${combined})\\s*\\{`, "g"));
796
+ else braceCmdRe = null;
797
+ }
798
+ if (braceCmdRe) {
799
+ if ("lastIndex" in braceCmdRe) braceCmdRe.lastIndex = 0;
800
+ result = result.replace(braceCmdRe, (_m, p1, p2) => `${p1}\\${p2}{`);
801
+ }
695
802
  }
696
803
  result = result.replace(/span\{([^}]+)\}/, "span\\{$1\\}").replace(/\\operatorname\{span\}\{((?:[^{}]|\{[^}]*\})+)\}/, "\\operatorname{span}\\{$1\\}");
697
804
  result = result.replace(/(^|[^\\])\\\r?\n/g, "$1\\\\\n");
@@ -986,6 +1093,7 @@ function factory(opts = {}) {
986
1093
  applyFixListItem(md);
987
1094
  applyFixTableTokens(md);
988
1095
  applyRenderRules(md);
1096
+ applyFixHtmlInlineTokens(md);
989
1097
  return md;
990
1098
  }
991
1099
 
@@ -1444,6 +1552,12 @@ function isLikelyUrl(href) {
1444
1552
  if (!href) return false;
1445
1553
  return AUTOLINK_PROTOCOL_RE.test(href) || AUTOLINK_GENERIC_RE.test(href);
1446
1554
  }
1555
+ function escapeRegExp(str) {
1556
+ return str.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
1557
+ }
1558
+ const bracketRegexCache = new LRUCache(500);
1559
+ const parenHrefRegexCache = new LRUCache(500);
1560
+ const linkMatchRegexCache = new LRUCache(500);
1447
1561
  function parseInlineTokens(tokens, raw, pPreToken) {
1448
1562
  if (!tokens || tokens.length === 0) return [];
1449
1563
  const result = [];
@@ -1876,13 +1990,10 @@ function parseInlineTokens(tokens, raw, pPreToken) {
1876
1990
  function handleLinkOpen(token) {
1877
1991
  resetCurrentTextNode();
1878
1992
  const href = token.attrs?.find(([name]) => name === "href")?.[1];
1879
- function escapeRegExp(str) {
1880
- return str.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
1881
- }
1882
1993
  if (raw && tokens[i + 1].type === "text") {
1883
1994
  const text = String(tokens[i + 1]?.content ?? "");
1884
1995
  const escText = escapeRegExp(text);
1885
- if (!(/* @__PURE__ */ new RegExp(`\\[${escText}\\s*\\]`)).test(raw)) {
1996
+ if (!bracketRegexCache.getOrCreate(escText, () => /* @__PURE__ */ new RegExp(`\\[${escText}\\s*\\]`)).test(raw)) {
1886
1997
  const hrefAttr$1 = token.attrs?.find(([name]) => name === "href")?.[1] ?? "";
1887
1998
  if (!raw.includes("[") && isLikelyUrl(String(hrefAttr$1))) {
1888
1999
  resetCurrentTextNode();
@@ -1907,7 +2018,11 @@ function parseInlineTokens(tokens, raw, pPreToken) {
1907
2018
  }
1908
2019
  }
1909
2020
  if (raw && href) {
1910
- const loadingMath = /* @__PURE__ */ new RegExp(`\\(\\s*${escapeRegExp(href)}\\s*\\)`);
2021
+ const hrefStrLocal = String(href);
2022
+ const loadingMath = parenHrefRegexCache.getOrCreate(hrefStrLocal, () => {
2023
+ const escHref = escapeRegExp(hrefStrLocal);
2024
+ return /* @__PURE__ */ new RegExp(`\\(\\s*${escHref}\\s*\\)`);
2025
+ });
1911
2026
  const pre = result.length > 0 ? result[result.length - 1] : void 0;
1912
2027
  const loading = !loadingMath.test(raw);
1913
2028
  if (loading && pre) {
@@ -1917,7 +2032,7 @@ function parseInlineTokens(tokens, raw, pPreToken) {
1917
2032
  else if (pre.type === "text") preText = String(pre.content ?? "");
1918
2033
  else if (pre.content && typeof pre.content === "string") preText = String(pre.content ?? "").slice(1, -1);
1919
2034
  }
1920
- if ((/* @__PURE__ */ new RegExp(`\\[${escapeRegExp(preText)}\\s*\\]\\(`)).test(raw)) {
2035
+ if (linkMatchRegexCache.getOrCreate(preText, () => /* @__PURE__ */ new RegExp(`\\[${escapeRegExp(preText)}\\s*\\]\\(`)).test(raw)) {
1921
2036
  const text = String(preText ?? "");
1922
2037
  resetCurrentTextNode();
1923
2038
  const node$1 = {
@@ -2455,6 +2570,7 @@ function parseAdmonition(tokens, index, match) {
2455
2570
 
2456
2571
  //#endregion
2457
2572
  //#region src/parser/node-parsers/container-parser.ts
2573
+ const containerCloseTypeCache = new LRUCache(50);
2458
2574
  function parseContainer(tokens, index) {
2459
2575
  const openToken = tokens[index];
2460
2576
  let kind = "note";
@@ -2464,7 +2580,9 @@ function parseContainer(tokens, index) {
2464
2580
  kind = typeMatch[1];
2465
2581
  const info = String(openToken.info ?? "").trim();
2466
2582
  if (info && !info.startsWith(":::")) {
2467
- const maybe = info.replace(/* @__PURE__ */ new RegExp(`^${kind}`), "").trim();
2583
+ let maybe = info;
2584
+ if (maybe.startsWith(kind)) maybe = maybe.slice(kind.length).trim();
2585
+ maybe = maybe.trim();
2468
2586
  if (maybe) title = maybe;
2469
2587
  }
2470
2588
  } else {
@@ -2478,7 +2596,8 @@ function parseContainer(tokens, index) {
2478
2596
  if (!title) title = kind.charAt(0).toUpperCase() + kind.slice(1);
2479
2597
  const children = [];
2480
2598
  let j = index + 1;
2481
- const closeType = /* @__PURE__ */ new RegExp(`^container_${kind}_close$`);
2599
+ const key = kind;
2600
+ const closeType = containerCloseTypeCache.getOrCreate(key, () => /* @__PURE__ */ new RegExp(`^container_${kind}_close$`));
2482
2601
  while (j < tokens.length && tokens[j].type !== "container_close" && !closeType.test(tokens[j].type)) if (tokens[j].type === "paragraph_open") {
2483
2602
  const contentToken = tokens[j + 1];
2484
2603
  if (contentToken) {
@@ -2524,13 +2643,51 @@ function parseHardBreak() {
2524
2643
 
2525
2644
  //#endregion
2526
2645
  //#region src/parser/node-parsers/html-block-parser.ts
2646
+ const htmlCloseTagRegexCache = new LRUCache(200);
2527
2647
  function parseHtmlBlock(token) {
2528
- return {
2648
+ const raw = String(token.content ?? "");
2649
+ if (/^\s*<!--/.test(raw) || /^\s*<!/.test(raw) || /^\s*<\?/.test(raw)) return {
2529
2650
  type: "html_block",
2530
- content: String(token.content ?? ""),
2531
- raw: String(token.content ?? ""),
2651
+ content: raw,
2652
+ raw,
2653
+ tag: "",
2654
+ loading: false
2655
+ };
2656
+ const tag = (raw.match(/^\s*<([A-Z][\w:-]*)/i)?.[1] || "").toLowerCase();
2657
+ if (!tag) return {
2658
+ type: "html_block",
2659
+ content: raw,
2660
+ raw,
2661
+ tag: "",
2532
2662
  loading: false
2533
2663
  };
2664
+ const VOID_TAGS = new Set([
2665
+ "area",
2666
+ "base",
2667
+ "br",
2668
+ "col",
2669
+ "embed",
2670
+ "hr",
2671
+ "img",
2672
+ "input",
2673
+ "link",
2674
+ "meta",
2675
+ "param",
2676
+ "source",
2677
+ "track",
2678
+ "wbr"
2679
+ ]);
2680
+ const selfClosing = /^\s*<[^>]*\/\s*>/.test(raw);
2681
+ const isVoid = VOID_TAGS.has(tag);
2682
+ const hasClosing = htmlCloseTagRegexCache.getOrCreate(tag, () => new RegExp(`<\\/\\s*${tag}\\b`, "i")).test(raw);
2683
+ const loading = !(isVoid || selfClosing || hasClosing);
2684
+ return {
2685
+ type: "html_block",
2686
+ content: loading ? `${raw.replace(/<[^>]*$/, "")}\n</${tag}>` : raw,
2687
+ raw,
2688
+ tag,
2689
+ loading
2690
+ };
2534
2691
  }
2535
2692
 
2536
2693
  //#endregion