Commit aeb2e2a
fix(formatters): use backslash escapes for angle brackets, strip escape artifacts in autolinks
`escapeMarkdownInline` and `escapeMarkdownCell` were using HTML entities
(`<`/`>`) to prevent `<tag>` from being parsed as HTML. But `marked`
keeps entities as-is in text tokens, so `<unknown>` rendered literally as
`<unknown>`. Switching to CommonMark backslash escapes (`\<`/`\>`)
fixes this — `marked` emits them as `escape` tokens with the decoded char.
Also fixes backslash-escaped underscores leaking into GFM autolinks.
When a URL like `https://site.com/_astro/file.js` was escaped to
`\_astro`, the GFM autolink detector captured the escaped form and
preserved the backslash literally. Now `renderOneInline` detects
autolinks via `link.raw` and strips escape artifacts from both the
link text and href.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>1 parent efb59ba commit aeb2e2a
File tree
2 files changed
+47
-10
lines changed- src/lib/formatters
- test/lib/formatters
2 files changed
+47
-10
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
78 | 78 | | |
79 | 79 | | |
80 | 80 | | |
81 | | - | |
| 81 | + | |
82 | 82 | | |
83 | 83 | | |
84 | 84 | | |
| |||
87 | 87 | | |
88 | 88 | | |
89 | 89 | | |
90 | | - | |
91 | | - | |
| 90 | + | |
| 91 | + | |
92 | 92 | | |
93 | 93 | | |
94 | 94 | | |
95 | 95 | | |
96 | 96 | | |
97 | 97 | | |
98 | | - | |
99 | | - | |
100 | | - | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
101 | 101 | | |
102 | 102 | | |
103 | 103 | | |
| |||
107 | 107 | | |
108 | 108 | | |
109 | 109 | | |
110 | | - | |
111 | | - | |
| 110 | + | |
| 111 | + | |
112 | 112 | | |
113 | 113 | | |
114 | 114 | | |
| |||
320 | 320 | | |
321 | 321 | | |
322 | 322 | | |
323 | | - | |
| 323 | + | |
| 324 | + | |
| 325 | + | |
| 326 | + | |
| 327 | + | |
| 328 | + | |
| 329 | + | |
| 330 | + | |
| 331 | + | |
| 332 | + | |
| 333 | + | |
324 | 334 | | |
325 | | - | |
| 335 | + | |
326 | 336 | | |
327 | 337 | | |
328 | 338 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
313 | 313 | | |
314 | 314 | | |
315 | 315 | | |
| 316 | + | |
| 317 | + | |
| 318 | + | |
| 319 | + | |
316 | 320 | | |
317 | 321 | | |
318 | 322 | | |
| |||
479 | 483 | | |
480 | 484 | | |
481 | 485 | | |
| 486 | + | |
| 487 | + | |
| 488 | + | |
| 489 | + | |
| 490 | + | |
| 491 | + | |
| 492 | + | |
| 493 | + | |
| 494 | + | |
| 495 | + | |
| 496 | + | |
| 497 | + | |
| 498 | + | |
| 499 | + | |
| 500 | + | |
| 501 | + | |
| 502 | + | |
| 503 | + | |
| 504 | + | |
| 505 | + | |
| 506 | + | |
| 507 | + | |
| 508 | + | |
482 | 509 | | |
483 | 510 | | |
484 | 511 | | |
| |||
0 commit comments