Skip to content

Releases: asciidoctor/asciidoctor

v2.0.22

08 Mar 08:02
Compare
Choose a tag to compare

This is a patch release in the 2.0.x release line to further compatibility with Ruby 3.3.

The most critical fix in this release is to remove use of the base64 library since it will no longer being provided as part of the Ruby language starting with Ruby 3.4. When using Ruby 3.3, users would see a warning if this library is used, which happens when the data-uri attribute is set. The functionality has been replaced with a lower-level method on the String object (String#pack), which the base64 library delegates to anyway.

This release also sets the cloaked-context attribute on a source block that is defined using either a styled paragraph or a literal or fenced code structural container. This matches the functionality used for custom block extensions (when the source context does not match the final parsed context).

Distribution

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.

Changelog

Improvements

  • Set cloaked-context attribute on source block when context is not :listing (#4556)

Compliance

  • Remove use of base64 library to prevent warning in Ruby >= 3.3 (#4561)

Release meta

Released on: 2024-03-08
Released by: @mojavelinux
Release beer: Turbo Laser by Resolute Brewing Company

Logs: resolved issues | source diff | gem diff

Credits

A very special thanks to all the awesome supporters of the Asciidoctor OpenCollective campaign, who provide critical funding for the ongoing development of this project.

v2.0.21

20 Feb 22:24
Compare
Choose a tag to compare

This is a patch release in the 2.0.x release line, primarily to address compatibility with Ruby 3.3. While development of Asciidoctor 2.1 is beginning to pick up again, we extracted several other important improvements and bug fixes from main to include in this patch release.

The most critical fix in this release is to make Asciidoctor's logger compatible with the logger API in Ruby 3.3. The code is now tested against Ruby 3.3 on each change. Nearly as important, this release also turns off Ruby's system-dependent newline conversion when writing files so that Asciidoctor's output is consistent between *nix and Windows.

Numerous changes were made to correct AsciiDoc parsing. A nested dlist attached using a list continuation no longer consumes a detached paragraph. And an attached block is correctly attached to a nested dlist when that dlist is offset from its parent by an empty line. The secondary and tertiary terms on the indexterm macro are preserved when the primary term is quoted and contains an equals sign. And a bare URL enclosed in angle brackets acts as unconstrained syntax that stops at the first occurrence of a closing angle bracket. When includes are not enabled, any spaces in the include target are preserved when generating the fallback link.

Several changes were made to the DocBook output to address compliance. The abstract is moved inside the <info> tag (applies to both the abstract in the preamble as well an an abstract for a book part). The scaledwidth and scale attributes are now supported on an inline macro, like with a block image macro.

A few changes to the manpage output were made. Cells in the head row are styled as bold. Paragraph breaks in a normal table cell are preserved.

Finally, a few refinements to the default stylesheet were applied. The extra border below the doctitle when the sidebar toc is collapsed into main content area was removed. And a text decoration was added to the active footnote number link in the footnotes list.

Distribution

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.

Changelog

Compliance

  • Turn off system-dependent newline conversion when writing files; don't convert line feeds to system-dependent newline (#4550)
  • Support logger in Ruby 3.3 by instantiating super class (#4493) (@mtasaka)
  • Add support for scaledwidth and scale attributes on inline image macro in DocBook output (#4552)
  • Update latest Ruby to 3.3 in CI workflows

Improvements

  • Change title to doctitle in warning message about use of abstract to make subject more clear
  • Modify default stylesheet to add text decoration to active footnote number link in footnotes list (#4530) (@Larhzu)

Bug Fixes

  • Nested dlist attached using list continuation should not consume detached paragraph (#3535)
  • Don't break nested dlist with attached block if offset from parent list by empty line (#3693)
  • Preserve paragraph breaks in normal table cell in manpage output (#4481)
  • Style cells in head row as bold in manpage output (#4490)
  • Escape spaces in include target (using inline passthrough) when generating link from include directive (#4461)
  • Move abstract inside info tag in DocBook output (#3602)
  • Honor secondary and tertiary terms on indexterm macro when primary term is quoted and contains an equals sign (#3652)
  • Remove extra border below doctitle when sidebar toc is collapsed into main content area (#4523)
  • Treat bare URL enclosed in angle brackets as unconstrained syntax; only match until closing angled bracket (#4468)
  • Allow URL enclosed in angled brackets syntax to be escaped using backslash (#4468)

Release meta

Released on: 2024-02-20
Released by: @mojavelinux
Release beer: Lunch by Maine Beer Company

Logs: resolved issues | source diff | gem diff

Credits

A very special thanks to all the awesome supporters of the Asciidoctor OpenCollective campaign, who provide critical funding for the ongoing development of this project.

v2.0.20

18 May 07:19
Compare
Choose a tag to compare

After the 2.0.19 release, we discovered that the man page was not being updated during the release. This release has no changes other than t fix the release process. For changes related to 2.0.19, see https://github.com/asciidoctor/asciidoctor/releases/tag/v2.0.19.

Distribution

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.

Changelog

Bug Fixes

  • Update release-version attribute in READMEs and man page during release
  • Rebuild man page during release

Release meta

Released on: 2023-05-18
Released by: @mojavelinux
Release beer: Yerba Mate IPA by Athletic Brewing

Logs: resolved issues | source diff | gem diff

Credits

A very special thanks to all the awesome supporters of the Asciidoctor OpenCollective campaign, who provide critical funding for the ongoing development of this project.

v2.0.19

17 May 23:57
Compare
Choose a tag to compare

Development on Asciidoctor 2.1 has been on pause while we focus on progressing the AsciiDoc Language Specification. In the meantime, we extracted some of the minor improvements and bug fixes from main and put them into this patch release in the 2.0.x release line.

The most impactful fix is a switch from recursion to a while loop to prevent a stack limit error when looking for the next line to process. Those using JRuby will appreciate that fact that a uri:classloader: prefix is treated as an absolute path rather than a URL, which will allow those paths to be read correctly and avoid misleading security warnings.

A few refinements where made to how the AsciiDoc source is parsed. First, constrained passthroughs inside a monospace span are now always processed as expected. When parsing a dlist, a nested list that starts with at least one block attribute line is now attached correctly. The partintro block is now generated consistently, despite how it's defined in the AsciiDoc source. Numeric character references are passed over when searching for the URL fragment in the xref target. An inline ref is cataloged even if the resolved reftext is empty. An include target may not start or end with a space (to distinguish it from a dlist entry). Finally, square brackets are not swallowed when parsing an escaped URL macro.

Several improvements have been made when converting to man pages. When generating DocBook, the root <reftext> tag is correctly enclosed in an <article> tag and reftext substitutions are applied to the value of the mantitle attribute. When converting to the man page format, the alt text of a block image is processed correctly (i.e., "manified"). In the HTML output, a monospace span in a section title is not converted to uppercase.

The default stylesheet has been updated so that the margin on the first and last child of a sidebar is collapsed correctly and so the font size of a term in a horizontal list matches the font size of a term in a regular dlist.

The code has been updated to be compatible with recent software releases, including Ruby 3.2, Haml 6, and Rouge 4.1.

Distribution

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.

Changelog

Improvements

  • Return empty string instead of nil if raw or verbatim block has no lines
  • Don't uppercase monospace span in section title in manpage output (#4402)
  • Simplify processing of implicit link (i.e., autolink) by separating implicit and explicit match
  • Generate partintro block consistently (#4450)
  • Add Kiswahili translation for built-in labels (PR #4454) (@bkmgit)

Compliance

  • Fix call order so use of an include file with invalid encoding continues to raise error when using Ruby >= 3.2.0
  • Fix test assertion for fallback Rouge stylesheet to be compatible with Rouge 4.1 (#4406) (@tmzullinger)
  • Support notitle option on section as alternative to untitled to hide title (#4437)
  • Add support for Haml 6 to template converter (#4429)

Bug Fixes

  • Process constrained inline passthrough inside monospace span (#4458)
  • Catalog inline ref defined using anchor macro even when resolved reftext is empty
  • Use while loop rather than recursion to locate next line to process; prevents stack limit error (#4368)
  • Avoid matching numeric character references when searching for # in xref target (#4393)
  • Use correct selector to collapse margin on first and last child of sidebar
  • Don't allow target of include directive to start with a space (to distinguish it from a dlist item) or to end with a space
  • Manify alt text of block image in manpage output (#4401)
  • Adjust font size of term in horizontal dlist to match font size of term in regular dlist
  • Implicitly attach nested list that starts with block attribute lines to dlist entry (#4268)
  • Don't swallow square brackets when processing escaped URL macro
  • Treat uri:classloader: as an absolute path prefix when running on JRuby (#3929)
  • Apply reftext substitutions to value of mantitle attribute in DocBook output (#4448)
  • Enclose <reftext> tag in <article> tag in DocBook output for man page (#4452)
  • Correctly handle compat role on monospace and constrained passthrough when box attrlist or formatted text is escaped

Build / Infrastructure

  • Update latest CRuby in CI workflow to 3.2
  • Update latest JRuby in CI workflow to 9.4.2.0

Release meta

Released on: 2023-05-17
Released by: @mojavelinux
Release beer: Yerba Mate IPA by Athletic Brewing

Logs: resolved issues | source diff | gem diff

Credits

A very special thanks to all the awesome supporters of the Asciidoctor OpenCollective campaign, who provide critical funding for the ongoing development of this project.

v2.0.18

15 Oct 06:43
Compare
Choose a tag to compare

First and foremost, this was the first fully-automated release of this library. This new process will allows us to put out releases faster. 🎉

While development on the 2.1.0 release continues, we pulled out some of the small improvements and bug fixes and put them into this patch release for the 2.0.x release line.

The most notable fix is to tighten up the uriish? helper so it only detects a URI pattern at the start of a string, avoiding misleading messages and a potential vulnerability if misused. Speaking of misleading messages, the highlight.js integration has been updated so it isn't run on a source block that doesn't define a language (when the data-lang attribute is absent) and thus doesn't issue a warning. If transcoding an attribute value passed via the CLI, the encoding is gracefully coerced to UTF-8. If extension code is malformed, the source location in the exception message is properly formatted.

Many of the other bug fixes and improvements came out of work on Asciidoctor Reducer. Those improvements include resetting the extension registry if activate is called on it again, prevent error if unregister is called on the registry before groups are initialized, format the source location in exception message when extension code is malformed, add the include role to the link macro that replaces the include directive when the include is not enabled, store an include path in the includes table of the document catalog with the value true if it is included both partially and full, propagate the :to_dir option to the document for an AsciiDoc table cell, and fix the lineno on the reader when the skip-front-matter attribute is set but the end of the front matter is not found.

As far as user-facing changes go, the default stylesheet has been updated to honor the marker style on a nested unordered list when a marker is defined on an ancestor list.

Distribution

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.

Changelog

Improvements

  • Propagate :to_dir option to document of AsciiDoc table cell (#4297)
  • Force encoding of attribute data passed via CLI to UTF-8 if transcoding fails (#4351) (@zkaip)
  • Add include role to link macro that replaces include directive when include is not enabled

Bug Fixes

  • Change internal uriish? helper to only detect a URI pattern at start of a string; avoids misleading messages (#4357)
  • Prevent highlight.js warning when no language is set on source block; don't call highlightBlock if data-lang attribute is absent (#4263)
  • Don't raise error if Asciidoctor::Extensions.unregister is called before groups are initialized (#4270)
  • If path is included both partially and fully, store it with true value (included fully) in includes table of document catalog
  • Reset registry if activate is called on it again (#4256)
  • Format source location in exception message when extension code is malformed
  • Fix lineno on reader when skip-front-matter attribute is set but end of front matter is not found
  • Fix Asciidoctor::Cli::Invoker constructor when first argument is a hash
  • Update default stylesheet to honor marker on unordered list when marker is defined on ancestor unordered list (#4361)

Release meta

Released on: 2022-10-15
Released by: @mojavelinux
Release beer: Chimay Blue by Chimay

Logs: resolved issues | source diff | gem diff

Credits

A very special thanks to all the awesome supporters of the Asciidoctor OpenCollective campaign, who provide critical funding for the ongoing development of this project.

v2.0.17

06 Jan 00:43
Compare
Choose a tag to compare

Summary

While beginning work on the 2.1.0 release, we discovered a few issues that needed to be backported to the 2.0.x line. Thus, this is a backport patch release. We also made numerous improvements to the documentation.

The most notable changes include fixing the display of the collapsible block in Safari (aligning the appearance with other browsers), getting the playlist attribute for YouTube videos working again, removing excess spacing around an empty list item, aligning the styles for the Rouge and Pygments default stylesheet, trimming the space after the line number in Pygments output, honoring stripes=none on nested tables, processing author and authors document attribute when implicit doctitle is absent, preventing line numbers on source blocks in HTML output from being selected, and removing the warning if a negated tag is not found in an include file (which is a valid scenario). For extension authors, Asciidoctor now ignores the return value of the process method for custom block or block macro if the value matches parent argument. You can also now return an AbstractBlock that's not itself a Block (such as a list or table). And thanks to an update to the open-uri-cached gem, the cache-uri attribute is now working on Ruby 3.1, and there are finally tests for that feature!

Consult the CHANGELOG to find the full list of changes in this release.

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: 2022-01-05
Released by: @mojavelinux
Release beer: Santa's Little Helper by Port Brewing

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

Changelog

Bug Fixes

  • Don't crash if process method for custom block returns an abstract block with context :compound that isn't of type Block (e.g., a list)
  • Ignore return value of process method for custom block or block macro if value matches parent argument
  • Remove unnamespaced selectors in Pygments stylesheet
  • Normalize output from Pygments to use linenos class for inline line numbering and trim space after number; update default stylesheet accordingly
  • Change AbstractBlock#sections? to return false when called on block that isn't a Section or Document (PR #3591) @mogztter
  • Hide built-in marker on HTML summary element in Safari when using default stylesheet (#4162)
  • Hide outline around HTML summary when activated in Safari (#4162)
  • Include primary video in value of playlist attribute when embeddding YouTube video (#4156)
  • Honor stripes=none on nested table (#4165)
  • Update default stylesheet to fix spacing around empty list item (#4184)
  • Honor :header_only option when parsing document with manpage doctype (#4192)
  • Use numeric character reference for closing square bracket around alt text of icon
  • Process author or authors document attribute in document header when implicit doctitle is absent (#4206)
  • Patch open-uri-cached gem to work with Ruby 3.1 (update: drop patch now that open-uri-cached has been fixed) (#4227)

Improvements

  • Prevent line numbers on source blocks in HTML output from being selected (applies to pygments and coderay) (#4128)
  • Allow hash to be specified for Vimeo video either in video ID or using hash attribute (#4176)
  • Remove unnecessary specificity in default stylesheet for styling p element inside list item
  • Remove obsolete gist embed styles from default stylesheet
  • Allow --failure-level to be set to default value, FATAL
  • Sort levels in help for --failure-level option in ascending order
  • Invert FR translations for caution & warning admonition labels (#4212) (cyChop)
  • Add tests for open-uri-cached integration that is activated by the cache-uri attribute
  • Don't warn if negated tag is not found in include file (#4230)

Documentation

  • Document how to extend an existing converter or create a new converter (#4136)
  • Document the syntax topic of the --help CLI option (#4175)
  • Document how to uninstall the Asciidoctor gem (#4154)
  • Document how to enable and use the sourcemap (the :sourcemap option)
  • Document how to catalog additional assets (the :catalog_assets option)

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.

v2.0.16

03 Aug 18:59
Compare
Choose a tag to compare

Summary

This is a patch release with a big impact, bringing with it several notable changes. First, two regressions have been fixed when using negated wildcards in include tag filtering, and the meaning of negated wildcards in tag filtering has been clarified in general. Second, the source of the default stylesheet has been imported into this repository (now managed using a PostCSS build with autoprefixer and cssnano). Third, an internal change was made to how lines are iterated by the reader (switching from a stack to a queue), which will substantially improve the performance of Asciidoctor.js when processing large files. Finally, numerous improvements were made to the man page converter.

This release also includes a handful of smaller bug fixes, including two scenarios where an undefined method error was creeping in. Several impactful updates were made to the documentation during this release cycle as well, most notably on the topic of generating man pages. An initial set of changes have been applied to the code base in preparation for enabling RuboCop to enforce a code style. The remainder of those changes, as well as the task itself, have already been applied to the default branch. Those updates will also be applied to the branch for this release line following this release. Speaking of release lines, the default branch is now open for 2.1.x development and beyond!

Consult the CHANGELOG to find the full list of changes in this release.

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: 2021-08-03
Released by: @mojavelinux
Release beer: Bourbon Barrel Aged Barley Wine by Living the Dream

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

Changelog

Bug Fixes

  • Include all lines outside of specified tagged region when tag filter on include directive is a single negated tag (#4048)
  • Only interpret negated wildcard in tag filter on include directive as implicit globstar if it precedes other tags (#4086)
  • Change ifeval directive to resolve to false if comparison operation cannot be performed (#4046)
  • Don't crash if :to_file option is passed to load or load_file and value is not a string (#4055)
  • Use automatic link text if ID in shorthand xref is followed by dangling comma (e.g., <<idname,>>)
  • Update default stylesheet to indent blocks attached to list item in checklist (#2550)
  • Update default stylesheet to reenable styling of implicit lead role on first paragraph of preamble inside AsciiDoc table cell
  • Update default stylesheet to fix conflict between text decoration and bottom border on abbr[title] element
  • Change invalid font family "sans" in default stylesheet to "sans-serif"
  • Fix missing automatic reftext for internal xrefs in manpage output (#4110)
  • Replace numeric character reference for plus in manpage output (#4059)
  • Replace numeric character reference for degree sign in manpage output (#4059)
  • Convert apostrophe to the portable \*(Aq variable instead of the groff-specific escape \(aq (#4060) (@felipec)
  • Document the -e, --embedded option flag in the man page, which replaces the outdated -e, --eruby option flag

Improvements

  • Use queue to iterate over lines in reader instead of stack (#4106)
  • Uppercase automatic reftext for level-2 section titles in manpage output if reftext matches section title (#4110)
  • Show safe modes in strictness order in CLI help (#4065)
  • Remove redundant styles from the default stylesheet
  • Update font styles for summary element in default stylesheet to match font styles of paragraph (#4114)
  • Update default stylesheet to indent content of details element (#4116)
  • Update default stylesheet to use custom marker for summary element to make appearance consistent (#4116)
  • Add Vietnamese translation of built-in attributes (PR #4066) (@nguyenhoa93)
  • Add Thai translation of built-in attributes (PR #4113) (@ammaneena)

Build / Infrastructure

  • Import source of default stylesheet into this repository; use PostCSS with cssnano to minify (#4062)
  • Use autoprefixer to manage browser prefixes in default stylesheet (#4118)

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.

v2.0.15

27 Apr 21:11
Compare
Choose a tag to compare

Summary

Right on the tails of the previous release, this minor patch release comes out of thoroughly testing the Asciidoctor 1 to Asciidoctor 2 upgrade on several large documentation sites. That hope that the previous release was the last one in the 2.0.x series before work begins on 2.1.x now extends to this release.

The main issue this release fixes is to provide fallback xreftext for HTML output and the correct linkend value for DocBook output when an xref resolves to the current document and no link text is provided. This release also brings three minor fixes to how attrlists are parsed, though the impact of these changes is likely very small. While working on parsing, we discovered that trailing punctuation (., ?, and !) was getting included in the target URL of an autolink in certain cases. The trailing punctuation now stays outside of the link. In the manpage output, keyboard references are now formatted in monospace. Additionally, text formatting markup should now be interpreted more accurately.

Consult the CHANGELOG to find the full list of changes in this release.

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: 2021-04-27
Released by: @mojavelinux
Release beer: Casey, You're On Mute by 4 Noses Brewing Company

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

Changelog

Bug Fixes

  • Don't include trailing period, question mark, or exclamation point in target (URL) of autolink (#3860)
  • Don't assign nil value to named attribute mapped to absent positional attribute when parsing attrlist (#4033)
  • Remove leading and trailing spaces around role on inline phrase (#4035)
  • Ignore empty role on inline phrase defined using legacy syntax and followed by comma (#4035)
  • Use xreftext on document as fallback link text in HTML output for inter-document xref that resolves to current document when no link text is provided (#4032)
  • Use xreftext on document as fallback link text in HTML output for internal xref with empty fragment when no link text is provided (#4032)
  • Use document ID as linkend in DocBook output for internal xref with empty fragment; auto-generating one if necessary (#4032)

Improvements

  • Format keyboard references in monospace in manpage output

Build / Infrastructure

  • Get remaining invoker tests working on JRuby 9.1 for Windows

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.

v2.0.14

19 Apr 09:09
Compare
Choose a tag to compare

Summary

This patch release was a quick turnaround from the previous release to fix issues that were discovered while testing the Asciidoctor 2 upgrade in Antora. It also provided the opportunity to fix a few additional bugs we uncovered while grooming the issue tracker. If all goes well, we expect this to be the last release of the 2.0.x series before work begins on 2.1.x.

The main issue we discovered is that the caption attribute on a block was not being honored if the global *-caption attribute (e.g., example-caption) was unset. It turns out, this regression has been around ever since the Asciidoctor 2.0.0 release, but we only just discovered it. Now, the caption attribute on the block always wins out. We also discovered that, in certain cases, document attributes unset by the API could still be set in an AsciiDoc table cell. That loophole has been closed. Additionally, if a default attribute (like table-caption) is unset in the parent document, it remains unset in the AsciiDoc table cell. There are certain attributes which can be controlled independently by the AsciiDoc table cell. That list now includes showtitle/notitle. When fixing the security vulnerability in the counter attribute directive, we inadvertently broke counters when the attribute is locked. The counter now operates even when the attribute is locked.

Consult the CHANGELOG to find the full list of changes in this release.

During this release cycle, we finally got the Asciidoctor test suite running on JRuby for Windows for the first time.

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: 2021-04-19
Released by: @mojavelinux
Release beer: Three Philosophers by Brewery Ommegang

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

Changelog

Bug Fixes

  • Don't allow AsciiDoc table cell to set document attribute that was unset from the API (except compat-mode, toc, and showtitle/notitle) (#4017)
  • Ensure default document attributes unset in parent document remain unset in AsciiDoc table cell (nested) document (#2586)
  • Allow showtitle/notitle to be toggled in AsciiDoc table cell if set in parent document (#4018)
  • Ensure mtime of input file honors TZ environment variable on JRuby for Windows (affects value of docdatetime attribute) (#3550)
  • Honor caption attribute on blocks that support captioned title even if corresponding *-caption document attribute is not set (#4023)
  • Suppress missing attribute warning when applying substitutions to implicit document title to assign to doctitle attribute (#4024)
  • Increment counter (but not the corresponding attribute) if attribute is locked (#4013)

Improvements

  • Use attribute, if set, as seed value for counter even if not already registered as a counter (#4014)
  • Allow subs attribute value on Inline node returned by process method for custom inline macro to be a String (#3938)
  • Allow value of user-home attribute to be overridden by API or CLI (#3732)

Build / Infrastructure

  • Run tests on JRuby for Windows (#3550)

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.

v2.0.13

10 Apr 22:52
Compare
Choose a tag to compare

Summary

This is an important patch release that resolves a significant regression in the include directive introduced in 2.0.11, patches a discovered security vulnerability with the counter attribute directives, fixes numerous bugs in the man page converter, and brings a handful of other fixes and improvements. We strongly recommend upgrading to this version. This release will also be the candidate for making the switch to Asciidoctor 2 upgrade in Antora.

In an attempt to fix the detection of a document header inside an include file, the processor was changed in 2.0.11 to remove leading and trailing empty lines in included AsciiDoc content. This turned out to be the wrong decision because it broke documents that relied on these empty lines to separate blocks. It also didn't fully address the problem. That change has been rolled back and the correct fix applied. We also discovered that it was possible to assign a value to an attribute locked by the API using the counter and counter2 attribute directives. This back door has been closed so that the locked state of the attribute is closed. The processor was also updated so non-ASCII characters used as the value of a counter attribute no longer cause the processor to crash. Thanks to a handful of reports filed by the community, we were able to substantially improve the man page output, including adding support for footnotes and page breaks, not mangling formatting macros when transforming section titles to uppercase, and substituting attribute references in the purpose part of the name section. Thanks to @slonopotamus, the Pygments adapter was updated to support the pygments.rb 2 gem in addition to the pygments.rb 1 gem. You're encouraged to upgrade to pygments.rb 2 as it is both maintained and more stable. If you're using Rouge, thanks to @Oblomov, you should now find it easier to extend the built-in adapter to customize the lexer or formatter as the logic to instantiate them have been extracted so they can be overridden. Finally, to silence all log messages when using the API, you can pass the logger: nil option.

Consult the CHANGELOG to find the full list of changes in this release.

During this release cycle, the documentation for the Asciidoctor processor was imported into this repository and is published on the new https://docs.asciidoctor.org site powered by Antora. Thanks to @graphitefriction for her incredibly hard work to make that happen.

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: 2021-04-10
Released by: @mojavelinux
Release beer: Rumpin by Avery Brewing Company

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

Changelog

Bug Fixes

  • Don't allow counter and counter2 attribute directives to override locked attributes (#3939)
  • Fix crash when resolving next value in sequence for counter with non-numeric value (#3940)
  • Rollback change for #3470, which added logic to remove leading and trailing empty lines in an AsciiDoc include file; instead skip empty lines before processing document header (#3997)
  • Update default stylesheet to remove dash in front of cite on nested quote block (#3847)
  • Don't mangle formatting macros when uppercasing section titles in man page output (#3892)
  • Don't escape hyphen in manname in man page output
  • Remove extra .sp before content of verse block in man page output
  • Fix layout of footnotes in man page output (#3989)
  • Fix formatting of footnote text with URL in man page output (#3988)
  • Remove redundant trailing space on URL followed by non-adjacent text in man page output (#4004)
  • Use .bp macro at location of page break in man page output (#3992)

Improvements

  • Extract method to create lexer and formatter in Rouge adapter (#3953) (@Oblomov)
  • Add support for pygments.rb 2.x (#3969) (@slonopotamus)
  • Allow NullLogger to be enabled by setting the :logger option to a falsy value (#3982)
  • Substitute attributes in manpurpose in NAME section of man page (#4000)
  • Output all mannames in name section of HTML output for manpage doctype (#3757)

Build / Infrastructure

Documentation

  • add Belarusian translation of built-in attributes (PR #3928) (@Morganov)

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.