stream-markdown-parser 0.0.22 → 0.0.24
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 +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +56 -4
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
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":";;;UAaiB,cAAA,SAAuB;sBAClB;;EADL,gBAAA,CAAe,EAAA,OAAA;;;;ECXf,CAAA;AAQjB;;;UARiB,QAAA;;EDWA,GAAA,EAAA,MAAA;;;;ACXjB;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;
|
|
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
|
@@ -96,9 +96,36 @@ const VOID_TAGS$1 = new Set([
|
|
|
96
96
|
function applyFixHtmlInlineTokens(md) {
|
|
97
97
|
md.core.ruler.push("fix_html_inline_tokens", (state) => {
|
|
98
98
|
const toks = state.tokens ?? [];
|
|
99
|
+
const tagStack = [];
|
|
99
100
|
for (let i = 0; i < toks.length; i++) {
|
|
100
101
|
const t = toks[i];
|
|
101
|
-
if (t.type === "html_block"
|
|
102
|
+
if (t.type === "html_block") {
|
|
103
|
+
const tag = t.content?.match(/<([^\s>/]+)/)?.[1] ?? "";
|
|
104
|
+
if (!/<\s*\/\s*[^\s>]+\s*>/.test(t.content || "")) tagStack.push([tag, i]);
|
|
105
|
+
else if (tagStack.length > 0 && tagStack[tagStack.length - 1][0] === tag) tagStack.pop();
|
|
106
|
+
continue;
|
|
107
|
+
} else if (tagStack.length > 0) {
|
|
108
|
+
if (t.type === "paragraph_open" || t.type === "paragraph_close") {
|
|
109
|
+
toks.splice(i, 1);
|
|
110
|
+
i--;
|
|
111
|
+
continue;
|
|
112
|
+
}
|
|
113
|
+
const content = t.content || "";
|
|
114
|
+
const isClosingTag = (/* @__PURE__ */ new RegExp(`<\\s*\\/\\s*${tagStack[tagStack.length - 1][0]}\\s*>`)).test(content);
|
|
115
|
+
if (content) {
|
|
116
|
+
const [, openIndex] = tagStack[tagStack.length - 1];
|
|
117
|
+
const openToken = toks[openIndex];
|
|
118
|
+
openToken.content = `${openToken.content || ""}\n${content}`;
|
|
119
|
+
if (openToken.loading !== false) openToken.loading = !isClosingTag;
|
|
120
|
+
}
|
|
121
|
+
if (isClosingTag) tagStack.pop();
|
|
122
|
+
toks.splice(i, 1);
|
|
123
|
+
i--;
|
|
124
|
+
} else continue;
|
|
125
|
+
}
|
|
126
|
+
for (let i = 0; i < toks.length; i++) {
|
|
127
|
+
const t = toks[i];
|
|
128
|
+
if (t.type === "html_block") {
|
|
102
129
|
const tag = t.content?.match(/<([^\s>/]+)/)?.[1] ?? "";
|
|
103
130
|
if ([
|
|
104
131
|
"br",
|
|
@@ -106,14 +133,19 @@ function applyFixHtmlInlineTokens(md) {
|
|
|
106
133
|
"img",
|
|
107
134
|
"input",
|
|
108
135
|
"link",
|
|
109
|
-
"meta"
|
|
136
|
+
"meta",
|
|
137
|
+
"div",
|
|
138
|
+
"p",
|
|
139
|
+
"ul",
|
|
140
|
+
"li"
|
|
110
141
|
].includes(tag)) continue;
|
|
111
142
|
t.type = "inline";
|
|
143
|
+
const loading = t.content?.includes(`</${tag}>`) ? false : t.loading !== void 0 ? t.loading : true;
|
|
112
144
|
t.children = [{
|
|
113
145
|
type: "html_block",
|
|
114
146
|
content: t.content,
|
|
115
147
|
tag: t.content?.match(/<([^\s>/]+)/)?.[1] ?? "",
|
|
116
|
-
loading
|
|
148
|
+
loading
|
|
117
149
|
}];
|
|
118
150
|
continue;
|
|
119
151
|
}
|
|
@@ -2551,6 +2583,20 @@ function parseMathBlock(token) {
|
|
|
2551
2583
|
|
|
2552
2584
|
//#endregion
|
|
2553
2585
|
//#region src/parser/node-parsers/table-parser.ts
|
|
2586
|
+
function extractAlign(attrs) {
|
|
2587
|
+
if (!attrs) return "left";
|
|
2588
|
+
for (const a of attrs) {
|
|
2589
|
+
if (!a) continue;
|
|
2590
|
+
const [key, val] = a;
|
|
2591
|
+
if (!val) continue;
|
|
2592
|
+
const value = String(val).trim().toLowerCase();
|
|
2593
|
+
if (key === "style") {
|
|
2594
|
+
const m = /text-align\s*:\s*(left|right|center)/i.exec(value);
|
|
2595
|
+
if (m) return m[1].toLowerCase();
|
|
2596
|
+
}
|
|
2597
|
+
}
|
|
2598
|
+
return "left";
|
|
2599
|
+
}
|
|
2554
2600
|
function parseTable(tokens, index) {
|
|
2555
2601
|
let j = index + 1;
|
|
2556
2602
|
let headerRow = null;
|
|
@@ -2570,11 +2616,13 @@ function parseTable(tokens, index) {
|
|
|
2570
2616
|
const isHeaderCell = tokens[k].type === "th_open";
|
|
2571
2617
|
const contentToken = tokens[k + 1];
|
|
2572
2618
|
const content = String(contentToken.content ?? "");
|
|
2619
|
+
const align = extractAlign(tokens[k].attrs);
|
|
2573
2620
|
cells.push({
|
|
2574
2621
|
type: "table_cell",
|
|
2575
2622
|
header: isHeaderCell || isHeader,
|
|
2576
2623
|
children: parseInlineTokens(contentToken.children || [], content),
|
|
2577
|
-
raw: content
|
|
2624
|
+
raw: content,
|
|
2625
|
+
align
|
|
2578
2626
|
});
|
|
2579
2627
|
k += 3;
|
|
2580
2628
|
} else k++;
|
|
@@ -3042,6 +3090,10 @@ function processTokens(tokens) {
|
|
|
3042
3090
|
result.push(parseMathBlock(tokens[i]));
|
|
3043
3091
|
i += 1;
|
|
3044
3092
|
break;
|
|
3093
|
+
case "inline":
|
|
3094
|
+
result.push(...parseInlineTokens(token.children || []));
|
|
3095
|
+
i += 1;
|
|
3096
|
+
break;
|
|
3045
3097
|
default:
|
|
3046
3098
|
i += 1;
|
|
3047
3099
|
break;
|