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.
-
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)
-
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)
-
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)
-
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)
-
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 (including Windows build)
-
Run test suite in CI environment on Windows and macOS
-
Apply style rules to source code
-
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
-
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
-
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
andconvert_file
API methods (#53)
-
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
andconvert_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)
-
enclose codeblock content in literal block delimiters if content starts with a list marker (#57)
-
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
andconvert_file
(#43) -
intermediate directories are now created in
convert
instead ofconvert_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
-
break on all terminal punctuation (period, question mark, and exclamation mark) when ventilating prose (#51)
-
consolidated logic in CLI by further delegating to API
-
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
-
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
-
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
-
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
-
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
-
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)
-
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}
-
add options and usage to CLI (#2)
-
ensure directory of output file exists
-
add option to enable automatic generation of IDs for section titles
-
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
-
rewrite converter to use a structured writer
-
remove blockquote enclosure around simple admonition block
-
revert & back to &
-
use separate list level for dl
-
fold description list item to one line if primary text is a single line
-
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
-
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
-
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}
-
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
-
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 | 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
Initial release.