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.
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.
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)
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 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)
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)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Updates the requirements on asciidoctor to permit the latest version.
Release notes
Sourced from asciidoctor's releases.
... (truncated)
Changelog
Sourced from asciidoctor's changelog.
... (truncated)
Commits
215a110
Release 2.0.13674b26e
minor revisions to README [skip ci]f5af20a
add missing entries to CHANGELOG; clean up and rearrange recent entries [skip...52b95f8
upgrade template libraries9bf9f8c
Add documentation for docinfo header (PR #3954)ca7b63e
resolves #3892 don't mangle formatting macros when uppercasing section titles...1900464
resolves #3757 output all mannames in name section of HTML output for manpage...719d1b0
resolves #3997 rollback change for #3470; skip empty lines before processing ...c963e1f
update recent entries in CHANGELOG to use man page instead of manpage [skip ci]f5abc90
resolves #4004 remove redundant trailing space on URL followed by non-adjacen...Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)