Commit 622b546
authored
feat(markdown): add emphasis, blockquotes, breaks, autolinks and escapes (#84)
The inline renderer knew three constructs: **strong**, code spans and links.
Everything else printed its own delimiters — *italic* rendered its asterisks,
and a backslash escape rendered the backslash.
Inline parsing now walks the source once against the mask that
markdownSyntaxSource already produces, so a delimiter inside code, behind a
backslash, or inside an autolink can never open a span, and spans nest by
recursing on the same pass. Adds em, strong and both together in either
delimiter, ~~del~~, autolinks, and CommonMark backslash escapes; underscore
forms are refused mid-word so snake_case survives, and a delimiter that does
not hug its content stays literal so 2 * 3 * 4 is arithmetic.
Blocks gain > blockquotes, which re-enter the block renderer so a list or a
heading inside a quote stays one, and --- thematic breaks, checked ahead of
lists so - - - is a break.
Two defects go with it: a closing hash sequence stayed in the heading label,
and a void block element left inside a markdown block rendered as <p><hr/></p>,
which no browser keeps nested.
Costs 1.1 KB gzip, against roughly 11 KB for the smallest markdown engine that
could replace this file.1 parent 4c3d438 commit 622b546
10 files changed
Lines changed: 608 additions & 57 deletions
File tree
- examples
- packages/htmdx
- skill
- src
- react
- test
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
241 | 241 | | |
242 | 242 | | |
243 | 243 | | |
| 244 | + | |
| 245 | + | |
| 246 | + | |
| 247 | + | |
| 248 | + | |
| 249 | + | |
| 250 | + | |
| 251 | + | |
| 252 | + | |
| 253 | + | |
| 254 | + | |
| 255 | + | |
| 256 | + | |
| 257 | + | |
| 258 | + | |
| 259 | + | |
| 260 | + | |
244 | 261 | | |
245 | 262 | | |
246 | 263 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
177 | 177 | | |
178 | 178 | | |
179 | 179 | | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
180 | 185 | | |
181 | 186 | | |
182 | 187 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
167 | 167 | | |
168 | 168 | | |
169 | 169 | | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
| 176 | + | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
170 | 192 | | |
171 | 193 | | |
172 | 194 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1518 | 1518 | | |
1519 | 1519 | | |
1520 | 1520 | | |
| 1521 | + | |
| 1522 | + | |
| 1523 | + | |
| 1524 | + | |
| 1525 | + | |
| 1526 | + | |
| 1527 | + | |
| 1528 | + | |
| 1529 | + | |
| 1530 | + | |
| 1531 | + | |
| 1532 | + | |
| 1533 | + | |
| 1534 | + | |
| 1535 | + | |
| 1536 | + | |
| 1537 | + | |
| 1538 | + | |
| 1539 | + | |
| 1540 | + | |
| 1541 | + | |
| 1542 | + | |
| 1543 | + | |
| 1544 | + | |
1521 | 1545 | | |
1522 | 1546 | | |
1523 | 1547 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1236 | 1236 | | |
1237 | 1237 | | |
1238 | 1238 | | |
1239 | | - | |
1240 | | - | |
1241 | | - | |
1242 | | - | |
1243 | | - | |
| 1239 | + | |
| 1240 | + | |
| 1241 | + | |
| 1242 | + | |
| 1243 | + | |
| 1244 | + | |
| 1245 | + | |
| 1246 | + | |
| 1247 | + | |
| 1248 | + | |
| 1249 | + | |
| 1250 | + | |
| 1251 | + | |
| 1252 | + | |
| 1253 | + | |
1244 | 1254 | | |
1245 | 1255 | | |
1246 | 1256 | | |
| |||
0 commit comments