stream-markdown-parser 0.0.32 → 0.0.34
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 +216 -243
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
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":";;;UAYiB,cAAA,SAAuB;sBAClB;;EADL,gBAAA,CAAe,EAAA,OAAA;;;;ECVf,CAAA;AAQjB;;;UARiB,QAAA;;EDUA,GAAA,EAAA,MAAA;;;;ACVjB;AAQiB,UAAA,QAAA,SAAiB,QAAQ,CAAA;EAMzB,IAAA,EAAA,MAAA;EAOA,OAAA,EAAA,MAAA;EAMA,MAAA,CAAA,EAAA,OAAW;AAM5B;AAQiB,UA3BA,WAAA,SAAoB,QA2BC,CAAA;EAKrB,IAAA,EAAA,SAAA;EAiBA,KAAA,EAAA,MAAA;EAOA,IAAA,EAAA,MAAA;EAMA,QAAA,EA1DL,UA0DoB,EAAA;AAKhC;AAQiB,UApEA,aAAA,SAAsB,QAoEI,CAAA;EAO1B,IAAA,EAAA,WAAA;EAIA,QAAA,EA7EL,UA6EqB,EAAA;EASrB,aAAA,CAAA,EAAA,OAAc;AAS1B;AAKiB,UAhGA,UAAA,SAAmB,QAgGT,CAAA;EAEjB,IAAA,EAAA,QAAA;EACF,QAAA,EAjGI,UAiGJ,EAAA;EAH2B,OAAA,CAAA,EAAA,MAAA;;AAMlB,UAhGA,QAAA,SAAiB,QAkGzB,CAAA;EAGQ,IAAA,EAAA,MAAA;EAOA,OAAA,EAAA,OAAA;EAKA,KAAA,CAAA,EAAA,MAAA;EAET,KAAA,EA9GC,YA8GD,EAAA;;AAFoC,UAzG3B,YAAA,SAAqB,QAyGM,CAAA;EAAQ,IAAA,EAAA,WAAA;EAMnC,QAAA,EA7GL,UA6GkB,EAAA;AAM9B;AAKiB,UArHA,aAAA,SAAsB,QAqHa,CAAA;EAKnC,IAAA,EAAA,YAAe;EAOf,QAAA,EAAA,MAAW;EAKX,IAAA,EAAA,MAAA;EAKA,SAAA,CAAA,EAAA,MAAA;EAKA,OAAA,CAAA,EAAA,MAAc;EAKd,OAAA,CAAA,EAAA,OAAW;EAKX,IAAA,CAAA,EAAA,OAAA;EAKA,YAAA,CAAA,EAAA,MAAgB;EAKhB,WAAA,CAAA,EAAA,MAAa;EAKb,GAAA,EAAA,MAAA;AAKjB;AAMiB,UAnKA,aAAA,SAAsB,QAmKQ,CAAA;EAI9B,IAAA,EAAA,YAAe;EAKf,KAAA,CAAA,EAAA,CAAA,MAAA,EAAc,MAAA,CAAA,EAAA,GAAQ,IAAA;EAKtB,GAAA,EAAA,MAAA;EAMA,OAAA,EAAA,MAAA;AAkBjB;AAEY,UApMK,cAAA,SAAuB,QAoMlB,CAAA;EAChB,IAAA,EAAA,aAAA;EACA,OAAA,EAAA,MAAA;EACA,QAAA,EApMM,UAoMN,EAAA;;AAEA,UAnMW,cAAA,SAAuB,QAmMlC,CAAA;EACA,IAAA,EAAA,aAAA;EACA,IAAA,EAAA,MAAA;;AAEA,UAlMW,QAAA,SAAiB,QAkM5B,CAAA;EACA,IAAA,EAAA,MAAA;EACA,IAAA,EAAA,MAAA;EACA,KAAA,EAAA,MAAA,GAAA,IAAA;EACA,IAAA,EAAA,MAAA;EACA,QAAA,EAlMM,UAkMN,EAAA;;AAEA,UAjMW,SAAA,SAAkB,QAiM7B,CAAA;EACA,IAAA,EAAA,OAAA;EACA,GAAA,EAAA,MAAA;EACA,GAAA,EAAA,MAAA;EACA,KAAA,EAAA,MAAA,GAAA,IAAA;;AAEA,UAhMW,iBAAA,SAA0B,QAgMrC,CAAA;EACA,IAAA,EAAA,gBAAA;;AAEA,UA/LW,gBAAA,CA+LX;EACA,IAAA,EAAA;IACA,IAAA,EAAA,YAAA;IACA,QAAA,EAAA,MAAA;IACA,IAAA,EAAA,MAAA;IACA,OAAA,CAAA,EAAA,OAAA;EACA,CAAA;;AAEA,KA9LM,cAAA,GA8LN;EACA,OAAA,EAAA,MAAA;EACA,KAAA,CAAA,EAAA,SAAA;CAAM,GAAA;EACK,OAAA,CAAA,EAAA,SAAgB;EAkCrB,KAAA,EA5ND,QA4NC,EAAA;AAEZ,CAAA;AAOY,UAnOK,cAAA,SAAuB,QAmOK,CAAA;;YAjOjC;;ACjFI,UDoFC,SAAA,SAAkB,QCpFF,CAAA;EACvB,IAAA,EAAA,OAAA;EAEI,MAAA,EDmFJ,YCnFI;EAEX,IAAA,EDkFK,YClFL,EAAA;;UDqFc,YAAA,SAAqB;;SAE7B;
|
|
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
|
@@ -6806,7 +6806,6 @@ function applyContainers(md) {
|
|
|
6806
6806
|
contentLines.push(s.src.slice(sPos, ePos));
|
|
6807
6807
|
}
|
|
6808
6808
|
s.push("paragraph_open", "p", 1);
|
|
6809
|
-
debugger;
|
|
6810
6809
|
const inlineToken = s.push("inline", "", 0);
|
|
6811
6810
|
inlineToken.content = contentLines.join("\n");
|
|
6812
6811
|
inlineToken.map = [startLine + 1, nextLine];
|
|
@@ -7788,7 +7787,14 @@ const WORDS_RE = /\b(?:sin|cos|tan|log|ln|exp|sqrt|frac|sum|lim|int|prod)\b/;
|
|
|
7788
7787
|
const DATE_TIME_RE = /\b\d{4}\/\d{1,2}\/\d{1,2}(?:[ T]\d{1,2}:\d{2}(?::\d{2})?)?\b/;
|
|
7789
7788
|
function isMathLike(s) {
|
|
7790
7789
|
if (!s) return false;
|
|
7791
|
-
const norm = s.replace(
|
|
7790
|
+
const norm = s.replace(/[\u0008\v\f]/g, (ch) => {
|
|
7791
|
+
switch (ch) {
|
|
7792
|
+
case "\b": return "\\b";
|
|
7793
|
+
case "\v": return "\\v";
|
|
7794
|
+
case "\f": return "\\f";
|
|
7795
|
+
default: return ch;
|
|
7796
|
+
}
|
|
7797
|
+
});
|
|
7792
7798
|
const stripped = norm.trim();
|
|
7793
7799
|
if (DATE_TIME_RE.test(stripped)) return false;
|
|
7794
7800
|
if (stripped.includes("**")) return false;
|
|
@@ -7833,6 +7839,7 @@ const KATEX_COMMANDS = [
|
|
|
7833
7839
|
"mathbb",
|
|
7834
7840
|
"mathcal",
|
|
7835
7841
|
"mathfrak",
|
|
7842
|
+
"implies",
|
|
7836
7843
|
"alpha",
|
|
7837
7844
|
"beta",
|
|
7838
7845
|
"gamma",
|
|
@@ -8069,13 +8076,11 @@ function applyMath(md, mathOpts) {
|
|
|
8069
8076
|
const isBeforeClose = raw.startsWith("*");
|
|
8070
8077
|
if (isBeforeClose) s.push("strong_close", "", 0);
|
|
8071
8078
|
if (raw) {
|
|
8072
|
-
|
|
8073
|
-
|
|
8079
|
+
s.pos = endIdx + close.length;
|
|
8080
|
+
searchPos = s.pos;
|
|
8081
|
+
preMathPos = searchPos;
|
|
8074
8082
|
}
|
|
8075
8083
|
if (!isBeforeClose) s.push("strong_close", "", 0);
|
|
8076
|
-
s.pos = src.length;
|
|
8077
|
-
searchPos = src.length;
|
|
8078
|
-
preMathPos = searchPos;
|
|
8079
8084
|
continue;
|
|
8080
8085
|
} else {
|
|
8081
8086
|
const token = s.push("math_inline", "math", 0);
|
|
@@ -9139,7 +9144,7 @@ function parseInlineTokens(tokens, raw, pPreToken, options) {
|
|
|
9139
9144
|
pushNode(parseFootnoteRefToken(token));
|
|
9140
9145
|
i++;
|
|
9141
9146
|
break;
|
|
9142
|
-
case "footnote_anchor":
|
|
9147
|
+
case "footnote_anchor": {
|
|
9143
9148
|
resetCurrentTextNode();
|
|
9144
9149
|
const meta = token.meta ?? {};
|
|
9145
9150
|
pushParsed({
|
|
@@ -9149,6 +9154,7 @@ function parseInlineTokens(tokens, raw, pPreToken, options) {
|
|
|
9149
9154
|
});
|
|
9150
9155
|
i++;
|
|
9151
9156
|
break;
|
|
9157
|
+
}
|
|
9152
9158
|
case "hardbreak":
|
|
9153
9159
|
resetCurrentTextNode();
|
|
9154
9160
|
pushNode(parseHardbreakToken());
|
|
@@ -9288,7 +9294,7 @@ function parseInlineTokens(tokens, raw, pPreToken, options) {
|
|
|
9288
9294
|
text$1 += String(tokens[i]?.content || "");
|
|
9289
9295
|
i++;
|
|
9290
9296
|
}
|
|
9291
|
-
|
|
9297
|
+
const loading = tokens[i].type !== "link_close";
|
|
9292
9298
|
pushParsed({
|
|
9293
9299
|
type: "link",
|
|
9294
9300
|
href: String(hrefAttr$1),
|
|
@@ -9562,31 +9568,6 @@ function normalizeSingleLinkResult(raw, nodes) {
|
|
|
9562
9568
|
return nodes;
|
|
9563
9569
|
}
|
|
9564
9570
|
|
|
9565
|
-
//#endregion
|
|
9566
|
-
//#region src/parser/node-parsers/blockquote-parser.ts
|
|
9567
|
-
function parseBlockquote(tokens, index, options) {
|
|
9568
|
-
const blockquoteChildren = [];
|
|
9569
|
-
let j = index + 1;
|
|
9570
|
-
while (j < tokens.length && tokens[j].type !== "blockquote_close") if (tokens[j].type === "paragraph_open") {
|
|
9571
|
-
const contentToken = tokens[j + 1];
|
|
9572
|
-
blockquoteChildren.push({
|
|
9573
|
-
type: "paragraph",
|
|
9574
|
-
children: parseInlineTokens(contentToken.children || [], String(contentToken.content ?? ""), void 0, { requireClosingStrong: options?.requireClosingStrong }),
|
|
9575
|
-
raw: String(contentToken.content ?? "")
|
|
9576
|
-
});
|
|
9577
|
-
j += 3;
|
|
9578
|
-
} else if (tokens[j].type === "bullet_list_open" || tokens[j].type === "ordered_list_open") {
|
|
9579
|
-
const [listNode, newIndex] = parseList(tokens, j);
|
|
9580
|
-
blockquoteChildren.push(listNode);
|
|
9581
|
-
j = newIndex;
|
|
9582
|
-
} else j++;
|
|
9583
|
-
return [{
|
|
9584
|
-
type: "blockquote",
|
|
9585
|
-
children: blockquoteChildren,
|
|
9586
|
-
raw: blockquoteChildren.map((child) => child.raw).join("\n")
|
|
9587
|
-
}, j + 1];
|
|
9588
|
-
}
|
|
9589
|
-
|
|
9590
9571
|
//#endregion
|
|
9591
9572
|
//#region src/parser/node-parsers/code-block-parser.ts
|
|
9592
9573
|
function parseCodeBlock(token) {
|
|
@@ -9688,6 +9669,60 @@ function parseHeading(tokens, index, options) {
|
|
|
9688
9669
|
};
|
|
9689
9670
|
}
|
|
9690
9671
|
|
|
9672
|
+
//#endregion
|
|
9673
|
+
//#region src/parser/node-parsers/html-block-parser.ts
|
|
9674
|
+
const VOID_TAGS = new Set([
|
|
9675
|
+
"area",
|
|
9676
|
+
"base",
|
|
9677
|
+
"br",
|
|
9678
|
+
"col",
|
|
9679
|
+
"embed",
|
|
9680
|
+
"hr",
|
|
9681
|
+
"img",
|
|
9682
|
+
"input",
|
|
9683
|
+
"link",
|
|
9684
|
+
"meta",
|
|
9685
|
+
"param",
|
|
9686
|
+
"source",
|
|
9687
|
+
"track",
|
|
9688
|
+
"wbr"
|
|
9689
|
+
]);
|
|
9690
|
+
const CLOSE_TAG_RE_CACHE = /* @__PURE__ */ new Map();
|
|
9691
|
+
function parseHtmlBlock(token) {
|
|
9692
|
+
const raw = String(token.content ?? "");
|
|
9693
|
+
if (/^\s*<!--/.test(raw) || /^\s*<!/.test(raw) || /^\s*<\?/.test(raw)) return {
|
|
9694
|
+
type: "html_block",
|
|
9695
|
+
content: raw,
|
|
9696
|
+
raw,
|
|
9697
|
+
tag: "",
|
|
9698
|
+
loading: false
|
|
9699
|
+
};
|
|
9700
|
+
const tag = (raw.match(/^\s*<([A-Z][\w:-]*)/i)?.[1] || "").toLowerCase();
|
|
9701
|
+
if (!tag) return {
|
|
9702
|
+
type: "html_block",
|
|
9703
|
+
content: raw,
|
|
9704
|
+
raw,
|
|
9705
|
+
tag: "",
|
|
9706
|
+
loading: false
|
|
9707
|
+
};
|
|
9708
|
+
const selfClosing = /^\s*<[^>]*\/\s*>/.test(raw);
|
|
9709
|
+
const isVoid = VOID_TAGS.has(tag);
|
|
9710
|
+
let closeRe = CLOSE_TAG_RE_CACHE.get(tag);
|
|
9711
|
+
if (!closeRe) {
|
|
9712
|
+
closeRe = new RegExp(`<\\/\\s*${tag}\\b`, "i");
|
|
9713
|
+
CLOSE_TAG_RE_CACHE.set(tag, closeRe);
|
|
9714
|
+
}
|
|
9715
|
+
const hasClosing = closeRe.test(raw);
|
|
9716
|
+
const loading = !(isVoid || selfClosing || hasClosing);
|
|
9717
|
+
return {
|
|
9718
|
+
type: "html_block",
|
|
9719
|
+
content: loading ? `${raw.replace(/<[^>]*$/, "")}\n</${tag}>` : raw,
|
|
9720
|
+
raw,
|
|
9721
|
+
tag,
|
|
9722
|
+
loading
|
|
9723
|
+
};
|
|
9724
|
+
}
|
|
9725
|
+
|
|
9691
9726
|
//#endregion
|
|
9692
9727
|
//#region src/parser/node-parsers/math-block-parser.ts
|
|
9693
9728
|
function parseMathBlock(token) {
|
|
@@ -9776,6 +9811,57 @@ function parseThematicBreak() {
|
|
|
9776
9811
|
};
|
|
9777
9812
|
}
|
|
9778
9813
|
|
|
9814
|
+
//#endregion
|
|
9815
|
+
//#region src/parser/node-parsers/block-token-parser.ts
|
|
9816
|
+
function parseBasicBlockToken(tokens, index, options) {
|
|
9817
|
+
const token = tokens[index];
|
|
9818
|
+
switch (token.type) {
|
|
9819
|
+
case "heading_open": return [parseHeading(tokens, index, options), index + 3];
|
|
9820
|
+
case "code_block": return [parseCodeBlock(token), index + 1];
|
|
9821
|
+
case "fence": return [parseFenceToken(token), index + 1];
|
|
9822
|
+
case "math_block": return [parseMathBlock(token), index + 1];
|
|
9823
|
+
case "html_block": return [parseHtmlBlock(token), index + 1];
|
|
9824
|
+
case "table_open": {
|
|
9825
|
+
const [tableNode, newIndex] = parseTable(tokens, index, options);
|
|
9826
|
+
return [tableNode, newIndex];
|
|
9827
|
+
}
|
|
9828
|
+
case "dl_open": {
|
|
9829
|
+
const [definitionListNode, newIndex] = parseDefinitionList(tokens, index, options);
|
|
9830
|
+
return [definitionListNode, newIndex];
|
|
9831
|
+
}
|
|
9832
|
+
case "footnote_open": {
|
|
9833
|
+
const [footnoteNode, newIndex] = parseFootnote(tokens, index, options);
|
|
9834
|
+
return [footnoteNode, newIndex];
|
|
9835
|
+
}
|
|
9836
|
+
case "hr": return [parseThematicBreak(), index + 1];
|
|
9837
|
+
default: break;
|
|
9838
|
+
}
|
|
9839
|
+
return null;
|
|
9840
|
+
}
|
|
9841
|
+
function parseCommonBlockToken(tokens, index, options, handlers) {
|
|
9842
|
+
const basicResult = parseBasicBlockToken(tokens, index, options);
|
|
9843
|
+
if (basicResult) return basicResult;
|
|
9844
|
+
switch (tokens[index].type) {
|
|
9845
|
+
case "container_warning_open":
|
|
9846
|
+
case "container_info_open":
|
|
9847
|
+
case "container_note_open":
|
|
9848
|
+
case "container_tip_open":
|
|
9849
|
+
case "container_danger_open":
|
|
9850
|
+
case "container_caution_open":
|
|
9851
|
+
case "container_error_open":
|
|
9852
|
+
if (handlers?.parseContainer) return handlers.parseContainer(tokens, index, options);
|
|
9853
|
+
break;
|
|
9854
|
+
case "container_open":
|
|
9855
|
+
if (handlers?.matchAdmonition) {
|
|
9856
|
+
const result = handlers.matchAdmonition(tokens, index, options);
|
|
9857
|
+
if (result) return result;
|
|
9858
|
+
}
|
|
9859
|
+
break;
|
|
9860
|
+
default: break;
|
|
9861
|
+
}
|
|
9862
|
+
return null;
|
|
9863
|
+
}
|
|
9864
|
+
|
|
9779
9865
|
//#endregion
|
|
9780
9866
|
//#region src/parser/node-parsers/list-parser.ts
|
|
9781
9867
|
function parseList(tokens, index, options) {
|
|
@@ -9800,49 +9886,20 @@ function parseList(tokens, index, options) {
|
|
|
9800
9886
|
});
|
|
9801
9887
|
k += 3;
|
|
9802
9888
|
} else if (tokens[k].type === "blockquote_open") {
|
|
9803
|
-
const [blockquoteNode, newIndex] = parseBlockquote(tokens, k);
|
|
9889
|
+
const [blockquoteNode, newIndex] = parseBlockquote(tokens, k, options);
|
|
9804
9890
|
itemChildren.push(blockquoteNode);
|
|
9805
9891
|
k = newIndex;
|
|
9806
9892
|
} else if (tokens[k].type === "bullet_list_open" || tokens[k].type === "ordered_list_open") {
|
|
9807
|
-
const [nestedListNode, newIndex] =
|
|
9893
|
+
const [nestedListNode, newIndex] = parseList(tokens, k, options);
|
|
9808
9894
|
itemChildren.push(nestedListNode);
|
|
9809
9895
|
k = newIndex;
|
|
9810
|
-
} else
|
|
9811
|
-
|
|
9812
|
-
|
|
9813
|
-
|
|
9814
|
-
|
|
9815
|
-
k += 1;
|
|
9816
|
-
} else if (tokens[k].type === "math_block") {
|
|
9817
|
-
itemChildren.push(parseMathBlock(tokens[k]));
|
|
9818
|
-
k += 1;
|
|
9819
|
-
} else if (tokens[k].type === "table_open") {
|
|
9820
|
-
const [tableNode, newIndex] = parseTable(tokens, k);
|
|
9821
|
-
itemChildren.push(tableNode);
|
|
9822
|
-
k = newIndex;
|
|
9823
|
-
} else if (tokens[k].type === "dl_open") {
|
|
9824
|
-
const [defListNode, newIndex] = parseDefinitionList(tokens, k);
|
|
9825
|
-
itemChildren.push(defListNode);
|
|
9826
|
-
k = newIndex;
|
|
9827
|
-
} else if (tokens[k].type === "footnote_open") {
|
|
9828
|
-
const [footnoteNode, newIndex] = parseFootnote(tokens, k);
|
|
9829
|
-
itemChildren.push(footnoteNode);
|
|
9830
|
-
k = newIndex;
|
|
9831
|
-
} else if (tokens[k].type === "heading_open") {
|
|
9832
|
-
const headingNode = parseHeading(tokens, k);
|
|
9833
|
-
itemChildren.push(headingNode);
|
|
9834
|
-
k += 3;
|
|
9835
|
-
} else if (tokens[k].type === "hr") {
|
|
9836
|
-
itemChildren.push(parseThematicBreak());
|
|
9837
|
-
k += 1;
|
|
9838
|
-
} else if (tokens[k].type === "container_open") {
|
|
9839
|
-
const match = /^::: ?(warning|info|note|tip|danger|caution) ?(.*)$/.exec(String(tokens[k].info ?? ""));
|
|
9840
|
-
if (match) {
|
|
9841
|
-
const [admonitionNode, newIndex] = parseAdmonition(tokens, k, match);
|
|
9842
|
-
itemChildren.push(admonitionNode);
|
|
9843
|
-
k = newIndex;
|
|
9896
|
+
} else {
|
|
9897
|
+
const handled = parseCommonBlockToken(tokens, k, options, containerTokenHandlers);
|
|
9898
|
+
if (handled) {
|
|
9899
|
+
itemChildren.push(handled[0]);
|
|
9900
|
+
k = handled[1];
|
|
9844
9901
|
} else k += 1;
|
|
9845
|
-
}
|
|
9902
|
+
}
|
|
9846
9903
|
listItems.push({
|
|
9847
9904
|
type: "list_item",
|
|
9848
9905
|
children: itemChildren,
|
|
@@ -9866,59 +9923,6 @@ function parseList(tokens, index, options) {
|
|
|
9866
9923
|
raw: listItems.map((item) => item.raw).join("\n")
|
|
9867
9924
|
}, j + 1];
|
|
9868
9925
|
}
|
|
9869
|
-
function parseNestedList(tokens, index, options) {
|
|
9870
|
-
const nestedToken = tokens[index];
|
|
9871
|
-
const nestedItems = [];
|
|
9872
|
-
let j = index + 1;
|
|
9873
|
-
while (j < tokens.length && tokens[j].type !== "bullet_list_close" && tokens[j].type !== "ordered_list_close") if (tokens[j].type === "list_item_open") {
|
|
9874
|
-
const itemChildren = [];
|
|
9875
|
-
let k = j + 1;
|
|
9876
|
-
while (k < tokens.length && tokens[k].type !== "list_item_close") if (tokens[k].type === "paragraph_open") {
|
|
9877
|
-
const contentToken = tokens[k + 1];
|
|
9878
|
-
const preToken = tokens[k - 1];
|
|
9879
|
-
itemChildren.push({
|
|
9880
|
-
type: "paragraph",
|
|
9881
|
-
children: parseInlineTokens(contentToken.children || [], String(contentToken.content ?? ""), preToken, { requireClosingStrong: options?.requireClosingStrong }),
|
|
9882
|
-
raw: String(contentToken.content ?? "")
|
|
9883
|
-
});
|
|
9884
|
-
k += 3;
|
|
9885
|
-
} else if (tokens[k].type === "bullet_list_open" || tokens[k].type === "ordered_list_open") {
|
|
9886
|
-
const [deeperNestedListNode, newIndex] = parseNestedList(tokens, k, options);
|
|
9887
|
-
itemChildren.push(deeperNestedListNode);
|
|
9888
|
-
k = newIndex;
|
|
9889
|
-
} else if (tokens[k].type === "code_block") {
|
|
9890
|
-
itemChildren.push(parseCodeBlock(tokens[k]));
|
|
9891
|
-
k += 1;
|
|
9892
|
-
} else if (tokens[k].type === "fence") {
|
|
9893
|
-
itemChildren.push(parseFenceToken(tokens[k]));
|
|
9894
|
-
k += 1;
|
|
9895
|
-
} else if (tokens[k].type === "math_block") {
|
|
9896
|
-
itemChildren.push(parseMathBlock(tokens[k]));
|
|
9897
|
-
k += 1;
|
|
9898
|
-
} else k += 1;
|
|
9899
|
-
nestedItems.push({
|
|
9900
|
-
type: "list_item",
|
|
9901
|
-
children: itemChildren,
|
|
9902
|
-
raw: itemChildren.map((child) => child.raw).join("")
|
|
9903
|
-
});
|
|
9904
|
-
j = k + 1;
|
|
9905
|
-
} else j += 1;
|
|
9906
|
-
return [{
|
|
9907
|
-
type: "list",
|
|
9908
|
-
ordered: nestedToken.type === "ordered_list_open",
|
|
9909
|
-
start: (() => {
|
|
9910
|
-
if (nestedToken.attrs && nestedToken.attrs.length) {
|
|
9911
|
-
const found = nestedToken.attrs.find((a) => a[0] === "start");
|
|
9912
|
-
if (found) {
|
|
9913
|
-
const parsed = Number(found[1]);
|
|
9914
|
-
return Number.isFinite(parsed) && parsed !== 0 ? parsed : 1;
|
|
9915
|
-
}
|
|
9916
|
-
}
|
|
9917
|
-
})(),
|
|
9918
|
-
items: nestedItems,
|
|
9919
|
-
raw: nestedItems.map((item) => item.raw).join("\n")
|
|
9920
|
-
}, j + 1];
|
|
9921
|
-
}
|
|
9922
9926
|
|
|
9923
9927
|
//#endregion
|
|
9924
9928
|
//#region src/parser/node-parsers/admonition-parser.ts
|
|
@@ -9939,7 +9943,17 @@ function parseAdmonition(tokens, index, match, options) {
|
|
|
9939
9943
|
const [listNode, newIndex] = parseList(tokens, j, options);
|
|
9940
9944
|
admonitionChildren.push(listNode);
|
|
9941
9945
|
j = newIndex;
|
|
9942
|
-
} else j
|
|
9946
|
+
} else if (tokens[j].type === "blockquote_open") {
|
|
9947
|
+
const [blockquoteNode, newIndex] = parseBlockquote(tokens, j, options);
|
|
9948
|
+
admonitionChildren.push(blockquoteNode);
|
|
9949
|
+
j = newIndex;
|
|
9950
|
+
} else {
|
|
9951
|
+
const handled = parseBasicBlockToken(tokens, j, options);
|
|
9952
|
+
if (handled) {
|
|
9953
|
+
admonitionChildren.push(handled[0]);
|
|
9954
|
+
j = handled[1];
|
|
9955
|
+
} else j++;
|
|
9956
|
+
}
|
|
9943
9957
|
return [{
|
|
9944
9958
|
type: "admonition",
|
|
9945
9959
|
kind,
|
|
@@ -9999,7 +10013,17 @@ function parseContainer(tokens, index, options) {
|
|
|
9999
10013
|
const [listNode, newIndex] = parseList(tokens, j, options);
|
|
10000
10014
|
children.push(listNode);
|
|
10001
10015
|
j = newIndex;
|
|
10002
|
-
} else j
|
|
10016
|
+
} else if (tokens[j].type === "blockquote_open") {
|
|
10017
|
+
const [blockquoteNode, newIndex] = parseBlockquote(tokens, j, options);
|
|
10018
|
+
children.push(blockquoteNode);
|
|
10019
|
+
j = newIndex;
|
|
10020
|
+
} else {
|
|
10021
|
+
const handled = parseBasicBlockToken(tokens, j, options);
|
|
10022
|
+
if (handled) {
|
|
10023
|
+
children.push(handled[0]);
|
|
10024
|
+
j = handled[1];
|
|
10025
|
+
} else j++;
|
|
10026
|
+
}
|
|
10003
10027
|
return [{
|
|
10004
10028
|
type: "admonition",
|
|
10005
10029
|
kind,
|
|
@@ -10009,6 +10033,66 @@ function parseContainer(tokens, index, options) {
|
|
|
10009
10033
|
}, j + 1];
|
|
10010
10034
|
}
|
|
10011
10035
|
|
|
10036
|
+
//#endregion
|
|
10037
|
+
//#region src/parser/node-parsers/container-token-handlers.ts
|
|
10038
|
+
const CONTAINER_REGEX = /^::: ?(warning|info|note|tip|danger|caution|error) ?(.*)$/;
|
|
10039
|
+
function handleContainerOpen(tokens, index, options) {
|
|
10040
|
+
const token = tokens[index];
|
|
10041
|
+
if (token.type !== "container_open") return null;
|
|
10042
|
+
const match = CONTAINER_REGEX.exec(String(token.info ?? ""));
|
|
10043
|
+
if (!match) return null;
|
|
10044
|
+
return parseAdmonition(tokens, index, match, options);
|
|
10045
|
+
}
|
|
10046
|
+
const containerTokenHandlers = {
|
|
10047
|
+
parseContainer: (tokens, index, options) => parseContainer(tokens, index, options),
|
|
10048
|
+
matchAdmonition: handleContainerOpen
|
|
10049
|
+
};
|
|
10050
|
+
|
|
10051
|
+
//#endregion
|
|
10052
|
+
//#region src/parser/node-parsers/blockquote-parser.ts
|
|
10053
|
+
function parseBlockquote(tokens, index, options) {
|
|
10054
|
+
const blockquoteChildren = [];
|
|
10055
|
+
let j = index + 1;
|
|
10056
|
+
while (j < tokens.length && tokens[j].type !== "blockquote_close") switch (tokens[j].type) {
|
|
10057
|
+
case "paragraph_open": {
|
|
10058
|
+
const contentToken = tokens[j + 1];
|
|
10059
|
+
blockquoteChildren.push({
|
|
10060
|
+
type: "paragraph",
|
|
10061
|
+
children: parseInlineTokens(contentToken.children || [], String(contentToken.content ?? ""), void 0, { requireClosingStrong: options?.requireClosingStrong }),
|
|
10062
|
+
raw: String(contentToken.content ?? "")
|
|
10063
|
+
});
|
|
10064
|
+
j += 3;
|
|
10065
|
+
break;
|
|
10066
|
+
}
|
|
10067
|
+
case "bullet_list_open":
|
|
10068
|
+
case "ordered_list_open": {
|
|
10069
|
+
const [listNode, newIndex] = parseList(tokens, j, options);
|
|
10070
|
+
blockquoteChildren.push(listNode);
|
|
10071
|
+
j = newIndex;
|
|
10072
|
+
break;
|
|
10073
|
+
}
|
|
10074
|
+
case "blockquote_open": {
|
|
10075
|
+
const [nestedBlockquote, newIndex] = parseBlockquote(tokens, j, options);
|
|
10076
|
+
blockquoteChildren.push(nestedBlockquote);
|
|
10077
|
+
j = newIndex;
|
|
10078
|
+
break;
|
|
10079
|
+
}
|
|
10080
|
+
default: {
|
|
10081
|
+
const handled = parseCommonBlockToken(tokens, j, options, containerTokenHandlers);
|
|
10082
|
+
if (handled) {
|
|
10083
|
+
blockquoteChildren.push(handled[0]);
|
|
10084
|
+
j = handled[1];
|
|
10085
|
+
} else j++;
|
|
10086
|
+
break;
|
|
10087
|
+
}
|
|
10088
|
+
}
|
|
10089
|
+
return [{
|
|
10090
|
+
type: "blockquote",
|
|
10091
|
+
children: blockquoteChildren,
|
|
10092
|
+
raw: blockquoteChildren.map((child) => child.raw).join("\n")
|
|
10093
|
+
}, j + 1];
|
|
10094
|
+
}
|
|
10095
|
+
|
|
10012
10096
|
//#endregion
|
|
10013
10097
|
//#region src/parser/node-parsers/hardbreak-parser.ts
|
|
10014
10098
|
function parseHardBreak() {
|
|
@@ -10018,60 +10102,6 @@ function parseHardBreak() {
|
|
|
10018
10102
|
};
|
|
10019
10103
|
}
|
|
10020
10104
|
|
|
10021
|
-
//#endregion
|
|
10022
|
-
//#region src/parser/node-parsers/html-block-parser.ts
|
|
10023
|
-
const VOID_TAGS = new Set([
|
|
10024
|
-
"area",
|
|
10025
|
-
"base",
|
|
10026
|
-
"br",
|
|
10027
|
-
"col",
|
|
10028
|
-
"embed",
|
|
10029
|
-
"hr",
|
|
10030
|
-
"img",
|
|
10031
|
-
"input",
|
|
10032
|
-
"link",
|
|
10033
|
-
"meta",
|
|
10034
|
-
"param",
|
|
10035
|
-
"source",
|
|
10036
|
-
"track",
|
|
10037
|
-
"wbr"
|
|
10038
|
-
]);
|
|
10039
|
-
const CLOSE_TAG_RE_CACHE = /* @__PURE__ */ new Map();
|
|
10040
|
-
function parseHtmlBlock(token) {
|
|
10041
|
-
const raw = String(token.content ?? "");
|
|
10042
|
-
if (/^\s*<!--/.test(raw) || /^\s*<!/.test(raw) || /^\s*<\?/.test(raw)) return {
|
|
10043
|
-
type: "html_block",
|
|
10044
|
-
content: raw,
|
|
10045
|
-
raw,
|
|
10046
|
-
tag: "",
|
|
10047
|
-
loading: false
|
|
10048
|
-
};
|
|
10049
|
-
const tag = (raw.match(/^\s*<([A-Z][\w:-]*)/i)?.[1] || "").toLowerCase();
|
|
10050
|
-
if (!tag) return {
|
|
10051
|
-
type: "html_block",
|
|
10052
|
-
content: raw,
|
|
10053
|
-
raw,
|
|
10054
|
-
tag: "",
|
|
10055
|
-
loading: false
|
|
10056
|
-
};
|
|
10057
|
-
const selfClosing = /^\s*<[^>]*\/\s*>/.test(raw);
|
|
10058
|
-
const isVoid = VOID_TAGS.has(tag);
|
|
10059
|
-
let closeRe = CLOSE_TAG_RE_CACHE.get(tag);
|
|
10060
|
-
if (!closeRe) {
|
|
10061
|
-
closeRe = new RegExp(`<\\/\\s*${tag}\\b`, "i");
|
|
10062
|
-
CLOSE_TAG_RE_CACHE.set(tag, closeRe);
|
|
10063
|
-
}
|
|
10064
|
-
const hasClosing = closeRe.test(raw);
|
|
10065
|
-
const loading = !(isVoid || selfClosing || hasClosing);
|
|
10066
|
-
return {
|
|
10067
|
-
type: "html_block",
|
|
10068
|
-
content: loading ? `${raw.replace(/<[^>]*$/, "")}\n</${tag}>` : raw,
|
|
10069
|
-
raw,
|
|
10070
|
-
tag,
|
|
10071
|
-
loading
|
|
10072
|
-
};
|
|
10073
|
-
}
|
|
10074
|
-
|
|
10075
10105
|
//#endregion
|
|
10076
10106
|
//#region src/parser/node-parsers/paragraph-parser.ts
|
|
10077
10107
|
function parseParagraph(tokens, index, options) {
|
|
@@ -10114,40 +10144,18 @@ function processTokens(tokens, options) {
|
|
|
10114
10144
|
const result = [];
|
|
10115
10145
|
let i = 0;
|
|
10116
10146
|
while (i < tokens.length) {
|
|
10147
|
+
const handled = parseCommonBlockToken(tokens, i, options, containerTokenHandlers);
|
|
10148
|
+
if (handled) {
|
|
10149
|
+
result.push(handled[0]);
|
|
10150
|
+
i = handled[1];
|
|
10151
|
+
continue;
|
|
10152
|
+
}
|
|
10117
10153
|
const token = tokens[i];
|
|
10118
10154
|
switch (token.type) {
|
|
10119
|
-
case "container_warning_open":
|
|
10120
|
-
case "container_info_open":
|
|
10121
|
-
case "container_note_open":
|
|
10122
|
-
case "container_tip_open":
|
|
10123
|
-
case "container_danger_open":
|
|
10124
|
-
case "container_caution_open":
|
|
10125
|
-
case "container_error_open": {
|
|
10126
|
-
const [warningNode, newIndex] = parseContainer(tokens, i, options);
|
|
10127
|
-
result.push(warningNode);
|
|
10128
|
-
i = newIndex;
|
|
10129
|
-
break;
|
|
10130
|
-
}
|
|
10131
|
-
case "heading_open":
|
|
10132
|
-
result.push(parseHeading(tokens, i, options));
|
|
10133
|
-
i += 3;
|
|
10134
|
-
break;
|
|
10135
10155
|
case "paragraph_open":
|
|
10136
10156
|
result.push(parseParagraph(tokens, i, options));
|
|
10137
10157
|
i += 3;
|
|
10138
10158
|
break;
|
|
10139
|
-
case "html_block":
|
|
10140
|
-
result.push(parseHtmlBlock(token));
|
|
10141
|
-
i += 1;
|
|
10142
|
-
break;
|
|
10143
|
-
case "code_block":
|
|
10144
|
-
result.push(parseCodeBlock(tokens[i]));
|
|
10145
|
-
i += 1;
|
|
10146
|
-
break;
|
|
10147
|
-
case "fence":
|
|
10148
|
-
result.push(parseFenceToken(tokens[i]));
|
|
10149
|
-
i += 1;
|
|
10150
|
-
break;
|
|
10151
10159
|
case "bullet_list_open":
|
|
10152
10160
|
case "ordered_list_open": {
|
|
10153
10161
|
const [listNode, newIndex] = parseList(tokens, i, options);
|
|
@@ -10155,34 +10163,12 @@ function processTokens(tokens, options) {
|
|
|
10155
10163
|
i = newIndex;
|
|
10156
10164
|
break;
|
|
10157
10165
|
}
|
|
10158
|
-
case "hr":
|
|
10159
|
-
result.push(parseThematicBreak());
|
|
10160
|
-
i += 1;
|
|
10161
|
-
break;
|
|
10162
10166
|
case "blockquote_open": {
|
|
10163
10167
|
const [blockquoteNode, newIndex] = parseBlockquote(tokens, i, options);
|
|
10164
10168
|
result.push(blockquoteNode);
|
|
10165
10169
|
i = newIndex;
|
|
10166
10170
|
break;
|
|
10167
10171
|
}
|
|
10168
|
-
case "table_open": {
|
|
10169
|
-
const [tableNode, newIndex] = parseTable(tokens, i, options);
|
|
10170
|
-
result.push(tableNode);
|
|
10171
|
-
i = newIndex;
|
|
10172
|
-
break;
|
|
10173
|
-
}
|
|
10174
|
-
case "dl_open": {
|
|
10175
|
-
const [definitionListNode, newIndex] = parseDefinitionList(tokens, i, options);
|
|
10176
|
-
result.push(definitionListNode);
|
|
10177
|
-
i = newIndex;
|
|
10178
|
-
break;
|
|
10179
|
-
}
|
|
10180
|
-
case "footnote_open": {
|
|
10181
|
-
const [footnoteNode, newIndex] = parseFootnote(tokens, i, options);
|
|
10182
|
-
result.push(footnoteNode);
|
|
10183
|
-
i = newIndex;
|
|
10184
|
-
break;
|
|
10185
|
-
}
|
|
10186
10172
|
case "footnote_anchor": {
|
|
10187
10173
|
const meta = token.meta ?? {};
|
|
10188
10174
|
const id = String(meta.label ?? token.content ?? "");
|
|
@@ -10194,23 +10180,10 @@ function processTokens(tokens, options) {
|
|
|
10194
10180
|
i++;
|
|
10195
10181
|
break;
|
|
10196
10182
|
}
|
|
10197
|
-
case "container_open": {
|
|
10198
|
-
const match = /^::: ?(warning|info|note|tip|danger|caution|error) ?(.*)$/.exec(String(token.info ?? ""));
|
|
10199
|
-
if (match) {
|
|
10200
|
-
const [admonitionNode, newIndex] = parseAdmonition(tokens, i, match, options);
|
|
10201
|
-
result.push(admonitionNode);
|
|
10202
|
-
i = newIndex;
|
|
10203
|
-
} else i += 1;
|
|
10204
|
-
break;
|
|
10205
|
-
}
|
|
10206
10183
|
case "hardbreak":
|
|
10207
10184
|
result.push(parseHardBreak());
|
|
10208
10185
|
i++;
|
|
10209
10186
|
break;
|
|
10210
|
-
case "math_block":
|
|
10211
|
-
result.push(parseMathBlock(tokens[i]));
|
|
10212
|
-
i += 1;
|
|
10213
|
-
break;
|
|
10214
10187
|
case "inline":
|
|
10215
10188
|
result.push(...parseInlineTokens(token.children || [], String(token.content ?? ""), void 0, { requireClosingStrong: options?.requireClosingStrong }));
|
|
10216
10189
|
i += 1;
|