Skip to content

v0.25.0

Compare
Choose a tag to compare
@kivikakk kivikakk released this 12 Jul 10:01
· 65 commits to main since this release
ae113bf
  • Discord-flavored Markdown by @Meow and @liamwhite in #421
    • Three new extensions and two render options are added:
      • extension.underline adds support for __underlined__ text.
      • extension.spoiler adds support for ||spoiler|| text.
      • extension.greentext adds support for image board-style >greentext, which isn't transformed into a blockquote.
      • render.ignore_setext disables parsing setext-style headings.
      • render.ignore_empty_links causes links with no text (like [](xyz)) to remain in the text as-is.
  • nodes: add From impls for AstNode. by @kivikakk in #424
    • Back by popular demand: AstNode::from(NodeValue).
    • Also added is AstNode::from(Ast), if you have sourcepos.
  • AST validation by @yannham in #425
    • The AST is validated when formatting a document as CommonMark in debug builds.
  • Address autolink edge cases. by @kivikakk in #426
    • Autolinks had many edge cases where output differed from upstream cmark-gfm. These have been fixed by following upstream's parser design closely.
  • shortcodes: capture all known aliases. by @kivikakk in #427
    • We didn't parse shortcodes containing numbers or +. We do now.
  • Support both upstream CommonMark and GFM's differences in the base spec. by @kivikakk in #428
    • GFM modifies even base CommonMark output somewhat. We now support and validate against both.
  • cm: count ol items from start of each list. by @kivikakk in #429
    • Ordered list item numbers are normalised on formatting back to CommonMark.
  • arena_tree: panic if iterator invalidation causes trouble. by @kivikakk in #437
    • arena_tree would silently stop iteration when trying to proceed from a child that had lost its parent. It now panics instead, as the old behaviour is incorrect and impossible to notice.
  • broken reflink callback updates & big cleanup. by @kivikakk in #438
    • The broken reference link callback has been moved into ParseOptions (which now takes a lifetime, meaning Options does too).
    • The callback now takes a struct containing both the normalised reference, and the original text, and the return value has changed from a 2-tuple to a struct for clarity.
    • parse_document_with_broken_link_callback has been marked deprecated.
  • Inline sourcepos fixes. by @kivikakk in #439
    • Inline sourcepos was provided on a best-effort basis, but there are multiple correctness issues which can't be fixed without significant work.
    • Inline sourcepos is no longer reported in HTML output. It remains in the AST and in XML output, but it is not reliable. See the PR for details.
    • Link sourcepos is slightly better than it was when it spans multiple lines.

New Contributors

Diff: v0.24.1...v0.25.0