stream-markdown-parser 0.0.28 → 0.0.30
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 +45 -40
- 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":";;;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;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,QAqHC,CAAA;EAOvB,IAAA,EAAA,YAAW;EAKX,QAAA,EAAA,MAAa;EAKb,IAAA,EAAA,MAAA;EAKA,SAAA,CAAA,EAAA,MAAc;EAKd,OAAA,CAAA,EAAA,MAAW;EAKX,OAAA,CAAA,EAAA,OAAc;EAKd,IAAA,CAAA,EAAA,OAAA;EAKA,YAAA,CAAA,EAAa,MAAA;EAKb,WAAA,CAAA,EAAA,MAAkB;EAKlB,GAAA,EAAA,MAAA;AAMjB;AAIiB,UAlKA,aAAA,SAAsB,QAkKS,CAAA;EAK/B,IAAA,EAAA,YAAc;EAKd,KAAA,CAAA,EAAA,CAAA,MAAA,EAAc,MAAA,CAAA,EAAA,GAAQ,IAAA;EAMtB,GAAA,EAAA,MAAA;EAkBL,OAAA,EAAA,MAAA;AAEZ;AACM,UAhMW,cAAA,SAAuB,QAgMlC,CAAA;EACA,IAAA,EAAA,aAAA;EACA,OAAA,EAAA,MAAA;EACA,QAAA,EAhMM,UAgMN,EAAA;;AAEA,UA/LW,cAAA,SAAuB,QA+LlC,CAAA;EACA,IAAA,EAAA,aAAA;EACA,IAAA,EAAA,MAAA;;AAEA,UA9LW,QAAA,SAAiB,QA8L5B,CAAA;EACA,IAAA,EAAA,MAAA;EACA,IAAA,EAAA,MAAA;EACA,KAAA,EAAA,MAAA,GAAA,IAAA;EACA,IAAA,EAAA,MAAA;EACA,QAAA,EA9LM,UA8LN,EAAA;;AAEA,UA7LW,SAAA,SAAkB,QA6L7B,CAAA;EACA,IAAA,EAAA,OAAA;EACA,GAAA,EAAA,MAAA;EACA,GAAA,EAAA,MAAA;EACA,KAAA,EAAA,MAAA,GAAA,IAAA;;AAEA,UA5LW,iBAAA,SAA0B,QA4LrC,CAAA;EACA,IAAA,EAAA,gBAAA;;AAEA,UA3LW,gBAAA,CA2LX;EACA,IAAA,EAAA;IACA,IAAA,EAAA,YAAA;IACA,QAAA,EAAA,MAAA;IACA,IAAA,EAAA,MAAA;IACA,OAAA,CAAA,EAAA,OAAA;EACA,CAAA;;AAEA,KA1LM,cAAA,GA0LN;EACA,OAAA,EAAA,MAAA;EAAM,KAAA,CAAA,EAAA,SAAA;AACZ,CAAA,GAAiB;EAkCL,OAAA,CAAA,EAAA,SAAA;EAEK,KAAA,EAzNN,QAyNkB,EAAA;AAK7B,CAAA;UA5NiB,cAAA,SAAuB;;YAE5B;ACjFZ;AAA0C,UDoFzB,SAAA,SAAkB,QCpFO,CAAA;EAA2C,IAAA,EAAA,OAAA;EAAgB,MAAA,EDsF3F,YCtF2F;EAAU,IAAA,EDuFvG,YCvFuG,EAAA;;UD0F9F,YAAA,SAAqB;;EEhHtB,KAAA,EFkHP,aElHO,EAAA;;AAGL,UFkHM,aAAA,SAAsB,QElH5B,CAAA;EACR,IAAA,EAAA,YAAA;EAAU,MAAA,EAAA,OAAA;
|
|
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
|
@@ -337,18 +337,19 @@ function fixLinkToken(tokens) {
|
|
|
337
337
|
if (tokens.length < 4) return tokens;
|
|
338
338
|
for (let i = 0; i <= tokens.length - 1; i++) {
|
|
339
339
|
if (i < 0) i = 0;
|
|
340
|
-
|
|
341
|
-
if (
|
|
340
|
+
const curToken = tokens[i];
|
|
341
|
+
if (!curToken) break;
|
|
342
|
+
if (curToken?.type === "em_open" && tokens[i - 1]?.type === "text" && tokens[i - 1].content?.endsWith("*")) {
|
|
342
343
|
const beforeText = tokens[i - 1].content?.replace(/(\*+)$/, "") || "";
|
|
343
344
|
tokens[i - 1].content = beforeText;
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
345
|
+
curToken.type = "strong_open";
|
|
346
|
+
curToken.tag = "strong";
|
|
347
|
+
curToken.markup = "**";
|
|
347
348
|
}
|
|
348
|
-
if (
|
|
349
|
-
const match =
|
|
349
|
+
if (curToken?.type === "text" && curToken.content?.endsWith("(") && tokens[i + 1]?.type === "link_open") {
|
|
350
|
+
const match = curToken.content.match(/\[([^\]]+)\]/);
|
|
350
351
|
if (match) {
|
|
351
|
-
let beforeText =
|
|
352
|
+
let beforeText = curToken.content.slice(0, match.index);
|
|
352
353
|
const emphasisMatch = beforeText.match(/(\*+)$/);
|
|
353
354
|
const replacerTokens = [];
|
|
354
355
|
if (emphasisMatch) {
|
|
@@ -408,11 +409,11 @@ function fixLinkToken(tokens) {
|
|
|
408
409
|
i -= replacerTokens.length - 1;
|
|
409
410
|
continue;
|
|
410
411
|
}
|
|
411
|
-
} else if (
|
|
412
|
+
} else if (curToken.type === "link_open" && curToken.markup === "linkify" && tokens[i - 1]?.type === "text" && tokens[i - 1].content?.endsWith("(")) {
|
|
412
413
|
if (tokens[i - 2]?.type === "link_close") {
|
|
413
414
|
const replacerTokens = [];
|
|
414
415
|
const text = tokens[i - 3].content || "";
|
|
415
|
-
let href =
|
|
416
|
+
let href = curToken.attrs?.find((attr) => attr[0] === "href")?.[1] || "";
|
|
416
417
|
if (tokens[i + 3]?.type === "text") {
|
|
417
418
|
const m = (tokens[i + 3]?.content ?? "").indexOf(")");
|
|
418
419
|
const loading = m === -1;
|
|
@@ -458,7 +459,7 @@ function fixLinkToken(tokens) {
|
|
|
458
459
|
tokens[i - 1].content = "";
|
|
459
460
|
}
|
|
460
461
|
}
|
|
461
|
-
if (
|
|
462
|
+
if (curToken.type === "link_close" && curToken.nesting === -1 && tokens[i + 1]?.type === "text" && tokens[i - 1]?.type === "text") {
|
|
462
463
|
let loading = true;
|
|
463
464
|
const text = tokens[i - 1].content || "";
|
|
464
465
|
let href = tokens[i - 2].attrs?.[0]?.[1] || "";
|
|
@@ -471,8 +472,8 @@ function fixLinkToken(tokens) {
|
|
|
471
472
|
const type = emphasisMatch[1].length;
|
|
472
473
|
pushEmOpen(replacerTokens, type);
|
|
473
474
|
}
|
|
474
|
-
if (
|
|
475
|
-
if (
|
|
475
|
+
if (curToken.markup === "" || tokens[i + 1].type === "text" && (tokens[i + 1].content === "." || tokens[i + 1].content === "?")) loading = false;
|
|
476
|
+
if (curToken.markup === "linkify" && tokens[i + 1]?.type === "text" && !tokens[i + 1]?.content?.startsWith(" ")) {
|
|
476
477
|
const m = (tokens[i + 1]?.content ?? "").indexOf(")");
|
|
477
478
|
if (m === -1) {
|
|
478
479
|
href += tokens[i + 1]?.content?.slice(0, m) || "";
|
|
@@ -519,14 +520,14 @@ function fixLinkToken(tokens) {
|
|
|
519
520
|
tokens.splice(i - deleteCount, count, ...replacerTokens);
|
|
520
521
|
i -= replacerTokens.length - 1;
|
|
521
522
|
continue;
|
|
522
|
-
} else if (
|
|
523
|
+
} else if (curToken.content?.startsWith("](") && tokens[i - 1].markup?.includes("*") && tokens[i - 4]?.type === "text" && tokens[i - 4].content?.endsWith("[")) {
|
|
523
524
|
const type = tokens[i - 1].markup.length;
|
|
524
525
|
const replacerTokens = [];
|
|
525
526
|
const beforeText = tokens[i - 4].content.slice(0, tokens[i - 4].content.length - type);
|
|
526
527
|
if (beforeText) replacerTokens.push(textToken(beforeText));
|
|
527
528
|
pushEmOpen(replacerTokens, type);
|
|
528
529
|
const text = tokens[i - 2].content || "";
|
|
529
|
-
let href =
|
|
530
|
+
let href = curToken.content.slice(2);
|
|
530
531
|
let loading = true;
|
|
531
532
|
if (tokens[i + 1]?.type === "text") {
|
|
532
533
|
const m = (tokens[i + 1]?.content ?? "").indexOf(")");
|
|
@@ -547,6 +548,21 @@ function fixLinkToken(tokens) {
|
|
|
547
548
|
i -= replacerTokens.length - 1;
|
|
548
549
|
continue;
|
|
549
550
|
}
|
|
551
|
+
if (curToken.type === "text" && /\*+\[[^\]]*$/.test(curToken.content || "") && tokens[i + 1]?.type === "strong_open" && tokens[i + 2]?.type === "text" && tokens[i + 2].content === "](" && tokens[i + 3]?.type === "link_open" && tokens[i + 5]?.type === "link_close" && tokens[i + 6]?.type === "text" && tokens[i + 6].content === ")" && tokens[i + 7]?.type === "strong_close") {
|
|
552
|
+
const startMatch = (curToken.content || "").match(/^(\*+)\[(.*)$/);
|
|
553
|
+
if (startMatch) {
|
|
554
|
+
const finalLabel = (startMatch[2] || "") + startMatch[1];
|
|
555
|
+
let href = tokens[i + 3]?.attrs?.find((a) => a[0] === "href")?.[1] || "";
|
|
556
|
+
if (!href && tokens[i + 4]?.type === "text") href = tokens[i + 4].content || "";
|
|
557
|
+
const out = [];
|
|
558
|
+
pushEmOpen(out, 2);
|
|
559
|
+
out.push(createLinkToken(finalLabel, href, false));
|
|
560
|
+
pushEmClose(out, 2);
|
|
561
|
+
tokens.splice(i, 9, ...out);
|
|
562
|
+
i -= out.length - 1;
|
|
563
|
+
continue;
|
|
564
|
+
}
|
|
565
|
+
}
|
|
550
566
|
}
|
|
551
567
|
return tokens;
|
|
552
568
|
}
|
|
@@ -902,6 +918,7 @@ const TEX_CMD_WITH_BRACES_RE = new RegExp(`${PREFIX_CLASS}(?:${ESCAPED_TEX_BRACE
|
|
|
902
918
|
const TEX_BRACE_CMD_START_RE = new RegExp(`(?:${PREFIX_CLASS})?(?:${ESCAPED_TEX_BRACE_COMMANDS})\s*\{`, "i");
|
|
903
919
|
const TEX_SPECIFIC_RE = /\\(?:text|frac|left|right|times)/;
|
|
904
920
|
const OPS_RE = /* @__PURE__ */ new RegExp("(?<!\\+)\\+(?!\\+)|[=\\-*/^<>]|\\\\times|\\\\pm|\\\\cdot|\\\\le|\\\\ge|\\\\neq");
|
|
921
|
+
const HYPHENATED_MULTIWORD_RE = /\b[A-Z]{2,}-[A-Z]{2,}\b/i;
|
|
905
922
|
const FUNC_CALL_RE = /[A-Z]+\s*\([^)]+\)/i;
|
|
906
923
|
const WORDS_RE = /\b(?:sin|cos|tan|log|ln|exp|sqrt|frac|sum|lim|int|prod)\b/;
|
|
907
924
|
const DATE_TIME_RE = /\b\d{4}\/\d{1,2}\/\d{1,2}(?:[ T]\d{1,2}:\d{2}(?::\d{2})?)?\b/;
|
|
@@ -918,10 +935,11 @@ function isMathLike(s) {
|
|
|
918
935
|
const texBraceStart = TEX_BRACE_CMD_START_RE.test(norm);
|
|
919
936
|
const texSpecific = TEX_SPECIFIC_RE.test(norm);
|
|
920
937
|
const superSub = /(?:^|[^\w\\])(?:[A-Z]|\\[A-Z]+)_(?:\{[^}]+\}|[A-Z0-9\\])/i.test(norm) || /(?:^|[^\w\\])(?:[A-Z]|\\[A-Z]+)\^(?:\{[^}]+\}|[A-Z0-9\\])/i.test(norm);
|
|
921
|
-
const ops = OPS_RE.test(norm);
|
|
938
|
+
const ops = OPS_RE.test(norm) && !HYPHENATED_MULTIWORD_RE.test(norm);
|
|
922
939
|
const funcCall = FUNC_CALL_RE.test(norm);
|
|
923
940
|
const words = WORDS_RE.test(norm);
|
|
924
|
-
|
|
941
|
+
const pureWord = /^\([a-z]\)$/i.test(stripped);
|
|
942
|
+
return texCmd || texCmdWithBraces || texBraceStart || texSpecific || superSub || ops || funcCall || words || pureWord;
|
|
925
943
|
}
|
|
926
944
|
|
|
927
945
|
//#endregion
|
|
@@ -1215,34 +1233,21 @@ function applyMath(md, mathOpts) {
|
|
|
1215
1233
|
let matched = false;
|
|
1216
1234
|
let openDelim = "";
|
|
1217
1235
|
let closeDelim = "";
|
|
1218
|
-
for (const [open, close] of delimiters) {
|
|
1219
|
-
|
|
1220
|
-
|
|
1221
|
-
const beforeText = lineText.slice(0, m);
|
|
1222
|
-
if (beforeText) {
|
|
1223
|
-
if (beforeText.endsWith("!")) return false;
|
|
1224
|
-
const inline = s.push("inline", "", 0);
|
|
1225
|
-
inline.content = beforeText;
|
|
1226
|
-
inline.map = [startLine, startLine];
|
|
1227
|
-
inline.children = [];
|
|
1228
|
-
}
|
|
1229
|
-
if (open.includes("[")) {
|
|
1230
|
-
if (lineText.replace("\\", "") === "[") {
|
|
1231
|
-
if (startLine + 1 < endLine) {
|
|
1232
|
-
matched = true;
|
|
1233
|
-
openDelim = open;
|
|
1234
|
-
closeDelim = close;
|
|
1235
|
-
break;
|
|
1236
|
-
}
|
|
1237
|
-
continue;
|
|
1238
|
-
}
|
|
1239
|
-
} else {
|
|
1236
|
+
for (const [open, close] of delimiters) if (lineText.startsWith(open)) if (open.includes("[")) {
|
|
1237
|
+
if (lineText.replace("\\", "") === "[") {
|
|
1238
|
+
if (startLine + 1 < endLine) {
|
|
1240
1239
|
matched = true;
|
|
1241
1240
|
openDelim = open;
|
|
1242
1241
|
closeDelim = close;
|
|
1243
1242
|
break;
|
|
1244
1243
|
}
|
|
1244
|
+
continue;
|
|
1245
1245
|
}
|
|
1246
|
+
} else {
|
|
1247
|
+
matched = true;
|
|
1248
|
+
openDelim = open;
|
|
1249
|
+
closeDelim = close;
|
|
1250
|
+
break;
|
|
1246
1251
|
}
|
|
1247
1252
|
if (!matched) return false;
|
|
1248
1253
|
if (silent) return true;
|
|
@@ -2211,7 +2216,7 @@ function parseInlineTokens(tokens, raw, pPreToken) {
|
|
|
2211
2216
|
function handleTextToken(token) {
|
|
2212
2217
|
let index = result.length - 1;
|
|
2213
2218
|
let content = String(token.content ?? "").replace(/\\/g, "");
|
|
2214
|
-
if (content === "1" && tokens[i - 1]?.tag === "br") {
|
|
2219
|
+
if (token.content === "<" || content === "1" && tokens[i - 1]?.tag === "br") {
|
|
2215
2220
|
i++;
|
|
2216
2221
|
return;
|
|
2217
2222
|
}
|