stream-markdown-parser 0.0.18 → 0.0.19
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.map +1 -1
- package/dist/index.js +14 -78
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
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/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
|
@@ -602,37 +602,6 @@ function findMatchingClose(src, startIdx, open, close) {
|
|
|
602
602
|
}
|
|
603
603
|
var findMatchingClose_default = findMatchingClose;
|
|
604
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
|
-
|
|
636
605
|
//#endregion
|
|
637
606
|
//#region src/plugins/isMathLike.ts
|
|
638
607
|
const TEX_BRACE_COMMANDS = [
|
|
@@ -751,13 +720,6 @@ const CONTROL_MAP = {
|
|
|
751
720
|
"\f": "f",
|
|
752
721
|
"\v": "v"
|
|
753
722
|
};
|
|
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);
|
|
761
723
|
function countUnescapedStrong(s) {
|
|
762
724
|
const re = /(^|[^\\])(__|\*\*)/g;
|
|
763
725
|
let c = 0;
|
|
@@ -769,15 +731,11 @@ function normalizeStandaloneBackslashT(s, opts) {
|
|
|
769
731
|
const escapeExclamation = opts?.escapeExclamation ?? true;
|
|
770
732
|
const useDefault = opts?.commands == null;
|
|
771
733
|
let re;
|
|
772
|
-
if (useDefault) re =
|
|
734
|
+
if (useDefault) re = new RegExp(`${CONTROL_CHARS_CLASS}|(?<!\\\\|\\w)(${ESCAPED_KATEX_COMMANDS})\\b`, "g");
|
|
773
735
|
else {
|
|
774
|
-
const
|
|
775
|
-
re =
|
|
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
|
-
});
|
|
736
|
+
const commandPattern = `(?:${commands.slice().sort((a, b) => b.length - a.length).map((c) => c.replace(/[.*+?^${}()|[\\]\\"\]/g, "\\$&")).join("|")})`;
|
|
737
|
+
re = new RegExp(`${CONTROL_CHARS_CLASS}|(?<!\\\\|\\w)(${commandPattern})\\b`, "g");
|
|
779
738
|
}
|
|
780
|
-
if (re && "lastIndex" in re) re.lastIndex = 0;
|
|
781
739
|
let out = s.replace(re, (m, cmd) => {
|
|
782
740
|
if (CONTROL_MAP[m] !== void 0) return `\\${CONTROL_MAP[m]}`;
|
|
783
741
|
if (cmd && commands.includes(cmd)) return `\\${cmd}`;
|
|
@@ -787,18 +745,8 @@ function normalizeStandaloneBackslashT(s, opts) {
|
|
|
787
745
|
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("|");
|
|
788
746
|
let result = out;
|
|
789
747
|
if (braceEscaped) {
|
|
790
|
-
|
|
791
|
-
|
|
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
|
-
}
|
|
748
|
+
const braceCmdRe = new RegExp(`(^|[^\\\\\\w])(${braceEscaped})\\s*\\{`, "g");
|
|
749
|
+
result = result.replace(braceCmdRe, (_m, p1, p2) => `${p1}\\${p2}{`);
|
|
802
750
|
}
|
|
803
751
|
result = result.replace(/span\{([^}]+)\}/, "span\\{$1\\}").replace(/\\operatorname\{span\}\{((?:[^{}]|\{[^}]*\})+)\}/, "\\operatorname{span}\\{$1\\}");
|
|
804
752
|
result = result.replace(/(^|[^\\])\\\r?\n/g, "$1\\\\\n");
|
|
@@ -1552,12 +1500,6 @@ function isLikelyUrl(href) {
|
|
|
1552
1500
|
if (!href) return false;
|
|
1553
1501
|
return AUTOLINK_PROTOCOL_RE.test(href) || AUTOLINK_GENERIC_RE.test(href);
|
|
1554
1502
|
}
|
|
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);
|
|
1561
1503
|
function parseInlineTokens(tokens, raw, pPreToken) {
|
|
1562
1504
|
if (!tokens || tokens.length === 0) return [];
|
|
1563
1505
|
const result = [];
|
|
@@ -1990,10 +1932,13 @@ function parseInlineTokens(tokens, raw, pPreToken) {
|
|
|
1990
1932
|
function handleLinkOpen(token) {
|
|
1991
1933
|
resetCurrentTextNode();
|
|
1992
1934
|
const href = token.attrs?.find(([name]) => name === "href")?.[1];
|
|
1935
|
+
function escapeRegExp(str) {
|
|
1936
|
+
return str.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
1937
|
+
}
|
|
1993
1938
|
if (raw && tokens[i + 1].type === "text") {
|
|
1994
1939
|
const text = String(tokens[i + 1]?.content ?? "");
|
|
1995
1940
|
const escText = escapeRegExp(text);
|
|
1996
|
-
if (!
|
|
1941
|
+
if (!(/* @__PURE__ */ new RegExp(`\\[${escText}\\s*\\]`)).test(raw)) {
|
|
1997
1942
|
const hrefAttr$1 = token.attrs?.find(([name]) => name === "href")?.[1] ?? "";
|
|
1998
1943
|
if (!raw.includes("[") && isLikelyUrl(String(hrefAttr$1))) {
|
|
1999
1944
|
resetCurrentTextNode();
|
|
@@ -2018,11 +1963,7 @@ function parseInlineTokens(tokens, raw, pPreToken) {
|
|
|
2018
1963
|
}
|
|
2019
1964
|
}
|
|
2020
1965
|
if (raw && href) {
|
|
2021
|
-
const
|
|
2022
|
-
const loadingMath = parenHrefRegexCache.getOrCreate(hrefStrLocal, () => {
|
|
2023
|
-
const escHref = escapeRegExp(hrefStrLocal);
|
|
2024
|
-
return /* @__PURE__ */ new RegExp(`\\(\\s*${escHref}\\s*\\)`);
|
|
2025
|
-
});
|
|
1966
|
+
const loadingMath = /* @__PURE__ */ new RegExp(`\\(\\s*${escapeRegExp(href)}\\s*\\)`);
|
|
2026
1967
|
const pre = result.length > 0 ? result[result.length - 1] : void 0;
|
|
2027
1968
|
const loading = !loadingMath.test(raw);
|
|
2028
1969
|
if (loading && pre) {
|
|
@@ -2032,7 +1973,7 @@ function parseInlineTokens(tokens, raw, pPreToken) {
|
|
|
2032
1973
|
else if (pre.type === "text") preText = String(pre.content ?? "");
|
|
2033
1974
|
else if (pre.content && typeof pre.content === "string") preText = String(pre.content ?? "").slice(1, -1);
|
|
2034
1975
|
}
|
|
2035
|
-
if (
|
|
1976
|
+
if ((/* @__PURE__ */ new RegExp(`\\[${escapeRegExp(preText)}\\s*\\]\\(`)).test(raw)) {
|
|
2036
1977
|
const text = String(preText ?? "");
|
|
2037
1978
|
resetCurrentTextNode();
|
|
2038
1979
|
const node$1 = {
|
|
@@ -2570,7 +2511,6 @@ function parseAdmonition(tokens, index, match) {
|
|
|
2570
2511
|
|
|
2571
2512
|
//#endregion
|
|
2572
2513
|
//#region src/parser/node-parsers/container-parser.ts
|
|
2573
|
-
const containerCloseTypeCache = new LRUCache(50);
|
|
2574
2514
|
function parseContainer(tokens, index) {
|
|
2575
2515
|
const openToken = tokens[index];
|
|
2576
2516
|
let kind = "note";
|
|
@@ -2580,9 +2520,7 @@ function parseContainer(tokens, index) {
|
|
|
2580
2520
|
kind = typeMatch[1];
|
|
2581
2521
|
const info = String(openToken.info ?? "").trim();
|
|
2582
2522
|
if (info && !info.startsWith(":::")) {
|
|
2583
|
-
|
|
2584
|
-
if (maybe.startsWith(kind)) maybe = maybe.slice(kind.length).trim();
|
|
2585
|
-
maybe = maybe.trim();
|
|
2523
|
+
const maybe = info.replace(/* @__PURE__ */ new RegExp(`^${kind}`), "").trim();
|
|
2586
2524
|
if (maybe) title = maybe;
|
|
2587
2525
|
}
|
|
2588
2526
|
} else {
|
|
@@ -2596,8 +2534,7 @@ function parseContainer(tokens, index) {
|
|
|
2596
2534
|
if (!title) title = kind.charAt(0).toUpperCase() + kind.slice(1);
|
|
2597
2535
|
const children = [];
|
|
2598
2536
|
let j = index + 1;
|
|
2599
|
-
const
|
|
2600
|
-
const closeType = containerCloseTypeCache.getOrCreate(key, () => /* @__PURE__ */ new RegExp(`^container_${kind}_close$`));
|
|
2537
|
+
const closeType = /* @__PURE__ */ new RegExp(`^container_${kind}_close$`);
|
|
2601
2538
|
while (j < tokens.length && tokens[j].type !== "container_close" && !closeType.test(tokens[j].type)) if (tokens[j].type === "paragraph_open") {
|
|
2602
2539
|
const contentToken = tokens[j + 1];
|
|
2603
2540
|
if (contentToken) {
|
|
@@ -2643,7 +2580,6 @@ function parseHardBreak() {
|
|
|
2643
2580
|
|
|
2644
2581
|
//#endregion
|
|
2645
2582
|
//#region src/parser/node-parsers/html-block-parser.ts
|
|
2646
|
-
const htmlCloseTagRegexCache = new LRUCache(200);
|
|
2647
2583
|
function parseHtmlBlock(token) {
|
|
2648
2584
|
const raw = String(token.content ?? "");
|
|
2649
2585
|
if (/^\s*<!--/.test(raw) || /^\s*<!/.test(raw) || /^\s*<\?/.test(raw)) return {
|
|
@@ -2679,7 +2615,7 @@ function parseHtmlBlock(token) {
|
|
|
2679
2615
|
]);
|
|
2680
2616
|
const selfClosing = /^\s*<[^>]*\/\s*>/.test(raw);
|
|
2681
2617
|
const isVoid = VOID_TAGS.has(tag);
|
|
2682
|
-
const hasClosing =
|
|
2618
|
+
const hasClosing = new RegExp(`<\\/\\s*${tag}\\b`, "i").test(raw);
|
|
2683
2619
|
const loading = !(isVoid || selfClosing || hasClosing);
|
|
2684
2620
|
return {
|
|
2685
2621
|
type: "html_block",
|