Asciidoctor v2.0.12 Release Notes

Release Date: 2020-11-10 // 11 months ago
  • Summary

    🚀 This is a minor patch release that fixes some regressions that were introduced during the long release cycle of 2.0.11. We strongly recommend upgrading to this version instead of using 2.0.11.

    ⏪ Notable changes include restoring the type and target on unresolved footnotes (so they display properly), fixing a crash when an extension set a numeric width or height on an SVG image when using opts=inline, resetting the word wrap behavior to normal on tables to avoid aggressive word breaks, reverting the use of a Ruby 2.3 construct that prevented Asciidoctor from working on CentOS, including the role on an inline image in the DocBook output, and passing through the explicit width and height values on an SVG image as is when using opts=inline.

    🚀 Please note that it will not be possible to use Asciidoctor on Ruby < 2.3 after the 2.0.x release line. Those versions are already unsupported. However, since we had not yet made a change that prevented them from working, we'll wait until 2.1.x to do so.

    🚀 During this release, all the CI jobs were migrated from Travis CI to GitHub Actions. We also added a CI job to run the test suite on macOS.

    As usual, consult the CHANGELOG for all the details.

    Distributions

    Asciidoctor is also packaged for Fedora, Debian, Ubuntu, Alpine Linux, OpenSUSE, and Homebrew. You can use the system's package manager to install the package named asciidoctor.

    🚀 Release meta

    🚀 Released on: 2020-11-10
    🚀 Released by: @mojavelinux
    🚀 Release beer: For the Animals: Imperial Breakfast by Alternation Brewing Company

    🔊 Logs: resolved issues | full diff | issues resolved in 2.0.x (cumulative)

    🔄 Changelog

    🐛 Bug Fixes

    • 🛠 Set type and target property on unresolved footnote reference and unset id property (fixes regression) (#3825)
    • 🛠 Fix crash when inlining an SVG if the explicit width or height value on the image node is not a string (#3829)
    • Reset word wrap behavior to normal on tables, then reenable again for admonition content, horizontal dlist description, and AsciiDoc table cells (#3833)

    👌 Improvements

    • Pass through role to DocBook output for inline image (#3832)

    Compliance

    • 🚀 Defer use of Ruby >= 2.3 constructs to restore compatibility with Ruby 2.0 until at least next minor release (#3827)
    • 0️⃣ Don't append the default px unit identifier to the explicit width or height value when inlining an SVG (#3829)

    🏗 Build / Infrastructure

    • 🐧 Migrate Linux CI jobs to GitHub Actions (#3837)
    • 🏁 Migrate Windows CI jobs to GitHub Actions (#3839)
    • 🍎 Run CI job on macOS (#3842)

    Credits

    A very special thanks to all the awesome supporters of the Asciidoctor OpenCollective campaign who provided critical funding for the development of this release as well as ongoing development of the project. We'd also like to thank the maintainers of the Rouge project, who helped us work through the compatibility issue with Rouge and applied a fix to restore it ahead of our own release.


Previous changes from v2.0.11

  • Summary

    🚀 This is a big patch release that fixes a slew of issues that have been discovered from heavy usage. It's a larger release than we had planned because we're in the process of rewriting the docs and have been holding minor releases until the docs were merged. Unfortunately, that has taken longer than expected. But we're nearly there. In the meantime, we're putting out this patch release to publish the fixes that have accumulated in the meantime.

    💅 Notable changes include fixing two infinite loop scenarios, applying text formatting to cells in the implicit table head row when the column has the "a" or "l" style, restoring compatibility with Rouge >= 3.4 (by defining entry point API methods as class methods instead of module functions), fix bottom margin collapsing on an AsciiDoc table cell, removing excess hard line breaks in multi-line AsciiMath blocks, preserving repeating blackslashes in manpage output, move style tags for syntax highlighters into head of HTML output, for wrapping to avoid overflow in HTML output, fix cell borders for colspan or rowspan cells when frame and grid attribute values are congruent, and allow the encoding of the include file to be specified using the encoding attribute.

    💎 Oh, and the API docs on rubydoc.info are working once again! https://www.rubydoc.info/gems/asciidoctor/

    As usual, consult the CHANGELOG for all the gory details. 🎃

    Distributions

    Asciidoctor is also packaged for Fedora, Debian, Ubuntu, Alpine Linux, OpenSUSE, and Homebrew. You can use the system's package manager to install the package named asciidoctor.

    🚀 Release meta

    🚀 Released on: 2020-11-02
    🚀 Released by: @mojavelinux
    🚀 Release beer: Chimay Blue

    🔊 Logs: resolved issues | full diff | issues resolved in 2.0.x (cumulative)

    🔄 Changelog

    🐛 Bug Fixes

    • 🛠 Fix infinite loop when callout list with obsolete syntax is found inside list item (#3472)
    • 🛠 Fix infinite loop when xreftext contains a circular reference path in HTML and manpage converters (#3543)
    • 💅 Apply text formatting to table cells in implicit header row when column has the "a" or "l" style (#3760)
    • 🛠 Fix errant reference warning for valid reference when running in compat mode (#3555)
    • 🎉 Initialize backend traits for converter (if not previously initialized) using assigned basebackend; mimics Asciidoctor < 2 behavior (#3341)
    • Set source_location on preamble block when sourcemap option is enabled (#3799)
    • 🔗 Link the notitle and showtitle attributes so they act as opposites for the same toggle (#3804)
    • ⏪ Pass options to constructor of Rouge lexer instead of #lex method; restores compatibility with Rouge >= 3.4 (#3336)
    • 💅 Don't clobber cgi-style options on language when enabling start_inline option on the Rouge PHP lexer (#3336)
    • 🛠 Fix parsing of wrapped link and xref text, including when an attrlist signature is detected (#3331)
    • ⏪ Restore deprecated writable number property on AbstractBlock
    • 💅 Always use title as xreftext if target block has an empty caption, regardless of xrefstyle value (#3745)
    • 👍 Allow a bibliography reference to be used inside a footnote (#3325)
    • 🛠 Fix bottom margin collapsing on AsciiDoc table cell (#3370)
    • ✂ Remove excess hard line break in multi-line AsciiMath blocks (#3407)
    • Only strip trailing spaces from lines of AsciiDoc include file (#3436)
    • ✂ Remove errant optional flag in regexp for menu macro that breaks Asciidoctor.js (#3433)
    • Preserve repeating backslashes when generating manpage output (#3456)
    • Honor percentage width specified on macro of inline SVG (#3464)
    • 📜 Removing leading and trailing blank lines in AsciiDoc include file to match assumption of parser (#3470)
    • Activate extensions when :extensions option is set even if Extensions API is not yet loaded (#3570)
    • Don't activate global extensions if :extensions option is false (#3570)
    • Escape ellipsis at start of line in manpage output (#3645) (@jnavila)
    • Don't register footnote with ID if a footnote is already registered with that ID (#3690)
    • Honor start attribute on ordered list in manpage output (#3714)
    • Warn instead of crashing if SVG to inline is empty (#3638) (@Mogztter)
    • Compute highlight line ranges on source block relative to value of start attribute (#3519) (@Mogztter)
    • Prevent collapsible block from incrementing example number by assigning an empty caption (#3639)
    • 👉 Use custom init function for highlight.js to select the correct code elements (#3761)
    • Fix resolved value of :to_dir when both :to_file and :to_dir options are set to absolute paths (#3778)
    • 🛠 Fix crash if value of stylesheets attribute contains a folder and the destination directory for the stylesheet does not exist (even when the :mkdirs option is set) (#3808)
    • 🛠 Fix crash if value passed by API for copycss attribute is not a string (#3592)
    • ⏪ Restore label in front of each bibliography entry in DocBook output that was dropped by fix for #3085 (#3782)
    • Apply max width to each top-level container instead of body in HTML output (#3513)
    • 🛠 Don't apply border-collapse: separate to HTML for table blocks; fixes double border at boundary of colspan/rowspan (#3793) (@ahus1)
    • 🚚 Don't remove right border on last table cell in row (#2563)
    • Rework table borders to leverage border collapsing (apply frame border to table, grid border to cells, and selectively override border on cells to accommodate frame) (#3387)

    Compliance

    • ➕ Add support for muted option to self-hosted video (#3408)
    • 💅 Move style tag for convert-time syntax highlighters (coderay, rouge, pygments) into head (#3462)
    • 💅 Move style tag for client-side syntax highlighters (highlight.js, prettify) into head (#3503)
    • Define entry point API methods (load, convert, load_file, convert_file) as class methods instead of module_function to avoid conflict with Kernel.load (#3625)
    • Retain attribute order on HTML code tag for source block to remain consistent with output from 1.5.x (#3786)
    • Correct language code for Korean language file from kr to ko (#3807) (@jnavila)

    👌 Improvements

    • 💅 Apply word wrap (i.e., word-wrap: anywhere) to body in default stylesheet (#3544)
    • 👍 Allow nobreak and nowrap roles to be used on any inline element (#3544)
    • 💅 Preserve guard around XML-style callout when icons are not enabled (#3319)
    • 👉 Use .fam C command to switch font family for verbatim blocks to monospaced text in manpage output (#3561)
    • ✂ Remove redundant test for halign and valign attributes on table cell in DocBook converter
    • 👍 Allow encoding of include file to be specified using encoding attribute (#3248)
    • 👍 Allow template to be used to override outline by only specifying the outline template (#3491)
    • ⬆️ Upgrade MathJax from 2.7.5 to 2.7.6
    • 0️⃣ Skip unused default attribute assignments for embedded document
    • 👍 Allow a URL macro to have a preceding single or double quote (#3376)
    • ➕ Add support for erubi template engine; use it in place of erubis in test suite; note the use of erubis is deprecated (#3737)
    • 💅 Download and embed remote custom stylesheet if allow-uri-read is set (#3765)
    • ✂ Remove direction property from default stylesheet (#3753) (@abdnh)
    • ✂ remove max width setting on content column for print media in default stylesheet (#3802)
    • Normalize frame value "topbot" to "ends" in HTML output (consistently use frame-ends class) (#3797)
    • ➕ Add role setter method on AbstractNode (#3614)

    🏗 Build / Infrastructure

    • ✅ Run test suite on TruffleRuby nightly (@Mogztter, @erebor)
    • ⬆️ Upgrade TruffleRuby to 20.0.0 (@Mogztter)
    • 🏗 Trigger upstream builds for AsciidoctorJ on Github Actions (@robertpanzer)

    Credits

    A very special thanks to all the awesome supporters of the Asciidoctor OpenCollective campaign who provided critical funding for the development of this release as well as ongoing development of the project. We'd also like to thank the maintainers of the Rouge project, who helped us work through the compatibility issue with Rouge and applied a fix to restore it ahead of our own release.