Revision history for Markdown-Lex
0.2.0 2026-08-21T21:28:28+01:00
- GFM pipe tables: a new Markdown::Lex::Table block with .alignments,
.header, .rows and .columns, whose cells are Markdown::Lex::Cell and
carry the same flat spans a paragraph does
- A table needs its delimiter row before it is a table, so a header row
arriving on its own stays a paragraph and the stream never flickers
- Table cells: optional outer pipes, trimming, `\|` for a literal pipe,
GFM's ragged-row rule (extra cells dropped, missing cells empty)
- parse(:hard-breaks): opt-in, off by default, turns the soft line breaks
inside a paragraph, bullet or quote into zero-text Markdown::Lex::Break
spans instead of spaces, for drawing text a human typed
- Under :hard-breaks each line is lexed alone, so emphasis does not cross a
newline -- a documented divergence from GFM, pinned by the suite
- Tables come off the non-goals list; hard breaks from two trailing spaces
stay off it
0.1.0 2026-08-09T19:44:40+01:00
- Initial release
- parse() is total: never throws, and every prefix of a document lexes
- Typed immutable blocks: Heading, Para, CodeFence, Bullet, Quote, Rule
- Flat styled spans (bold / italic / code / link) instead of an inline tree
- CommonMark-lite: ATX headings, fenced code with an info word, bullets with
depth and verbatim markers, block quotes, thematic breaks, paragraphs with
soft line breaks
- Inline: backtick-run code spans, emphasis with CommonMark's delimiter-run
and rule-of-three matching, intraword underscore protection, and links
- Unclosed fences are reported with :!closed rather than swallowed
- CRLF and lone CR normalised on entry, CRLF graphemes included