stream-markdown-parser 0.0.24 → 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.
@@ -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
@@ -100,7 +100,7 @@ function applyFixHtmlInlineTokens(md) {
100
100
  for (let i = 0; i < toks.length; i++) {
101
101
  const t = toks[i];
102
102
  if (t.type === "html_block") {
103
- const tag = t.content?.match(/<([^\s>/]+)/)?.[1] ?? "";
103
+ const tag = (t.content?.match(/<([^\s>/]+)/)?.[1] ?? "").toLowerCase();
104
104
  if (!/<\s*\/\s*[^\s>]+\s*>/.test(t.content || "")) tagStack.push([tag, i]);
105
105
  else if (tagStack.length > 0 && tagStack[tagStack.length - 1][0] === tag) tagStack.pop();
106
106
  continue;
@@ -111,7 +111,7 @@ function applyFixHtmlInlineTokens(md) {
111
111
  continue;
112
112
  }
113
113
  const content = t.content || "";
114
- const isClosingTag = (/* @__PURE__ */ new RegExp(`<\\s*\\/\\s*${tagStack[tagStack.length - 1][0]}\\s*>`)).test(content);
114
+ const isClosingTag = new RegExp(`<\\s*\\/\\s*${tagStack[tagStack.length - 1][0]}\\s*>`, "i").test(content);
115
115
  if (content) {
116
116
  const [, openIndex] = tagStack[tagStack.length - 1];
117
117
  const openToken = toks[openIndex];
@@ -126,7 +126,11 @@ function applyFixHtmlInlineTokens(md) {
126
126
  for (let i = 0; i < toks.length; i++) {
127
127
  const t = toks[i];
128
128
  if (t.type === "html_block") {
129
- const tag = t.content?.match(/<([^\s>/]+)/)?.[1] ?? "";
129
+ const tag = (t.content?.match(/<([^\s>/]+)/)?.[1] ?? "").toLowerCase();
130
+ if (tag.startsWith("!") || tag.startsWith("?")) {
131
+ t.loading = false;
132
+ continue;
133
+ }
130
134
  if ([
131
135
  "br",
132
136
  "hr",
@@ -140,11 +144,11 @@ function applyFixHtmlInlineTokens(md) {
140
144
  "li"
141
145
  ].includes(tag)) continue;
142
146
  t.type = "inline";
143
- const loading = t.content?.includes(`</${tag}>`) ? false : t.loading !== void 0 ? t.loading : true;
147
+ const loading = t.content?.toLowerCase().includes(`</${tag}>`) ? false : t.loading !== void 0 ? t.loading : true;
144
148
  t.children = [{
145
149
  type: "html_block",
146
150
  content: t.content,
147
- tag: t.content?.match(/<([^\s>/]+)/)?.[1] ?? "",
151
+ tag,
148
152
  loading
149
153
  }];
150
154
  continue;
@@ -246,6 +250,76 @@ function applyFixLinkInline(md) {
246
250
 
247
251
  //#endregion
248
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
+ }
249
323
  function applyFixLinkTokens(md) {
250
324
  md.core.ruler.after("inline", "fix_link_tokens", (state) => {
251
325
  const toks = state.tokens ?? [];
@@ -262,7 +336,15 @@ function applyFixLinkTokens(md) {
262
336
  function fixLinkToken(tokens) {
263
337
  if (tokens.length < 4) return tokens;
264
338
  for (let i = 0; i <= tokens.length - 1; i++) {
339
+ if (i < 0) i = 0;
265
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
+ }
266
348
  if (tokens[i]?.type === "text" && tokens[i].content?.endsWith("(") && tokens[i + 1]?.type === "link_open") {
267
349
  const match = tokens[i].content.match(/\[([^\]]+)\]/);
268
350
  if (match) {
@@ -271,116 +353,55 @@ function fixLinkToken(tokens) {
271
353
  const replacerTokens = [];
272
354
  if (emphasisMatch) {
273
355
  beforeText = beforeText.slice(0, emphasisMatch.index);
274
- if (beforeText) replacerTokens.push({
275
- type: "text",
276
- content: beforeText,
277
- raw: beforeText
278
- });
356
+ if (beforeText) replacerTokens.push(textToken(beforeText));
279
357
  const text = match[1];
280
358
  const type = emphasisMatch[1].length;
281
- if (type === 1) replacerTokens.push({
282
- type: "em_open",
283
- tag: "em",
284
- nesting: 1
285
- });
286
- else if (type === 2) replacerTokens.push({
287
- type: "strong_open",
288
- tag: "strong",
289
- nesting: 1
290
- });
291
- else if (type === 3) {
292
- replacerTokens.push({
293
- type: "strong_open",
294
- tag: "strong",
295
- nesting: 1
296
- });
297
- replacerTokens.push({
298
- type: "em_open",
299
- tag: "em",
300
- nesting: 1
301
- });
302
- }
359
+ pushEmOpen(replacerTokens, type);
303
360
  let href = tokens[i + 2]?.content || "";
304
361
  if (tokens[i + 4]?.type === "text" && !tokens[i + 4].content?.startsWith(")")) {
305
362
  href += tokens[i + 4]?.content || "";
306
363
  tokens[i + 4].content = "";
307
364
  }
308
- replacerTokens.push({
309
- type: "link",
310
- loading: !tokens[i + 4]?.content?.startsWith(")"),
311
- href,
312
- title: "",
313
- text,
314
- children: [{
315
- type: "text",
316
- content: text,
317
- raw: text
318
- }],
319
- raw: String(`[${text}](${href})`)
320
- });
321
- if (type === 1) replacerTokens.push({
322
- type: "em_close",
323
- tag: "em",
324
- nesting: -1
325
- });
326
- else if (type === 2) replacerTokens.push({
327
- type: "strong_close",
328
- tag: "strong",
329
- nesting: -1
330
- });
331
- else if (type === 3) {
332
- replacerTokens.push({
333
- type: "em_close",
334
- tag: "em",
335
- nesting: -1
336
- });
337
- replacerTokens.push({
338
- type: "strong_close",
339
- tag: "strong",
340
- nesting: -1
341
- });
342
- }
365
+ replacerTokens.push(createLinkToken(text, href, !tokens[i + 4]?.content?.startsWith(")")));
366
+ pushEmClose(replacerTokens, type);
343
367
  if (tokens[i + 4]?.type === "text") {
344
368
  const afterText = tokens[i + 4].content?.replace(/^\)\**/, "");
345
- if (afterText) replacerTokens.push({
346
- type: "text",
347
- content: afterText,
348
- raw: afterText
349
- });
369
+ if (afterText) replacerTokens.push(textToken(afterText));
350
370
  tokens.splice(i, 5, ...replacerTokens);
351
371
  } else tokens.splice(i, 4, ...replacerTokens);
352
372
  } else {
353
- if (beforeText) replacerTokens.push({
354
- type: "text",
355
- content: beforeText,
356
- raw: beforeText
357
- });
358
- const text = match[1];
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
+ }
359
396
  let href = tokens[i + 2]?.content || "";
360
397
  if (tokens[i + 4]?.type === "text" && !tokens[i + 4].content?.startsWith(")")) {
361
398
  href += tokens[i + 4]?.content || "";
362
399
  tokens[i + 4].content = "";
363
400
  }
364
- replacerTokens.push(...[{
365
- type: "link",
366
- loading: !tokens[i + 4]?.content?.startsWith(")"),
367
- href,
368
- title: "",
369
- text,
370
- children: [{
371
- type: "text",
372
- content: text,
373
- raw: text
374
- }],
375
- raw: String(`[${text}](${href})`)
376
- }]);
401
+ replacerTokens.push(createLinkToken(text, href, !tokens[i + 4]?.content?.startsWith(")")));
377
402
  if (tokens[i + 4]?.type === "text") {
378
403
  const afterText = tokens[i + 4].content?.replace(/^\)/, "");
379
- if (afterText) replacerTokens.push({
380
- type: "text",
381
- content: afterText,
382
- raw: afterText
383
- });
404
+ if (afterText) replacerTokens.push(textToken(afterText));
384
405
  tokens.splice(i, 5, ...replacerTokens);
385
406
  } else tokens.splice(i, 4, ...replacerTokens);
386
407
  }
@@ -399,25 +420,9 @@ function fixLinkToken(tokens) {
399
420
  href += tokens[i + 3]?.content?.slice(0, m) || "";
400
421
  tokens[i + 3].content = "";
401
422
  }
402
- replacerTokens.push({
403
- type: "link",
404
- loading,
405
- href,
406
- title: "",
407
- text,
408
- children: [{
409
- type: "text",
410
- content: text,
411
- raw: text
412
- }],
413
- raw: String(`[${text}](${href})`)
414
- });
423
+ replacerTokens.push(createLinkToken(text, href, loading));
415
424
  const afterText = tokens[i + 3].content?.replace(/^\)\**/, "");
416
- if (afterText) replacerTokens.push({
417
- type: "text",
418
- content: afterText,
419
- raw: afterText
420
- });
425
+ if (afterText) replacerTokens.push(textToken(afterText));
421
426
  tokens.splice(i - 4, 8, ...replacerTokens);
422
427
  } else {
423
428
  replacerTokens.push({
@@ -436,24 +441,67 @@ function fixLinkToken(tokens) {
436
441
  tokens.splice(i - 4, 7, ...replacerTokens);
437
442
  }
438
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 = "";
439
459
  }
440
460
  }
441
- if (tokens[i].type === "link_close" && tokens[i].nesting === -1 && tokens[i + 1]?.type === "text" && tokens[i - 1]?.type === "text" && tokens[i + 2]?.type !== "link_open") {
442
- tokens[i - 2].loading = true;
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;
443
463
  const text = tokens[i - 1].content || "";
444
464
  let href = tokens[i - 2].attrs?.[0]?.[1] || "";
445
465
  let count = 3;
446
- if (tokens[i].markup === "linkify" && tokens[i + 1]?.type === "text") {
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;
475
+ if (tokens[i].markup === "linkify" && tokens[i + 1]?.type === "text" && !tokens[i + 1]?.content?.startsWith(" ")) {
447
476
  const m = (tokens[i + 1]?.content ?? "").indexOf(")");
448
477
  if (m === -1) {
449
478
  href += tokens[i + 1]?.content?.slice(0, m) || "";
450
479
  tokens[i + 1].content = "";
451
- }
480
+ } else loading = false;
481
+ count += 1;
482
+ } else if (tokens[i + 1].type === "text" && tokens[i + 1]?.content?.startsWith("](")) {
452
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
+ }
453
501
  }
454
- tokens.splice(i - 2, count, {
502
+ replacerTokens.push({
455
503
  type: "link",
456
- loading: false,
504
+ loading,
457
505
  href,
458
506
  title: "",
459
507
  text,
@@ -464,37 +512,19 @@ function fixLinkToken(tokens) {
464
512
  }],
465
513
  raw: String(`[${text}](${href})`)
466
514
  });
467
- } else if (tokens[i].content?.startsWith("](") && tokens[i - 1].markup?.includes("*") && tokens[i - 4].type === "text" && tokens[i - 4].content?.endsWith("[")) {
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("[")) {
468
523
  const type = tokens[i - 1].markup.length;
469
524
  const replacerTokens = [];
470
- const beforeText = tokens[i - 4].content.slice(0, tokens[i - 4].content.length - 1 - type);
471
- if (beforeText) replacerTokens.push({
472
- type: "text",
473
- content: beforeText,
474
- raw: beforeText
475
- });
476
- if (type === 1) replacerTokens.push({
477
- type: "em_open",
478
- tag: "em",
479
- nesting: 1
480
- });
481
- else if (type === 2) replacerTokens.push({
482
- type: "strong_open",
483
- tag: "strong",
484
- nesting: 1
485
- });
486
- else if (type === 3) {
487
- replacerTokens.push({
488
- type: "strong_open",
489
- tag: "strong",
490
- nesting: 1
491
- });
492
- replacerTokens.push({
493
- type: "em_open",
494
- tag: "em",
495
- nesting: 1
496
- });
497
- }
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);
498
528
  const text = tokens[i - 2].content || "";
499
529
  let href = tokens[i].content.slice(2);
500
530
  let loading = true;
@@ -506,48 +536,11 @@ function fixLinkToken(tokens) {
506
536
  tokens[i + 1].content = "";
507
537
  }
508
538
  }
509
- replacerTokens.push({
510
- type: "link",
511
- loading,
512
- href,
513
- title: "",
514
- text,
515
- children: [{
516
- type: "text",
517
- content: text,
518
- raw: text
519
- }],
520
- raw: String(`[${text}](${href})`)
521
- });
522
- if (type === 1) replacerTokens.push({
523
- type: "em_close",
524
- tag: "em",
525
- nesting: -1
526
- });
527
- else if (type === 2) replacerTokens.push({
528
- type: "strong_close",
529
- tag: "strong",
530
- nesting: -1
531
- });
532
- else if (type === 3) {
533
- replacerTokens.push({
534
- type: "em_close",
535
- tag: "em",
536
- nesting: -1
537
- });
538
- replacerTokens.push({
539
- type: "strong_close",
540
- tag: "strong",
541
- nesting: -1
542
- });
543
- }
539
+ replacerTokens.push(createLinkToken(text, href, loading));
540
+ pushEmClose(replacerTokens, type);
544
541
  if (tokens[i + 1]?.type === "text") {
545
542
  const afterText = tokens[i + 1].content?.replace(/^\)\**/, "");
546
- if (afterText) replacerTokens.push({
547
- type: "text",
548
- content: afterText,
549
- raw: afterText
550
- });
543
+ if (afterText) replacerTokens.push(textToken(afterText));
551
544
  tokens.splice(i - 4, 8, ...replacerTokens);
552
545
  } else if (tokens[i + 1]?.type === "link_open") tokens.splice(i - 4, 10, ...replacerTokens);
553
546
  else tokens.splice(i - 4, 7, ...replacerTokens);
@@ -1163,8 +1156,8 @@ function applyMath(md, mathOpts) {
1163
1156
  pushText(toPushBefore.slice(0, _match.index));
1164
1157
  const strongToken = s.push("strong_open", "", 0);
1165
1158
  strongToken.markup = _match[0];
1166
- const textToken = s.push("text", "", 0);
1167
- textToken.content = after;
1159
+ const textToken$1 = s.push("text", "", 0);
1160
+ textToken$1.content = after;
1168
1161
  s.push("strong_close", "", 0);
1169
1162
  } else pushText(toPushBefore);
1170
1163
  }
@@ -1386,7 +1379,7 @@ function parseEmphasisToken(tokens, startIndex) {
1386
1379
  let i = startIndex + 1;
1387
1380
  const innerTokens = [];
1388
1381
  while (i < tokens.length && tokens[i].type !== "em_close") {
1389
- emText += String(tokens[i].content ?? "");
1382
+ emText += String(tokens[i].content ?? tokens[i]?.text ?? "");
1390
1383
  innerTokens.push(tokens[i]);
1391
1384
  i++;
1392
1385
  }
@@ -2052,6 +2045,13 @@ function parseInlineTokens(tokens, raw, pPreToken) {
2052
2045
  if (currentTextNode) {
2053
2046
  currentTextNode.content += "\n";
2054
2047
  currentTextNode.raw += "\n";
2048
+ } else {
2049
+ currentTextNode = {
2050
+ type: "text",
2051
+ content: "\n",
2052
+ raw: "\n"
2053
+ };
2054
+ result.push(currentTextNode);
2055
2055
  }
2056
2056
  i++;
2057
2057
  break;
@@ -2198,6 +2198,10 @@ function parseInlineTokens(tokens, raw, pPreToken) {
2198
2198
  function handleTextToken(token) {
2199
2199
  let index = result.length - 1;
2200
2200
  let content = String(token.content ?? "").replace(/\\/g, "");
2201
+ if (content === "1" && tokens[i - 1]?.tag === "br") {
2202
+ i++;
2203
+ return;
2204
+ }
2201
2205
  if (content.startsWith(")") && result[result.length - 1]?.type === "link") content = content.slice(1);
2202
2206
  if (content.endsWith("undefined") && !raw?.endsWith("undefined")) content = content.slice(0, -9);
2203
2207
  for (; index >= 0; index--) {
@@ -2222,18 +2226,18 @@ function parseInlineTokens(tokens, raw, pPreToken) {
2222
2226
  if (!nextToken && /[^\]]\s*\(\s*$/.test(content)) content = content.replace(/\(\s*$/, "");
2223
2227
  if (handleCheckboxLike(content)) return;
2224
2228
  const preToken = tokens[i - 1];
2225
- if (content === "[" && !nextToken?.markup?.includes("*") || content === "]" && !preToken.markup?.includes("*")) {
2229
+ if (content === "[" && !nextToken?.markup?.includes("*") || content === "]" && !preToken?.markup?.includes("*")) {
2226
2230
  i++;
2227
2231
  return;
2228
2232
  }
2229
2233
  if (handleInlineCodeContent(content, token)) return;
2230
- if (handleEmphasisAndStrikethrough(content, token)) return;
2231
2234
  if (handleInlineImageContent(content, token)) return;
2235
+ if (handleInlineLinkContent(content, token)) return;
2236
+ if (handleEmphasisAndStrikethrough(content, token)) return;
2232
2237
  const textNode = parseTextToken({
2233
2238
  ...token,
2234
2239
  content
2235
2240
  });
2236
- if (handleInlineLinkContent(content, token)) return;
2237
2241
  if (currentTextNode) {
2238
2242
  currentTextNode.content += textNode.content.replace(/(\*+|\(|\\)$/, "");
2239
2243
  currentTextNode.raw += textNode.raw;
@@ -2345,7 +2349,7 @@ function parseInlineTokens(tokens, raw, pPreToken) {
2345
2349
  let textNodeContent = content.slice(0, linkStart);
2346
2350
  const linkEnd = content.indexOf("](", linkStart);
2347
2351
  if (linkEnd !== -1) {
2348
- const textToken = tokens[i + 2];
2352
+ const textToken$1 = tokens[i + 2];
2349
2353
  let text = content.slice(linkStart + 1, linkEnd);
2350
2354
  if (text.includes("[")) {
2351
2355
  const secondLinkStart = text.indexOf("[");
@@ -2354,7 +2358,7 @@ function parseInlineTokens(tokens, raw, pPreToken) {
2354
2358
  text = content.slice(newLinkStart + 1, linkEnd);
2355
2359
  }
2356
2360
  const nextToken = tokens[i + 1];
2357
- if (content.endsWith("](") && nextToken?.type === "link_open" && textToken) {
2361
+ if (content.endsWith("](") && nextToken?.type === "link_open" && textToken$1) {
2358
2362
  const last = tokens[i + 4];
2359
2363
  let index = 4;
2360
2364
  let loading$1 = true;
@@ -2365,7 +2369,7 @@ function parseInlineTokens(tokens, raw, pPreToken) {
2365
2369
  if (textNodeContent) pushText(textNodeContent, textNodeContent);
2366
2370
  pushParsed({
2367
2371
  type: "link",
2368
- href: String(textToken.content ?? ""),
2372
+ href: String(textToken$1.content ?? ""),
2369
2373
  title: null,
2370
2374
  text,
2371
2375
  children: [{
@@ -2381,8 +2385,82 @@ function parseInlineTokens(tokens, raw, pPreToken) {
2381
2385
  const linkContentEnd = content.indexOf(")", linkEnd);
2382
2386
  const href = linkContentEnd !== -1 ? content.slice(linkEnd + 2, linkContentEnd) : "";
2383
2387
  const loading = linkContentEnd === -1;
2388
+ let emphasisMatch = textNodeContent.match(/\*+$/);
2389
+ if (emphasisMatch) textNodeContent = textNodeContent.replace(/\*+$/, "");
2384
2390
  if (textNodeContent) pushText(textNodeContent, textNodeContent);
2385
- pushParsed({
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({
2386
2464
  type: "link",
2387
2465
  href,
2388
2466
  title: null,