//= What's New (Asciidoctor {page-component-version}) = What's New in {page-component-version} :doctype: book :description: The new features, improvements, and bug fixes made in each patch release of the Asciidoctor {page-component-version} release line. :page-toclevels: 0 :url-releases-asciidoctor: {url-org}/asciidoctor/releases :url-milestone: {url-org}/asciidoctor/milestone/33?closed=1 {description} The releases are ordered from newest to oldest. _**Cumulative issues resolved:** {url-milestone}[2.0.x^]_ = Asciidoctor 2.0.19 _**Release date:** 2023.05.15_ == 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 `` tag in `
` 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 = Asciidoctor 2.0.18 _**Release date:** 2022.10.15_ == 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) == 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*) = Asciidoctor 2.0.17 _**Release date:** 2022.01.05_ == 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 embedding 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's activated by the `cache-uri` attribute * Don't warn if negated tag is not found in include file (#4230) == Build / Infrastructure * Add Ruby 3.1 to CI matrix = Asciidoctor 2.0.16 _**Release date:** 2021.08.03_ == 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., `+<>+`) * Update default stylesheet to indent blocks attached to list item in checklist (#2550) * Update default stylesheet to re-enable 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) = Asciidoctor 2.0.15 _**Release date:** 2021.04.27_ == 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 man page output == Build and infrastructure * Get remaining invoker tests working on JRuby 9.1 for Windows = Asciidoctor 2.0.14 _**Release date:** 2021.04.19_ == Bug fixes * Don't allow AsciiDoc table cell to set document attribute that was unset from the API (exceptions include: compat-mode, toc, showtitle, and notitle) (#4017) * Ensure default document attributes unset in parent document remain unset in AsciiDoc table cell (#2586) * Allow `showtitle` and `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 (e.g., `example-caption`) is unset (#4023) * Suppress missing attribute warning when applying substitutions to implicit document title for assignment to intrinsic `doctitle` attribute (#4024) + If you want to use an attribute reference in the document title (i.e., level-0 section title), and you also need to reference the `doctitle` attribute somewhere in the document, then any attributes you reference in the document title must be defined before that line (aka follow document order, just like any other attribute entry). Otherwise, they will remain unresolved in the value of the `doctitle` attribute (though they will still work in the document title itself). == 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 and infrastructure * Run tests on JRuby for Windows (#3550) = Asciidoctor 2.0.13 _**Release date:** 2021.04.10_ == Bug fixes * 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) * Don't allow `counter` and `counter2` attribute directives to override locked attributes (#3939) (*@mogztter*) * Fix crash when resolving next value in sequence for counter with non-numeric value (#3940) * Honor list of tags following negated wildcard on include directive (#3932) * Update default stylesheet to remove the 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` line 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 part of NAME section in man page doctype (#4000) * Output all mannames in name section of HTML output for man page doctype (#3757) == Build and infrastructure * Enable running tests as root (PR #3874) (*@mikemckiernan*) * Import documentation for processor into Asciidoctor core repository (#3861) (*@graphitefriction*) * Speed up CI by using Bundler cache (PR #3901) (*@slonopotamus*) * Run tests against both pygments.rb 1.x and 2.x (#3969) (*@slonopotamus*) == Documentation * Multiple copyedits and typo fixes (PR #3858)(PR #3912)(PR #3913) (*@mogztter*) * Improve Dutch translation by removing diacritic from first letter of `toc-title` and adding translations for `part` and `section` (PR #3895) (*@jdevreese*) * Update _attributes-it.adoc_ (PR #3886) (*@ciampix*) * Correct extension registry errors in _options.adoc_ (PR #3902) (*@djencks*) * Minor improvements to docs features page (PR #3917) (*@Younes-L*) * Add Belarusian translation of built-in attributes (PR #3928) (*@morganov*) * Document the `header_only` option (PR #3934) (*@mogztter*) * Add a pandoc command using docker and update command on MS Word migration page (PR #3956) (*@dacog*) * Apply minor typo and flow change to default stylesheet docs (PR #3977) (*@chrisperrault*) * Update instructions for Migrating from Confluence XHTML (#3994) (*@juliojgd*) = Asciidoctor 2.0.12 _**Release date:** 2020.11.10_ == 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 re-enable 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) * Don't append the default px unit identifier to the explicit width or height value when inlining an SVG (#3829) == Build and infrastructure * Migrate Linux CI jobs to GitHub Actions (#3837) * Migrate Windows CI jobs to GitHub Actions (#3839) * Run CI job on macOS (#3842) = Asciidoctor 2.0.11 _**Release date:** 2020.11.02_ == 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 man page 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 man page 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 man page 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 man page 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` and `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 `