stream-markdown-parser 0.0.25 → 0.0.26
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 +256 -193
- 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
|
@@ -250,6 +250,76 @@ function applyFixLinkInline(md) {
|
|
|
250
250
|
|
|
251
251
|
//#endregion
|
|
252
252
|
//#region src/plugins/fixLinkTokens.ts
|
|
253
|
+
function textToken(content) {
|
|
254
|
+
return {
|
|
255
|
+
type: "text",
|
|
256
|
+
content,
|
|
257
|
+
raw: content
|
|
258
|
+
};
|
|
259
|
+
}
|
|
260
|
+
function pushEmOpen(arr, type) {
|
|
261
|
+
if (type === 1) arr.push({
|
|
262
|
+
type: "em_open",
|
|
263
|
+
tag: "em",
|
|
264
|
+
nesting: 1
|
|
265
|
+
});
|
|
266
|
+
else if (type === 2) arr.push({
|
|
267
|
+
type: "strong_open",
|
|
268
|
+
tag: "strong",
|
|
269
|
+
nesting: 1
|
|
270
|
+
});
|
|
271
|
+
else if (type === 3) {
|
|
272
|
+
arr.push({
|
|
273
|
+
type: "strong_open",
|
|
274
|
+
tag: "strong",
|
|
275
|
+
nesting: 1
|
|
276
|
+
});
|
|
277
|
+
arr.push({
|
|
278
|
+
type: "em_open",
|
|
279
|
+
tag: "em",
|
|
280
|
+
nesting: 1
|
|
281
|
+
});
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
function pushEmClose(arr, type) {
|
|
285
|
+
if (type === 1) arr.push({
|
|
286
|
+
type: "em_close",
|
|
287
|
+
tag: "em",
|
|
288
|
+
nesting: -1
|
|
289
|
+
});
|
|
290
|
+
else if (type === 2) arr.push({
|
|
291
|
+
type: "strong_close",
|
|
292
|
+
tag: "strong",
|
|
293
|
+
nesting: -1
|
|
294
|
+
});
|
|
295
|
+
else if (type === 3) {
|
|
296
|
+
arr.push({
|
|
297
|
+
type: "em_close",
|
|
298
|
+
tag: "em",
|
|
299
|
+
nesting: -1
|
|
300
|
+
});
|
|
301
|
+
arr.push({
|
|
302
|
+
type: "strong_close",
|
|
303
|
+
tag: "strong",
|
|
304
|
+
nesting: -1
|
|
305
|
+
});
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
function createLinkToken(text, href, loading) {
|
|
309
|
+
return {
|
|
310
|
+
type: "link",
|
|
311
|
+
loading,
|
|
312
|
+
href,
|
|
313
|
+
title: "",
|
|
314
|
+
text,
|
|
315
|
+
children: [{
|
|
316
|
+
type: "text",
|
|
317
|
+
content: text,
|
|
318
|
+
raw: text
|
|
319
|
+
}],
|
|
320
|
+
raw: String(`[${text}](${href})`)
|
|
321
|
+
};
|
|
322
|
+
}
|
|
253
323
|
function applyFixLinkTokens(md) {
|
|
254
324
|
md.core.ruler.after("inline", "fix_link_tokens", (state) => {
|
|
255
325
|
const toks = state.tokens ?? [];
|
|
@@ -266,7 +336,15 @@ function applyFixLinkTokens(md) {
|
|
|
266
336
|
function fixLinkToken(tokens) {
|
|
267
337
|
if (tokens.length < 4) return tokens;
|
|
268
338
|
for (let i = 0; i <= tokens.length - 1; i++) {
|
|
339
|
+
if (i < 0) i = 0;
|
|
269
340
|
if (!tokens[i]) break;
|
|
341
|
+
if (tokens[i]?.type === "em_open" && tokens[i - 1]?.type === "text" && tokens[i - 1].content?.endsWith("*")) {
|
|
342
|
+
const beforeText = tokens[i - 1].content?.replace(/(\*+)$/, "") || "";
|
|
343
|
+
tokens[i - 1].content = beforeText;
|
|
344
|
+
tokens[i].type = "strong_open";
|
|
345
|
+
tokens[i].tag = "strong";
|
|
346
|
+
tokens[i].markup = "**";
|
|
347
|
+
}
|
|
270
348
|
if (tokens[i]?.type === "text" && tokens[i].content?.endsWith("(") && tokens[i + 1]?.type === "link_open") {
|
|
271
349
|
const match = tokens[i].content.match(/\[([^\]]+)\]/);
|
|
272
350
|
if (match) {
|
|
@@ -275,116 +353,55 @@ function fixLinkToken(tokens) {
|
|
|
275
353
|
const replacerTokens = [];
|
|
276
354
|
if (emphasisMatch) {
|
|
277
355
|
beforeText = beforeText.slice(0, emphasisMatch.index);
|
|
278
|
-
if (beforeText) replacerTokens.push(
|
|
279
|
-
type: "text",
|
|
280
|
-
content: beforeText,
|
|
281
|
-
raw: beforeText
|
|
282
|
-
});
|
|
356
|
+
if (beforeText) replacerTokens.push(textToken(beforeText));
|
|
283
357
|
const text = match[1];
|
|
284
358
|
const type = emphasisMatch[1].length;
|
|
285
|
-
|
|
286
|
-
type: "em_open",
|
|
287
|
-
tag: "em",
|
|
288
|
-
nesting: 1
|
|
289
|
-
});
|
|
290
|
-
else if (type === 2) replacerTokens.push({
|
|
291
|
-
type: "strong_open",
|
|
292
|
-
tag: "strong",
|
|
293
|
-
nesting: 1
|
|
294
|
-
});
|
|
295
|
-
else if (type === 3) {
|
|
296
|
-
replacerTokens.push({
|
|
297
|
-
type: "strong_open",
|
|
298
|
-
tag: "strong",
|
|
299
|
-
nesting: 1
|
|
300
|
-
});
|
|
301
|
-
replacerTokens.push({
|
|
302
|
-
type: "em_open",
|
|
303
|
-
tag: "em",
|
|
304
|
-
nesting: 1
|
|
305
|
-
});
|
|
306
|
-
}
|
|
359
|
+
pushEmOpen(replacerTokens, type);
|
|
307
360
|
let href = tokens[i + 2]?.content || "";
|
|
308
361
|
if (tokens[i + 4]?.type === "text" && !tokens[i + 4].content?.startsWith(")")) {
|
|
309
362
|
href += tokens[i + 4]?.content || "";
|
|
310
363
|
tokens[i + 4].content = "";
|
|
311
364
|
}
|
|
312
|
-
replacerTokens.push(
|
|
313
|
-
|
|
314
|
-
loading: !tokens[i + 4]?.content?.startsWith(")"),
|
|
315
|
-
href,
|
|
316
|
-
title: "",
|
|
317
|
-
text,
|
|
318
|
-
children: [{
|
|
319
|
-
type: "text",
|
|
320
|
-
content: text,
|
|
321
|
-
raw: text
|
|
322
|
-
}],
|
|
323
|
-
raw: String(`[${text}](${href})`)
|
|
324
|
-
});
|
|
325
|
-
if (type === 1) replacerTokens.push({
|
|
326
|
-
type: "em_close",
|
|
327
|
-
tag: "em",
|
|
328
|
-
nesting: -1
|
|
329
|
-
});
|
|
330
|
-
else if (type === 2) replacerTokens.push({
|
|
331
|
-
type: "strong_close",
|
|
332
|
-
tag: "strong",
|
|
333
|
-
nesting: -1
|
|
334
|
-
});
|
|
335
|
-
else if (type === 3) {
|
|
336
|
-
replacerTokens.push({
|
|
337
|
-
type: "em_close",
|
|
338
|
-
tag: "em",
|
|
339
|
-
nesting: -1
|
|
340
|
-
});
|
|
341
|
-
replacerTokens.push({
|
|
342
|
-
type: "strong_close",
|
|
343
|
-
tag: "strong",
|
|
344
|
-
nesting: -1
|
|
345
|
-
});
|
|
346
|
-
}
|
|
365
|
+
replacerTokens.push(createLinkToken(text, href, !tokens[i + 4]?.content?.startsWith(")")));
|
|
366
|
+
pushEmClose(replacerTokens, type);
|
|
347
367
|
if (tokens[i + 4]?.type === "text") {
|
|
348
368
|
const afterText = tokens[i + 4].content?.replace(/^\)\**/, "");
|
|
349
|
-
if (afterText) replacerTokens.push(
|
|
350
|
-
type: "text",
|
|
351
|
-
content: afterText,
|
|
352
|
-
raw: afterText
|
|
353
|
-
});
|
|
369
|
+
if (afterText) replacerTokens.push(textToken(afterText));
|
|
354
370
|
tokens.splice(i, 5, ...replacerTokens);
|
|
355
371
|
} else tokens.splice(i, 4, ...replacerTokens);
|
|
356
372
|
} else {
|
|
357
|
-
if (beforeText) replacerTokens.push(
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
373
|
+
if (beforeText) replacerTokens.push(textToken(beforeText));
|
|
374
|
+
let text = match[1];
|
|
375
|
+
const emphasisMatch$1 = text.match(/^\*+/);
|
|
376
|
+
if (emphasisMatch$1) {
|
|
377
|
+
const type = emphasisMatch$1[0].length;
|
|
378
|
+
text = text.replace(/^\*+/, "").replace(/\*+$/, "");
|
|
379
|
+
let href$1 = tokens[i + 2]?.content || "";
|
|
380
|
+
if (tokens[i + 4]?.type === "text" && !tokens[i + 4].content?.startsWith(")")) {
|
|
381
|
+
href$1 += tokens[i + 4]?.content || "";
|
|
382
|
+
tokens[i + 4].content = "";
|
|
383
|
+
}
|
|
384
|
+
pushEmOpen(replacerTokens, type);
|
|
385
|
+
replacerTokens.push(createLinkToken(text, href$1, !tokens[i + 4]?.content?.startsWith(")")));
|
|
386
|
+
pushEmClose(replacerTokens, type);
|
|
387
|
+
if (tokens[i + 4]?.type === "text") {
|
|
388
|
+
const afterText = tokens[i + 4].content?.replace(/^\)/, "");
|
|
389
|
+
if (afterText) replacerTokens.push(textToken(afterText));
|
|
390
|
+
tokens.splice(i, 5, ...replacerTokens);
|
|
391
|
+
} else tokens.splice(i, 4, ...replacerTokens);
|
|
392
|
+
if (i === 0) i = replacerTokens.length - 1;
|
|
393
|
+
else i -= replacerTokens.length - 1;
|
|
394
|
+
continue;
|
|
395
|
+
}
|
|
363
396
|
let href = tokens[i + 2]?.content || "";
|
|
364
397
|
if (tokens[i + 4]?.type === "text" && !tokens[i + 4].content?.startsWith(")")) {
|
|
365
398
|
href += tokens[i + 4]?.content || "";
|
|
366
399
|
tokens[i + 4].content = "";
|
|
367
400
|
}
|
|
368
|
-
replacerTokens.push(
|
|
369
|
-
type: "link",
|
|
370
|
-
loading: !tokens[i + 4]?.content?.startsWith(")"),
|
|
371
|
-
href,
|
|
372
|
-
title: "",
|
|
373
|
-
text,
|
|
374
|
-
children: [{
|
|
375
|
-
type: "text",
|
|
376
|
-
content: text,
|
|
377
|
-
raw: text
|
|
378
|
-
}],
|
|
379
|
-
raw: String(`[${text}](${href})`)
|
|
380
|
-
}]);
|
|
401
|
+
replacerTokens.push(createLinkToken(text, href, !tokens[i + 4]?.content?.startsWith(")")));
|
|
381
402
|
if (tokens[i + 4]?.type === "text") {
|
|
382
403
|
const afterText = tokens[i + 4].content?.replace(/^\)/, "");
|
|
383
|
-
if (afterText) replacerTokens.push(
|
|
384
|
-
type: "text",
|
|
385
|
-
content: afterText,
|
|
386
|
-
raw: afterText
|
|
387
|
-
});
|
|
404
|
+
if (afterText) replacerTokens.push(textToken(afterText));
|
|
388
405
|
tokens.splice(i, 5, ...replacerTokens);
|
|
389
406
|
} else tokens.splice(i, 4, ...replacerTokens);
|
|
390
407
|
}
|
|
@@ -403,25 +420,9 @@ function fixLinkToken(tokens) {
|
|
|
403
420
|
href += tokens[i + 3]?.content?.slice(0, m) || "";
|
|
404
421
|
tokens[i + 3].content = "";
|
|
405
422
|
}
|
|
406
|
-
replacerTokens.push(
|
|
407
|
-
type: "link",
|
|
408
|
-
loading,
|
|
409
|
-
href,
|
|
410
|
-
title: "",
|
|
411
|
-
text,
|
|
412
|
-
children: [{
|
|
413
|
-
type: "text",
|
|
414
|
-
content: text,
|
|
415
|
-
raw: text
|
|
416
|
-
}],
|
|
417
|
-
raw: String(`[${text}](${href})`)
|
|
418
|
-
});
|
|
423
|
+
replacerTokens.push(createLinkToken(text, href, loading));
|
|
419
424
|
const afterText = tokens[i + 3].content?.replace(/^\)\**/, "");
|
|
420
|
-
if (afterText) replacerTokens.push(
|
|
421
|
-
type: "text",
|
|
422
|
-
content: afterText,
|
|
423
|
-
raw: afterText
|
|
424
|
-
});
|
|
425
|
+
if (afterText) replacerTokens.push(textToken(afterText));
|
|
425
426
|
tokens.splice(i - 4, 8, ...replacerTokens);
|
|
426
427
|
} else {
|
|
427
428
|
replacerTokens.push({
|
|
@@ -440,24 +441,67 @@ function fixLinkToken(tokens) {
|
|
|
440
441
|
tokens.splice(i - 4, 7, ...replacerTokens);
|
|
441
442
|
}
|
|
442
443
|
continue;
|
|
444
|
+
} else if (tokens[i - 1].content === "](" && tokens[i - 3]?.type === "text" && tokens[i - 3].content?.endsWith(")")) if (tokens[i - 2]?.type === "strong_open") {
|
|
445
|
+
const [beforeText, linText] = tokens[i - 3].content?.split("[**") || [];
|
|
446
|
+
tokens[i + 1].content = linText || "";
|
|
447
|
+
tokens[i - 3].content = beforeText || "";
|
|
448
|
+
tokens[i - 1].content = "";
|
|
449
|
+
} else if (tokens[i - 2]?.type === "em_open") {
|
|
450
|
+
const [beforeText, linText] = tokens[i - 3].content?.split("[*") || [];
|
|
451
|
+
tokens[i + 1].content = linText || "";
|
|
452
|
+
tokens[i - 3].content = beforeText || "";
|
|
453
|
+
tokens[i - 1].content = "";
|
|
454
|
+
} else {
|
|
455
|
+
const [beforeText, linText] = tokens[i - 3].content?.split("[") || [];
|
|
456
|
+
tokens[i + 1].content = linText || "";
|
|
457
|
+
tokens[i - 3].content = beforeText || "";
|
|
458
|
+
tokens[i - 1].content = "";
|
|
443
459
|
}
|
|
444
460
|
}
|
|
445
|
-
if (tokens[i].type === "link_close" && tokens[i].nesting === -1 && tokens[i + 1]?.type === "text" && tokens[i - 1]?.type === "text"
|
|
446
|
-
|
|
461
|
+
if (tokens[i].type === "link_close" && tokens[i].nesting === -1 && tokens[i + 1]?.type === "text" && tokens[i - 1]?.type === "text") {
|
|
462
|
+
let loading = true;
|
|
447
463
|
const text = tokens[i - 1].content || "";
|
|
448
464
|
let href = tokens[i - 2].attrs?.[0]?.[1] || "";
|
|
449
465
|
let count = 3;
|
|
466
|
+
let deleteCount = 2;
|
|
467
|
+
const emphasisMatch = (tokens[i - 3]?.content || "").match(/^(\*+)$/);
|
|
468
|
+
const replacerTokens = [];
|
|
469
|
+
if (emphasisMatch) {
|
|
470
|
+
deleteCount += 1;
|
|
471
|
+
const type = emphasisMatch[1].length;
|
|
472
|
+
pushEmOpen(replacerTokens, type);
|
|
473
|
+
}
|
|
474
|
+
if (tokens[i].markup === "" || tokens[i + 1].type === "text" && (tokens[i + 1].content === "." || tokens[i + 1].content === "?")) loading = false;
|
|
450
475
|
if (tokens[i].markup === "linkify" && tokens[i + 1]?.type === "text" && !tokens[i + 1]?.content?.startsWith(" ")) {
|
|
451
476
|
const m = (tokens[i + 1]?.content ?? "").indexOf(")");
|
|
452
477
|
if (m === -1) {
|
|
453
478
|
href += tokens[i + 1]?.content?.slice(0, m) || "";
|
|
454
479
|
tokens[i + 1].content = "";
|
|
455
|
-
}
|
|
480
|
+
} else loading = false;
|
|
456
481
|
count += 1;
|
|
482
|
+
} else if (tokens[i + 1].type === "text" && tokens[i + 1]?.content?.startsWith("](")) {
|
|
483
|
+
count += 1;
|
|
484
|
+
for (let j = i + 1; j < tokens.length; j++) {
|
|
485
|
+
const type = emphasisMatch ? emphasisMatch[1].length : tokens[i - 3].markup.length;
|
|
486
|
+
const t = tokens[j];
|
|
487
|
+
if (type === 1 && t.type === "em_close") {
|
|
488
|
+
loading = false;
|
|
489
|
+
break;
|
|
490
|
+
} else if (type === 2 && t.type === "strong_close") {
|
|
491
|
+
loading = false;
|
|
492
|
+
break;
|
|
493
|
+
} else if (type === 3) {
|
|
494
|
+
if (t.type === "em_close" || t.type === "strong_close") {
|
|
495
|
+
loading = false;
|
|
496
|
+
break;
|
|
497
|
+
}
|
|
498
|
+
}
|
|
499
|
+
count += 1;
|
|
500
|
+
}
|
|
457
501
|
}
|
|
458
|
-
|
|
502
|
+
replacerTokens.push({
|
|
459
503
|
type: "link",
|
|
460
|
-
loading
|
|
504
|
+
loading,
|
|
461
505
|
href,
|
|
462
506
|
title: "",
|
|
463
507
|
text,
|
|
@@ -468,37 +512,19 @@ function fixLinkToken(tokens) {
|
|
|
468
512
|
}],
|
|
469
513
|
raw: String(`[${text}](${href})`)
|
|
470
514
|
});
|
|
471
|
-
|
|
515
|
+
if (emphasisMatch) {
|
|
516
|
+
const type = emphasisMatch[1].length;
|
|
517
|
+
pushEmClose(replacerTokens, type);
|
|
518
|
+
}
|
|
519
|
+
tokens.splice(i - deleteCount, count, ...replacerTokens);
|
|
520
|
+
i -= replacerTokens.length - 1;
|
|
521
|
+
continue;
|
|
522
|
+
} else if (tokens[i].content?.startsWith("](") && tokens[i - 1].markup?.includes("*") && tokens[i - 4]?.type === "text" && tokens[i - 4].content?.endsWith("[")) {
|
|
472
523
|
const type = tokens[i - 1].markup.length;
|
|
473
524
|
const replacerTokens = [];
|
|
474
|
-
const beforeText = tokens[i - 4].content.slice(0, tokens[i - 4].content.length -
|
|
475
|
-
if (beforeText) replacerTokens.push(
|
|
476
|
-
|
|
477
|
-
content: beforeText,
|
|
478
|
-
raw: beforeText
|
|
479
|
-
});
|
|
480
|
-
if (type === 1) replacerTokens.push({
|
|
481
|
-
type: "em_open",
|
|
482
|
-
tag: "em",
|
|
483
|
-
nesting: 1
|
|
484
|
-
});
|
|
485
|
-
else if (type === 2) replacerTokens.push({
|
|
486
|
-
type: "strong_open",
|
|
487
|
-
tag: "strong",
|
|
488
|
-
nesting: 1
|
|
489
|
-
});
|
|
490
|
-
else if (type === 3) {
|
|
491
|
-
replacerTokens.push({
|
|
492
|
-
type: "strong_open",
|
|
493
|
-
tag: "strong",
|
|
494
|
-
nesting: 1
|
|
495
|
-
});
|
|
496
|
-
replacerTokens.push({
|
|
497
|
-
type: "em_open",
|
|
498
|
-
tag: "em",
|
|
499
|
-
nesting: 1
|
|
500
|
-
});
|
|
501
|
-
}
|
|
525
|
+
const beforeText = tokens[i - 4].content.slice(0, tokens[i - 4].content.length - type);
|
|
526
|
+
if (beforeText) replacerTokens.push(textToken(beforeText));
|
|
527
|
+
pushEmOpen(replacerTokens, type);
|
|
502
528
|
const text = tokens[i - 2].content || "";
|
|
503
529
|
let href = tokens[i].content.slice(2);
|
|
504
530
|
let loading = true;
|
|
@@ -510,48 +536,11 @@ function fixLinkToken(tokens) {
|
|
|
510
536
|
tokens[i + 1].content = "";
|
|
511
537
|
}
|
|
512
538
|
}
|
|
513
|
-
replacerTokens.push(
|
|
514
|
-
|
|
515
|
-
loading,
|
|
516
|
-
href,
|
|
517
|
-
title: "",
|
|
518
|
-
text,
|
|
519
|
-
children: [{
|
|
520
|
-
type: "text",
|
|
521
|
-
content: text,
|
|
522
|
-
raw: text
|
|
523
|
-
}],
|
|
524
|
-
raw: String(`[${text}](${href})`)
|
|
525
|
-
});
|
|
526
|
-
if (type === 1) replacerTokens.push({
|
|
527
|
-
type: "em_close",
|
|
528
|
-
tag: "em",
|
|
529
|
-
nesting: -1
|
|
530
|
-
});
|
|
531
|
-
else if (type === 2) replacerTokens.push({
|
|
532
|
-
type: "strong_close",
|
|
533
|
-
tag: "strong",
|
|
534
|
-
nesting: -1
|
|
535
|
-
});
|
|
536
|
-
else if (type === 3) {
|
|
537
|
-
replacerTokens.push({
|
|
538
|
-
type: "em_close",
|
|
539
|
-
tag: "em",
|
|
540
|
-
nesting: -1
|
|
541
|
-
});
|
|
542
|
-
replacerTokens.push({
|
|
543
|
-
type: "strong_close",
|
|
544
|
-
tag: "strong",
|
|
545
|
-
nesting: -1
|
|
546
|
-
});
|
|
547
|
-
}
|
|
539
|
+
replacerTokens.push(createLinkToken(text, href, loading));
|
|
540
|
+
pushEmClose(replacerTokens, type);
|
|
548
541
|
if (tokens[i + 1]?.type === "text") {
|
|
549
542
|
const afterText = tokens[i + 1].content?.replace(/^\)\**/, "");
|
|
550
|
-
if (afterText) replacerTokens.push(
|
|
551
|
-
type: "text",
|
|
552
|
-
content: afterText,
|
|
553
|
-
raw: afterText
|
|
554
|
-
});
|
|
543
|
+
if (afterText) replacerTokens.push(textToken(afterText));
|
|
555
544
|
tokens.splice(i - 4, 8, ...replacerTokens);
|
|
556
545
|
} else if (tokens[i + 1]?.type === "link_open") tokens.splice(i - 4, 10, ...replacerTokens);
|
|
557
546
|
else tokens.splice(i - 4, 7, ...replacerTokens);
|
|
@@ -1167,8 +1156,8 @@ function applyMath(md, mathOpts) {
|
|
|
1167
1156
|
pushText(toPushBefore.slice(0, _match.index));
|
|
1168
1157
|
const strongToken = s.push("strong_open", "", 0);
|
|
1169
1158
|
strongToken.markup = _match[0];
|
|
1170
|
-
const textToken = s.push("text", "", 0);
|
|
1171
|
-
textToken.content = after;
|
|
1159
|
+
const textToken$1 = s.push("text", "", 0);
|
|
1160
|
+
textToken$1.content = after;
|
|
1172
1161
|
s.push("strong_close", "", 0);
|
|
1173
1162
|
} else pushText(toPushBefore);
|
|
1174
1163
|
}
|
|
@@ -1390,7 +1379,7 @@ function parseEmphasisToken(tokens, startIndex) {
|
|
|
1390
1379
|
let i = startIndex + 1;
|
|
1391
1380
|
const innerTokens = [];
|
|
1392
1381
|
while (i < tokens.length && tokens[i].type !== "em_close") {
|
|
1393
|
-
emText += String(tokens[i].content ?? "");
|
|
1382
|
+
emText += String(tokens[i].content ?? tokens[i]?.text ?? "");
|
|
1394
1383
|
innerTokens.push(tokens[i]);
|
|
1395
1384
|
i++;
|
|
1396
1385
|
}
|
|
@@ -2237,18 +2226,18 @@ function parseInlineTokens(tokens, raw, pPreToken) {
|
|
|
2237
2226
|
if (!nextToken && /[^\]]\s*\(\s*$/.test(content)) content = content.replace(/\(\s*$/, "");
|
|
2238
2227
|
if (handleCheckboxLike(content)) return;
|
|
2239
2228
|
const preToken = tokens[i - 1];
|
|
2240
|
-
if (content === "[" && !nextToken?.markup?.includes("*") || content === "]" && !preToken
|
|
2229
|
+
if (content === "[" && !nextToken?.markup?.includes("*") || content === "]" && !preToken?.markup?.includes("*")) {
|
|
2241
2230
|
i++;
|
|
2242
2231
|
return;
|
|
2243
2232
|
}
|
|
2244
2233
|
if (handleInlineCodeContent(content, token)) return;
|
|
2245
|
-
if (handleEmphasisAndStrikethrough(content, token)) return;
|
|
2246
2234
|
if (handleInlineImageContent(content, token)) return;
|
|
2235
|
+
if (handleInlineLinkContent(content, token)) return;
|
|
2236
|
+
if (handleEmphasisAndStrikethrough(content, token)) return;
|
|
2247
2237
|
const textNode = parseTextToken({
|
|
2248
2238
|
...token,
|
|
2249
2239
|
content
|
|
2250
2240
|
});
|
|
2251
|
-
if (handleInlineLinkContent(content, token)) return;
|
|
2252
2241
|
if (currentTextNode) {
|
|
2253
2242
|
currentTextNode.content += textNode.content.replace(/(\*+|\(|\\)$/, "");
|
|
2254
2243
|
currentTextNode.raw += textNode.raw;
|
|
@@ -2360,7 +2349,7 @@ function parseInlineTokens(tokens, raw, pPreToken) {
|
|
|
2360
2349
|
let textNodeContent = content.slice(0, linkStart);
|
|
2361
2350
|
const linkEnd = content.indexOf("](", linkStart);
|
|
2362
2351
|
if (linkEnd !== -1) {
|
|
2363
|
-
const textToken = tokens[i + 2];
|
|
2352
|
+
const textToken$1 = tokens[i + 2];
|
|
2364
2353
|
let text = content.slice(linkStart + 1, linkEnd);
|
|
2365
2354
|
if (text.includes("[")) {
|
|
2366
2355
|
const secondLinkStart = text.indexOf("[");
|
|
@@ -2369,7 +2358,7 @@ function parseInlineTokens(tokens, raw, pPreToken) {
|
|
|
2369
2358
|
text = content.slice(newLinkStart + 1, linkEnd);
|
|
2370
2359
|
}
|
|
2371
2360
|
const nextToken = tokens[i + 1];
|
|
2372
|
-
if (content.endsWith("](") && nextToken?.type === "link_open" && textToken) {
|
|
2361
|
+
if (content.endsWith("](") && nextToken?.type === "link_open" && textToken$1) {
|
|
2373
2362
|
const last = tokens[i + 4];
|
|
2374
2363
|
let index = 4;
|
|
2375
2364
|
let loading$1 = true;
|
|
@@ -2380,7 +2369,7 @@ function parseInlineTokens(tokens, raw, pPreToken) {
|
|
|
2380
2369
|
if (textNodeContent) pushText(textNodeContent, textNodeContent);
|
|
2381
2370
|
pushParsed({
|
|
2382
2371
|
type: "link",
|
|
2383
|
-
href: String(textToken.content ?? ""),
|
|
2372
|
+
href: String(textToken$1.content ?? ""),
|
|
2384
2373
|
title: null,
|
|
2385
2374
|
text,
|
|
2386
2375
|
children: [{
|
|
@@ -2396,8 +2385,82 @@ function parseInlineTokens(tokens, raw, pPreToken) {
|
|
|
2396
2385
|
const linkContentEnd = content.indexOf(")", linkEnd);
|
|
2397
2386
|
const href = linkContentEnd !== -1 ? content.slice(linkEnd + 2, linkContentEnd) : "";
|
|
2398
2387
|
const loading = linkContentEnd === -1;
|
|
2388
|
+
let emphasisMatch = textNodeContent.match(/\*+$/);
|
|
2389
|
+
if (emphasisMatch) textNodeContent = textNodeContent.replace(/\*+$/, "");
|
|
2399
2390
|
if (textNodeContent) pushText(textNodeContent, textNodeContent);
|
|
2400
|
-
|
|
2391
|
+
if (!emphasisMatch) emphasisMatch = text.match(/^\*+/);
|
|
2392
|
+
if (emphasisMatch) {
|
|
2393
|
+
const type = emphasisMatch[0].length;
|
|
2394
|
+
text = text.replace(/^\*+/, "").replace(/\*+$/, "");
|
|
2395
|
+
const newTokens = [];
|
|
2396
|
+
if (type === 1) newTokens.push({
|
|
2397
|
+
type: "em_open",
|
|
2398
|
+
tag: "em",
|
|
2399
|
+
nesting: 1
|
|
2400
|
+
});
|
|
2401
|
+
else if (type === 2) newTokens.push({
|
|
2402
|
+
type: "strong_open",
|
|
2403
|
+
tag: "strong",
|
|
2404
|
+
nesting: 1
|
|
2405
|
+
});
|
|
2406
|
+
else if (type === 3) {
|
|
2407
|
+
newTokens.push({
|
|
2408
|
+
type: "strong_open",
|
|
2409
|
+
tag: "strong",
|
|
2410
|
+
nesting: 1
|
|
2411
|
+
});
|
|
2412
|
+
newTokens.push({
|
|
2413
|
+
type: "em_open",
|
|
2414
|
+
tag: "em",
|
|
2415
|
+
nesting: 1
|
|
2416
|
+
});
|
|
2417
|
+
}
|
|
2418
|
+
newTokens.push({
|
|
2419
|
+
type: "link",
|
|
2420
|
+
href,
|
|
2421
|
+
title: null,
|
|
2422
|
+
text,
|
|
2423
|
+
children: [{
|
|
2424
|
+
type: "text",
|
|
2425
|
+
content: text,
|
|
2426
|
+
raw: text
|
|
2427
|
+
}],
|
|
2428
|
+
loading
|
|
2429
|
+
});
|
|
2430
|
+
if (type === 1) {
|
|
2431
|
+
newTokens.push({
|
|
2432
|
+
type: "em_close",
|
|
2433
|
+
tag: "em",
|
|
2434
|
+
nesting: -1
|
|
2435
|
+
});
|
|
2436
|
+
const { node } = parseEmphasisToken(newTokens, 0);
|
|
2437
|
+
pushNode(node);
|
|
2438
|
+
} else if (type === 2) {
|
|
2439
|
+
newTokens.push({
|
|
2440
|
+
type: "strong_close",
|
|
2441
|
+
tag: "strong",
|
|
2442
|
+
nesting: -1
|
|
2443
|
+
});
|
|
2444
|
+
const { node } = parseStrongToken(newTokens, 0);
|
|
2445
|
+
pushNode(node);
|
|
2446
|
+
} else if (type === 3) {
|
|
2447
|
+
newTokens.push({
|
|
2448
|
+
type: "em_close",
|
|
2449
|
+
tag: "em",
|
|
2450
|
+
nesting: -1
|
|
2451
|
+
});
|
|
2452
|
+
newTokens.push({
|
|
2453
|
+
type: "strong_close",
|
|
2454
|
+
tag: "strong",
|
|
2455
|
+
nesting: -1
|
|
2456
|
+
});
|
|
2457
|
+
const { node } = parseStrongToken(newTokens, 0);
|
|
2458
|
+
pushNode(node);
|
|
2459
|
+
} else {
|
|
2460
|
+
const { node } = parseEmphasisToken(newTokens, 0);
|
|
2461
|
+
pushNode(node);
|
|
2462
|
+
}
|
|
2463
|
+
} else pushParsed({
|
|
2401
2464
|
type: "link",
|
|
2402
2465
|
href,
|
|
2403
2466
|
title: null,
|