stream-markdown-parser 0.0.46 → 0.0.47
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 +8 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +77 -11
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -191,6 +191,12 @@ interface AdmonitionNode extends BaseNode {
|
|
|
191
191
|
title: string;
|
|
192
192
|
children: ParsedNode[];
|
|
193
193
|
}
|
|
194
|
+
interface VmrContainerNode extends BaseNode {
|
|
195
|
+
type: 'vmr_container';
|
|
196
|
+
name: string;
|
|
197
|
+
attrs?: Record<string, string>;
|
|
198
|
+
children: ParsedNode[];
|
|
199
|
+
}
|
|
194
200
|
interface StrongNode extends BaseNode {
|
|
195
201
|
type: 'strong';
|
|
196
202
|
children: ParsedNode[];
|
|
@@ -268,7 +274,7 @@ type MarkdownToken = (Token & {
|
|
|
268
274
|
loading?: boolean;
|
|
269
275
|
raw?: string;
|
|
270
276
|
}) | MarkdownTokenLite;
|
|
271
|
-
type ParsedNode = TextNode | HeadingNode | ParagraphNode | ListNode | ListItemNode | CodeBlockNode | InlineCodeNode | LinkNode | ImageNode | ThematicBreakNode | BlockquoteNode | TableNode | TableRowNode | TableCellNode | StrongNode | EmphasisNode | StrikethroughNode | HighlightNode | InsertNode | SubscriptNode | SuperscriptNode | CheckboxNode | CheckboxInputNode | EmojiNode | DefinitionListNode | DefinitionItemNode | FootnoteNode | FootnoteReferenceNode | AdmonitionNode | HardBreakNode | MathInlineNode | MathBlockNode | ReferenceNode | HtmlBlockNode | HtmlInlineNode | CustomComponentNode | UnknownNode;
|
|
277
|
+
type ParsedNode = TextNode | HeadingNode | ParagraphNode | ListNode | ListItemNode | CodeBlockNode | InlineCodeNode | LinkNode | ImageNode | ThematicBreakNode | BlockquoteNode | TableNode | TableRowNode | TableCellNode | StrongNode | EmphasisNode | StrikethroughNode | HighlightNode | InsertNode | SubscriptNode | SuperscriptNode | CheckboxNode | CheckboxInputNode | EmojiNode | DefinitionListNode | DefinitionItemNode | FootnoteNode | FootnoteReferenceNode | AdmonitionNode | VmrContainerNode | HardBreakNode | MathInlineNode | MathBlockNode | ReferenceNode | HtmlBlockNode | HtmlInlineNode | CustomComponentNode | UnknownNode;
|
|
272
278
|
interface CustomComponents {
|
|
273
279
|
text: unknown;
|
|
274
280
|
paragraph: unknown;
|
|
@@ -391,5 +397,5 @@ interface GetMarkdownOptions extends FactoryOptions {
|
|
|
391
397
|
}
|
|
392
398
|
declare function getMarkdown(msgId?: string, options?: GetMarkdownOptions): MarkdownIt;
|
|
393
399
|
//#endregion
|
|
394
|
-
export { AdmonitionNode, BaseNode, BlockquoteNode, CheckboxInputNode, CheckboxNode, CodeBlockNode, CustomComponentAttrs, CustomComponentNode, CustomComponents, DefinitionItemNode, DefinitionListNode, ESCAPED_TEX_BRACE_COMMANDS, EmojiNode, EmphasisNode, FootnoteAnchorNode, FootnoteNode, FootnoteReferenceNode, GetMarkdownOptions, HardBreakNode, HeadingNode, HighlightNode, HtmlBlockNode, HtmlInlineNode, ImageNode, InlineCodeNode, InlineNode, InsertNode, KATEX_COMMANDS, LinkNode, ListItemNode, ListNode, type MarkdownIt, 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, UnknownNode, applyContainers, applyMath, clearRegisteredMarkdownPlugins, findMatchingClose, getMarkdown, isMathLike, normalizeStandaloneBackslashT, parseFenceToken, parseInlineTokens, parseMarkdownToStructure, processTokens, registerMarkdownPlugin, setDefaultMathOptions };
|
|
400
|
+
export { AdmonitionNode, BaseNode, BlockquoteNode, CheckboxInputNode, CheckboxNode, CodeBlockNode, CustomComponentAttrs, CustomComponentNode, CustomComponents, DefinitionItemNode, DefinitionListNode, ESCAPED_TEX_BRACE_COMMANDS, EmojiNode, EmphasisNode, FootnoteAnchorNode, FootnoteNode, FootnoteReferenceNode, GetMarkdownOptions, HardBreakNode, HeadingNode, HighlightNode, HtmlBlockNode, HtmlInlineNode, ImageNode, InlineCodeNode, InlineNode, InsertNode, KATEX_COMMANDS, LinkNode, ListItemNode, ListNode, type MarkdownIt, 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, UnknownNode, VmrContainerNode, applyContainers, applyMath, clearRegisteredMarkdownPlugins, findMatchingClose, getMarkdown, isMathLike, normalizeStandaloneBackslashT, parseFenceToken, parseInlineTokens, parseMarkdownToStructure, processTokens, registerMarkdownPlugin, setDefaultMathOptions };
|
|
395
401
|
//# 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/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;EAaL;AAEZ;AAMA;AAOA;EAMiB,cAAW,CAAA,EAAA,SAEhB,MAAA,EAAA;AAIZ;;;UAxCiB,QAAA;;EDUA,GAAA,EAAA,MAAA;;;;ACVjB;AAaA;AAEA;AAMA;AAOA;AAMA;AAMiB,KA3BL,WAAA,GAAc,QAgCjB,GAhC4B,MA2BH,CAAA,MAAQ,EAAA,OAAA,CAAA;AAQzB,UAjCA,QAAA,SAAiB,QAmCtB,CAF0B;EAKrB,IAAA,EAAA,MAAA;EAiBA,OAAA,EAAA,MAAA;EAOA,MAAA,CAAA,EAAA,OAAA;AAYjB;AAYiB,UAhFA,WAAA,SAAoB,QAgFA,CAAA;EAK3B,IAAA,EAAA,SAAA;EACG,KAAA,EAAA,MAAA;EANgC,IAAA,EAAA,MAAA;EAAQ,QAAA,EA5EzC,UA4EyC,EAAA;AAUrD;AAKiB,UAxFA,aAAA,SAAsB,QAwFL,CAAQ;EAQzB,IAAA,EAAA,WAAU;EAOV,QAAA,EArGL,UAqGuB,EAAA;EAIlB,aAAA,CAAA,EAAA,OAAgB;AASjC;AASiB,UAvHA,UAAA,SAAmB,QAyHxB,CAF4B;EAKvB,IAAA,EAAA,QAAU;EAEjB,QAAA,EA5HE,UA4HF,EAAA;EACF,OAAA,CAAA,EAAA,MAAA;;AAHmC,UAtH1B,QAAA,SAAiB,QAsHS,CAAA;EAM1B,IAAA,EAAA,MAAA;EAKA,OAAA,EAAA,OAAc;EAOd,KAAA,CAAA,EAAA,MAAA;EAKA,KAAA,EAxIR,YAwIQ,EAAmB;;AAGtB,UAxIG,YAAA,SAAqB,QAwIxB,CAAA;EAH8B,IAAA,EAAA,WAAA;EAAQ,QAAA,EAnIxC,UAmIwC,EAAA;AAMpD;AAMiB,UA5IA,aAAA,SAAsB,QA4IQ,CAAA;EAK9B,IAAA,EAAA,YAAA;EAKA,QAAA,EAAA,MAAA;EAOA,IAAA,EAAA,MAAA;
|
|
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
|
@@ -6751,10 +6751,28 @@ function applyContainers(md) {
|
|
|
6751
6751
|
const s = state;
|
|
6752
6752
|
const startPos = s.bMarks[startLine] + s.tShift[startLine];
|
|
6753
6753
|
const lineMax = s.eMarks[startLine];
|
|
6754
|
-
const
|
|
6755
|
-
|
|
6754
|
+
const line = s.src.slice(startPos, lineMax);
|
|
6755
|
+
const nameMatch = line.match(/^:::(\S+)/);
|
|
6756
|
+
if (!nameMatch) return false;
|
|
6757
|
+
const name = nameMatch[1];
|
|
6758
|
+
if (!name.trim()) return false;
|
|
6759
|
+
const rest = line.slice(nameMatch[0].length);
|
|
6760
|
+
let jsonStr;
|
|
6761
|
+
const trimmedRest = rest.trim();
|
|
6762
|
+
if (trimmedRest.startsWith("{")) {
|
|
6763
|
+
let depth = 0;
|
|
6764
|
+
let jsonEnd = -1;
|
|
6765
|
+
for (let i = 0; i < trimmedRest.length; i++) {
|
|
6766
|
+
if (trimmedRest[i] === "{") depth++;
|
|
6767
|
+
else if (trimmedRest[i] === "}") depth--;
|
|
6768
|
+
if (depth === 0) {
|
|
6769
|
+
jsonEnd = i + 1;
|
|
6770
|
+
break;
|
|
6771
|
+
}
|
|
6772
|
+
}
|
|
6773
|
+
if (jsonEnd > 0) jsonStr = trimmedRest.slice(0, jsonEnd);
|
|
6774
|
+
}
|
|
6756
6775
|
if (silent) return true;
|
|
6757
|
-
const name = markerMatch[1];
|
|
6758
6776
|
let nextLine = startLine + 1;
|
|
6759
6777
|
let found = false;
|
|
6760
6778
|
while (nextLine <= endLine) {
|
|
@@ -6767,20 +6785,29 @@ function applyContainers(md) {
|
|
|
6767
6785
|
nextLine++;
|
|
6768
6786
|
}
|
|
6769
6787
|
if (!found) return false;
|
|
6770
|
-
s.push("vmr_container_open", "div", 1)
|
|
6788
|
+
const tokenOpen = s.push("vmr_container_open", "div", 1);
|
|
6789
|
+
tokenOpen.attrSet("class", `vmr-container vmr-container-${name}`);
|
|
6790
|
+
if (jsonStr) try {
|
|
6791
|
+
const attrs = JSON.parse(jsonStr);
|
|
6792
|
+
for (const [key, value] of Object.entries(attrs)) tokenOpen.attrSet(`data-${key}`, String(value));
|
|
6793
|
+
} catch {
|
|
6794
|
+
tokenOpen.attrSet("data-attrs", jsonStr);
|
|
6795
|
+
}
|
|
6771
6796
|
const contentLines = [];
|
|
6772
6797
|
for (let i = startLine + 1; i < nextLine; i++) {
|
|
6773
6798
|
const sPos = s.bMarks[i] + s.tShift[i];
|
|
6774
6799
|
const ePos = s.eMarks[i];
|
|
6775
6800
|
contentLines.push(s.src.slice(sPos, ePos));
|
|
6776
6801
|
}
|
|
6777
|
-
|
|
6778
|
-
|
|
6779
|
-
|
|
6780
|
-
|
|
6781
|
-
|
|
6782
|
-
|
|
6783
|
-
|
|
6802
|
+
if (contentLines.some((line$1) => line$1.trim().length > 0)) {
|
|
6803
|
+
s.push("paragraph_open", "p", 1);
|
|
6804
|
+
const inlineToken = s.push("inline", "", 0);
|
|
6805
|
+
inlineToken.content = contentLines.join("\n");
|
|
6806
|
+
inlineToken.map = [startLine + 1, nextLine];
|
|
6807
|
+
inlineToken.children = [];
|
|
6808
|
+
s.md.inline.parse(inlineToken.content, s.md, s.env, inlineToken.children);
|
|
6809
|
+
s.push("paragraph_close", "p", -1);
|
|
6810
|
+
}
|
|
6784
6811
|
s.push("vmr_container_close", "div", -1);
|
|
6785
6812
|
s.line = nextLine + 1;
|
|
6786
6813
|
return true;
|
|
@@ -10508,6 +10535,44 @@ function parseThematicBreak() {
|
|
|
10508
10535
|
|
|
10509
10536
|
//#endregion
|
|
10510
10537
|
//#region src/parser/node-parsers/block-token-parser.ts
|
|
10538
|
+
function parseVmrContainer(tokens, index, options) {
|
|
10539
|
+
const attrs = tokens[index].attrs;
|
|
10540
|
+
let name = "";
|
|
10541
|
+
const containerAttrs = {};
|
|
10542
|
+
if (attrs) {
|
|
10543
|
+
for (const [key, value] of attrs) if (key === "class") {
|
|
10544
|
+
const match = value.match(/(?:\s|^)vmr-container-(\S+)/);
|
|
10545
|
+
if (match) name = match[1];
|
|
10546
|
+
} else if (key.startsWith("data-")) {
|
|
10547
|
+
const attrName = key.slice(5);
|
|
10548
|
+
containerAttrs[attrName] = value;
|
|
10549
|
+
}
|
|
10550
|
+
}
|
|
10551
|
+
const children = [];
|
|
10552
|
+
let j = index + 1;
|
|
10553
|
+
while (j < tokens.length && tokens[j].type !== "vmr_container_close") {
|
|
10554
|
+
const handled = parseBasicBlockToken(tokens, j, options);
|
|
10555
|
+
if (handled) {
|
|
10556
|
+
children.push(handled[0]);
|
|
10557
|
+
j = handled[1];
|
|
10558
|
+
} else j++;
|
|
10559
|
+
}
|
|
10560
|
+
let raw = `::: ${name}`;
|
|
10561
|
+
if (Object.keys(containerAttrs).length > 0) raw += ` ${JSON.stringify(containerAttrs)}`;
|
|
10562
|
+
raw += "\n";
|
|
10563
|
+
if (children.length > 0) {
|
|
10564
|
+
raw += children.map((c) => c.raw).join("\n");
|
|
10565
|
+
raw += "\n";
|
|
10566
|
+
}
|
|
10567
|
+
raw += ":::";
|
|
10568
|
+
return [{
|
|
10569
|
+
type: "vmr_container",
|
|
10570
|
+
name,
|
|
10571
|
+
attrs: Object.keys(containerAttrs).length > 0 ? containerAttrs : void 0,
|
|
10572
|
+
children,
|
|
10573
|
+
raw
|
|
10574
|
+
}, j + 1];
|
|
10575
|
+
}
|
|
10511
10576
|
function findTagCloseIndexOutsideQuotes(input) {
|
|
10512
10577
|
let inSingle = false;
|
|
10513
10578
|
let inDouble = false;
|
|
@@ -10683,6 +10748,7 @@ function parseCommonBlockToken(tokens, index, options, handlers) {
|
|
|
10683
10748
|
if (result) return result;
|
|
10684
10749
|
}
|
|
10685
10750
|
break;
|
|
10751
|
+
case "vmr_container_open": return parseVmrContainer(tokens, index, options);
|
|
10686
10752
|
default: break;
|
|
10687
10753
|
}
|
|
10688
10754
|
return null;
|