This document provides a high-level view of the changes to Kramdown AsciiDoc by release. For a detailed view of what has changed, refer to the commit history on GitHub.

Unreleased

Fixed

  • Convert language tag on source block to lowercase (#106)

2.1.0 (2022-07-04) - @mojavelinux

Added

  • Add support for multi-paragraph admonitions (#72)

  • Add support for GFM-style admonitions (#103)

  • Convert checkbox at start of items in a checklist (#94)

  • Allow diagram languages to be specified and convert matching fenced code blocks to diagram literal blocks (#76)

Fixed

  • Separate adjacent delimited literal blocks

Changed

  • Upgrade kramdown to 2.4.x

Details

url-repo/releases/tag/v2.1.0[git tag] | url-repo/compare/v2.0.1...v2.1.0[full diff]

2.0.1 (2022-06-29) - @mojavelinux

Fixed

  • Fix crash when fenced code block is empty and does not specify a language (#93)

  • Fix crash when input contains <script> tag (#98)

  • Fix crash if blockquote ends with nested block (#96)

  • Handle text that maps to an abbreviation (#97)

  • Handle front matter value that is parsed as a date or datetime (#95)

Changed

  • Add JRuby 9.3 to CI matrix

Details

url-repo/releases/tag/v2.0.1[git tag] | url-repo/compare/v2.0.0...v2.0.1[full diff]

2.0.0 (2021-07-11) - @mojavelinux

Added

  • Add support for converting block LaTeX math to stem block

  • Add support for converting span LaTeX math to inline stem macro

  • Add basic support for footnotes (#74)

Fixed

  • Use File.read instead of IO.read to suppress magic subprocess behavior

  • Enable compatibility with Ruby 3 by declaring rexml as a runtime dependency (#84)

  • Don’t crash when converting list item that only contains spaces (#83)

Changed

  • Upgrade kramdown to 2.3.x and declare kramdown-parser-gfm as runtime dependency (#85)

  • Don’t add source style to listing block when language is specified

  • Switch CI to GitHub Actions

  • Run test suite in CI environment on Windows and macOS

  • Apply style rules to source code

Details

1.0.1 (2018-11-28) - @mojavelinux

Fixed

  • Fixed bin script on Ruby 2.3 (#70)

Details

1.0.0 (2018-11-07) - @mojavelinux

Changed

  • change CLI to use default options from API

Fixed

  • automatically require version file so -v CLI flag reports correct version

Details

1.0.0.rc.1 (2018-11-06) - @mojavelinux

Added

  • ventilate prose on semi-colon following non-space character

  • add :preprocessors option to convert API; apply default preprocessors if not set; apply none if falsy (#23)

  • add :postprocessors option to convert API; takes precedence over :postprocess option (#67)

  • accept IO object as input to convert method (#49)

  • accept File object as input to convert_file method (#49)

  • add API docs to public API methods

Changed

  • remove whitespace in front of leading XML comment (so a block comment isn’t mistaken for an inline comment)

  • drop empty XML comment unless it comes after a list

Details

1.0.0.alpha.13 (2018-08-21) - @mojavelinux

Added

  • drop ID on section title if matches auto-generated value when :lazy_ids API option / --lazy-ids CLI option is set (#16)

  • auto-generate IDs for section titles when :auto_ids option is set and :input is not GFM

  • add :postprocess callback option to convert and convert_file API methods (#53)

Changed

  • automatically set idprefix, if necessary, based on value of :auto_id_prefix option when :auto_ids options is set (#16)

  • don’t modify value of :attributes option passed to convert and convert_file API methods

  • define ID containing a dot using longhand attribute assignment (#59)

  • extract raw text consistently regardless of input flavor (#56)

  • sort attributes in document header (#55)

Fixed

  • enclose codeblock content in literal block delimiters if content starts with a list marker (#57)

Details

1.0.0.alpha.12 (2018-08-11) - @mojavelinux

Added

  • encode Markdown source passed to convert to UTF-8 with universal newlines unless :encode option is false

  • convert_file now writes output to file specified by :to option, if given (#40)

  • convert_file now returns output as string when value of :to option is falsy (#39)

  • IO object can be used as value of :to option in convert and convert_file (#43)

  • intermediate directories are now created in convert instead of convert_file (#45)

  • convert_file now writes output file using explicit UTF-8 encoding (#46)

  • prevent convert_file from using input file as implicit output file

  • allow library to be required via alias kramdoc

Changed

  • break on all terminal punctuation (period, question mark, and exclamation mark) when ventilating prose (#51)

  • consolidated logic in CLI by further delegating to API

Details

1.0.0.alpha.11 (2018-08-02) - @mojavelinux

Added

  • add a public API (Kramdoc.convert and Kramdoc.convert_file) for converting input strings and paths, respectively (#31)

  • update CLI to use public API (#31)

  • run test suite on Windows using AppVeyor (#32)

  • don’t crash when empty comment occurs under primary text of list item

  • convert phrase enclosed in <span> (#36)

  • convert phrase enclosed in <mark>

  • convert a bare <div> to a paragraph

  • remove leading space from text if at beginning of line

Changed

  • add code role to codespan if enclosed in quotes (required for AsciiDoc to parse properly) (#29)

  • use unconstrained codespan if bounded on either side by a smart quote

  • ignore auto-generated ID if heading has an explicit inline anchor

Details

1.0.0.alpha.10 (2018-07-16) - @mojavelinux

Added

  • add --auto-id-prefix CLI option to set the prefix added to all auto-generated section title IDs (#26)

  • add :auto_links API option and --no-auto-links CLI option to control whether bare URLs are converted into links

Changed

  • escape codespan text using passthrough if it contains a URL

  • add blank line after list item that contains a table

  • reset list level inside delimited block (e.g., quote block)

  • move list level handling into writer

Fixed

  • insert blank line above list continuation to attach to parent list item (#27)

Details

1.0.0.alpha.9 (2018-07-10) - @mojavelinux

Changed

  • escape codespan using pass macro if text contains double plus

  • add specialcharacters replacement to inline pass macro

  • don’t add newline after period at start of line when producing ventilated prose

  • use :imagesdir API option or --imagesdir CLI option to set implicit imagesdir instead of attribute

Details

1.0.0.alpha.8 (2018-07-03) - @mojavelinux

Added

  • add support for Ruby 2.3; add to CI matrix

Changed

  • don’t escape double hyphen in codespan unless surrounded by spaces or word chars

  • treat leading specialchar (<, >, or &) as a word character (since it gets converted to a char reference)

Details

1.0.0.alpha.7 (2018-07-02) - @mojavelinux

Added

  • add :wrap option to control line wrapping behavior (:ventilate, :none, and :preserve) (#11)

  • add --wrap CLI option to control :wrap option (#11)

  • add support for unconstrained formatting (em, strong, and codespan) (#6)

  • escape all replaceable text (arrows and ellipses) when converting regular text

  • replace double plus in codespan with pp attribute reference

  • escape attribute references in regular text

  • use passthrough for codespan if text contains an attribute reference

  • use pass macro to escape literal codespan that contains ++

  • escape codespan that contains replacements (#12)

Changed

  • add replace_line method to Writer

  • replace .md extension with .adoc in text of interdoc xref

  • replace a non-breaking space with a single space instead of nbsp

Details

1.0.0.alpha.6 (2018-06-26) - @mojavelinux

Added

  • add options and usage to CLI (#2)

  • ensure directory of output file exists

  • add option to enable automatic generation of IDs for section titles

Changed

  • handle case when dd is nil

  • handle case when dd has no primary text

  • handle case when li has no primary text

  • use writer to track list nesting level

  • fix warnings

Details

1.0.0.alpha.5 (2018-06-19) - @mojavelinux

Added

  • recognize Hint as admonition label; map to TIP

  • replace no-break space with nbsp

Changed

  • rewrite converter to use a structured writer

  • remove blockquote enclosure around simple admonition block

  • revert &amp; back to &

  • use separate list level for dl

  • fold description list item to one line if primary text is a single line

Details

1.0.0.alpha.4 (2018-06-12) - @mojavelinux

Added

  • convert description (aka definition) lists (#8)

  • detect menu reference and convert to inline menu macro

  • add blank line above nested list that follows compound list item

  • convert codeblock with non-contiguous lines beginning with a command prompt to a source,console listing block

  • use list continuation to attach blockquote to list item

  • handle case when HTML br element appears at start of paragraph

  • allow blockquotes to be nested to an arbitrary depth

  • remove trailing spaces from output

  • convert deleted text span

Changed

  • use title from front matter as document title if explicit document title (level 1 heading) is absent

  • automatically convert newlines to LF when reading file

  • convert indented codeblock to literal (indented) paragraph

  • change separator comment from //- to //

  • mark br converted from HTML br element

  • round CSS width value for image

  • upgrade kramdown to 1.17.0

  • use correct casing for kramdown in README and library metadata

Details

1.0.0.alpha.3 (2018-05-31) - @mojavelinux

Added

  • patch conversion from HTML br element to native until the fix for gettalong/kramdown#514 is released

  • preserve non-default table column alignment

  • honor image width specified in style attribute of HTML img element

  • replace empty HTML p element with paragraph containing blank

Changed

  • replace ndash symbol with -- instead of &#8211;

Details

1.0.0.alpha.2 (2018-05-24) - @mojavelinux

Added

  • automatically coerce level 5 heading above codeblock to block title

  • convert HTML-based admonition blocks

  • drop HTML div element if enclosing an image

  • transfer id and class/role attributes to block image

  • honor image width specified on width attribute of HTML img element

Changed

  • don’t modify AST when converting

  • transfer comments above document title to document header

  • only process link as image with link if only child

  • escape closing square bracket in contents of link

  • don’t add cols attribute to table if table only has a single column

  • don’t add blank line between rows if table only has a single column

  • expand &#124; to |

  • escape pipe in table cell

  • replace ^ with caret in normal text

  • replace double underscore in URL with %5F%5F

  • don’t rewrite bash source language as console

Details

1.0.0.alpha.1 (2018-05-22) - @mojavelinux

Initial release.

Details