Skip to content

Releases: asciidoctor/asciidoctor

v2.0.2

26 Mar 22:28
Compare
Choose a tag to compare

Summary

A bug fix release to address a critical bug found in the 2.0.0 and 2.0.1 releases. Namely, verbatim substitutions were not being applied to literal paragraphs inside of list items. This release also adds the #lines and #source methods to Asciidoctor::Table:Cell so it quacks more like an AbstractBlock (and to address an incompatibility with asciidoctor-bibtex).

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: 2019-03-26
Released by: @mojavelinux
Release beer: Wolfpicker Experimental IPA by Odell Brewing Co

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

Changelog

Bug Fixes::

  • apply verbatim substitutions to literal paragraphs attached to list item (#3205)
  • implement #lines and #source methods on Table::Cell based on cell text (#3207)

v2.0.1

25 Mar 11:49
Compare
Choose a tag to compare

Summary

A bug fix release to address regressions found shortly after the 2.0.0 release. The main change is that attribute references in section titles are resolved properly. There were also two fix to the extension option API to retain backwards compatibility with existing extensions. Writers that use the AsciiMath integration will be happy to know that asciimath blocks are now centered like latexmath blocks.

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: 2019-03-25
Released by: @mojavelinux

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

Changelog

Bug Fixes

  • convert titles of cataloged block and section nodes containing attribute references eagerly to resolve attributes while in scope (#3202)
  • customize MathJax (using a postfilter hook) to apply displaymath formatting to AsciiMath block (#2498)
  • fix misspelling of deprecated default_attrs DSL function (missing trailing "s")
  • remove unused location property (attr_accessor :location) on DocinfoProcessor class
  • look for deprecated extension option :pos_attrs if :positional_attrs option is missing (#3199)
  • add detail to load error message if path differs from gem name (#1884)

Build / Infrastructure

  • bundle .yardopts in RubyGem (#3193)

v2.0.0

22 Mar 21:24
Compare
Choose a tag to compare

Summary

Now this is a major version. The big 2.0!

This release is a major step forward for Asciidoctor. Not only does it get us over the pitfall of second version syndrome, it marks a switch to semantic versioning and a faster release cycle. It also goes a long way towards modernizing the codebase by dropping unsupported versions of Ruby (Ruby < 2.3 and JRuby < 9.1), switching to modern Ruby syntax and IO / encoding operations, dumping workarounds for older versions of Ruby, removing load path manipulation and string mutation, clarifying the boundaries of the API, tightening the extension DSL, testing on newer Ruby platforms such as TruffleRuby, beginning to apply consistent formatting to the source code, and applying substantial cleanups to the test suite. We're also working on rolling out a brand new documentation site powered by Antora (Asciidoctor's documentation site builder) that brings substantial content updates (soon to be available at docs.asciidoctor.org). And, as always, there's a measurable boost in performance, with roughly a 7% improvement in processing speed on CRuby and a 20% improvement on JRuby!

But this release is about more than just the versioning strategy, refactoring, and performance. There are a number of notable features for you to explore that further the extensibility of the platform.

Highlights

The main feature highlight of the 2.0 release is the pluggable syntax highlighter. Prior to 2.0, the syntax highlighting integration was baked directly into the core processor, only offering the option to use CodeRay, Pygments, highlight.js, and prettify. These integrations are all still supported out of the box, along with a new integration with Rouge (>= 2.1), but they're all now implementations of the syntax highlighter extension. And having been given a fresh look, all of these integrations have been polished and improved. (For example, you can specify additional languages for highlight.js to load using the highlightjs-languages attribute and dark Pygments styles are fully supported).

Like with custom converters, you can register a new or replacement syntax highlighter. The adapter receives callbacks for all the strategic points at which the syntax highlighter needs to contribute to the conversion process, including highlighting the source code and contributing external resources to the output. You can publish your syntax highlighting adapter as a RubyGem to share with other users.

The converter API has been completely redesigned based on the work done for the syntax highlighter API. But don't worry, existing converters are expected to continue to work as the old APIs have been bridged to the new ones. A custom converter can now be registered in just a few lines of code. It's even possible to access and extend the built-in converters (which now use the same API) using Converter.for, making it easier than ever to develop your own converter. If you extended from the provided base converter, all convert handler methods are prefixed with convert_ to prevent them from colliding with built-in and helper methods (and an adapter is included to ensure compatibility with existing converters). To top it off, converter registration is now thread-safe out of the box. As you dive deep into the new API, you're sure to discover even more added value.

In Asciidoctor 2.0, we say goodbye to the DocBook 4.5 converter. DocBook 4.5 was superceded by DocBook 5 nearly a decade ago and there's no reason anyone should be using it anymore. But, if for some reason, you still rely on DocBook 4.5 output, it wouldn't be hard to take the code from 1.5.8 and develop a custom converter to produce it.

As a heads up, source document files must be encoded in UTF-8 or have a BOM (magic encoding hint). Asciidoctor does not accept documents encoded any other way. In short, when reading a file, Asciidoctor either honors the BOM or assumes the encoding is UTF-8. When using the API, on the other hand, you can pass a string with a different encoding and Asciidoctor will automatically reencode it to UTF-8 (using Ruby's String#encode method).

There are some nice enhancements and shorthands when creating content. If you set the collapsible option on an example block, it will be converted to a details/summary tag set (and the requisite styles have been added to the default stylesheet to support this block type). If the source language is set on a listing block or on the document, the block is automatically promoted to a source block. When defining index terms, you can now specifiy the see or see also relationship. If for some reason the AsciiDoc syntax escaping you, a handy cheatsheet is always at your fingertips using the command asciidoctor --help syntax.

Other highights of this release are as follows:

  • fixed a number of crashes and one hang in parser due to unexpected or malformed content
  • substitutions in section and block titles are now applied in normal substitution order
  • block attributes no longer inherit from document attributes by default (a feature now reserved for specific cases only)
  • processor substitutes footnotes after all other macros
  • processor substitutes custom inline macros before all other macros
  • attribute-missing setting respected when processing include directives and block macros
  • log dropped lines at info level when attribute-missing=drop-line (including include directives)
  • enhanced find_by to locate table cells and blocks inside AsciiDoc table cells
  • renamed find_by directives to better aligns with NodeFilter from DOM (:reject instead of :skip, :prune instead of :skip_children, :stop to short-circuit)
  • added parse_attributes helper to base extension processor class
  • separated the functionality of the -w (enable script warnings) and -v (enable verbose logging) CLI flags
  • allow failure level of CLI to be set to info
  • renamed header_footer option to standalone and add the -e, --embedded CLI flag as an alias for -s, --no-header-footer
  • can now delegate to a registered backend using the syntax synthetic:delegate when using custom templates with an unregistered backend name
  • if the target of a formal xref macro has a file extension, assume it's a path reference
  • added a docinfo insertion slot in the header location of a standalone output document and moving the footer insertion slot below built-in docinfo content
  • log debug message instead of a warning when the block style is unknown to further promote the use of block extensions
  • log warning message at info level if inline macro processor returns a String value
  • always store the section numeral as a string; compute part numeral at assignment
  • allow the ID and role properties to be set on the API for ordered and unordered list items
  • inline anchors at the start of callout list items get cataloged (and thus valid xref targets)
  • always use :refs table in the document catalog to look for registered IDs and stop populating the deprecated :ids table
  • modified the Table::Cell class to extend from AbstractBlock instead of AbstractNode
  • apply subs to Inline node returned by inline macro processor if specified
  • dropped the verse table cell and the 2-character quote block syntax
  • renamed hardbreaks document attribute to hardbreaks-option
  • substitute replacements in author values used in document header
  • extend TLD for implicit e-mail addresses to 5 characters; allow ampersand in address part
  • drop legacy LaTeX math delimiters if present (for compatibility with pandoc output)
  • only promote indexterms automatically if indexterm-promotion option is set (DocBook output)
  • drop indexterms table from document catalog in preparation for new model to be introduced in 2.x

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: 2019-03-22
Released by: @mojavelinux
Release beer: A selection of beers from Collaboration Fest 2019 and the FireStone Walker 22nd Anniversary Ale

Logs: resolved issues | full diff

Credits

We'd like to give a big shout out to @mogztter, who provided critical technical assistance and advice to help get this release finished and to make it what it is today.

Thanks to the following people who contributed to this release:

@mogztter, @graphitefriction, @zelivans, @nik9000, @robertpanzer, @aerostitch, @andrewcarver, @vmj, @owenh000, @Hentaro1989, @eskwayrd, @apnadkarni, @benhourigan, @lordofthejars, @miltador, @oncletom, @farleylai, @bimlas, @rahmanusta, @taqtiqa-mark, @chrylis, @nfrankel, @Fiech, @gdamore, @rkratky, @jghub, @zaxebo1, @AndorChen, @obilodeau, @schauder, @mafritsch, @plaindocs, @dmalan, @michael-o, @AlexanderZobkov, @jods4, @jtkorb, @sbrannen, @RazrFalcon, @PauloFrancaLacerda, @andrewcarver, @sums801, @SandMann1, @jxxcarlson, @janicesignalfx, @abelsromero, @jirutka, @elextr, @danyill, @ulehnerhs, @5pacetoast, @anidotnet, @lodestone, @Phlow, @jaredmorgs, @stephenhay, @chickenkiller, @Foadsf, @skycaptain

Additional thanks to the following people for updating translations of the built-in attributes: @deining, @bnogent.

The push to Asciidoctor 2.0 was fueled by our former Change Maker sponsor, Okta. We want to thank Okta for their support, as well as our other ge...

Read more

v2.0.0 Release Candidate 3

23 Mar 00:04
Compare
Choose a tag to compare
Pre-release

A testing release in preparation for 2.0.0.

Consult the CHANGELOG for details about what's to expect in 2.0.0. The full release notes will be deferred until the final version is available.

v2.0.0 Release Candidate 2

23 Mar 00:03
Compare
Choose a tag to compare
Pre-release

A testing release in preparation for 2.0.0.

Consult the CHANGELOG for details about what's to expect in 2.0.0. The full release notes will be deferred until the final version is available.

v2.0.0 Release Candidate 1

02 Mar 10:39
Compare
Choose a tag to compare
Pre-release

This is the first release candidate for Asciidoctor 2.0.0. Once Asciidoctor 2.0.0 is released, the project will adhere to semantic versioning and only support versions of Ruby that themselves are in an active cycle. Only minor changes and bug fixes will be made between this version and the final release.

Consult the CHANGELOG for details about what's to expect in 2.0.0. The full release notes will be deferred until the final version is available.

v1.5.8

28 Oct 20:52
Compare
Choose a tag to compare

Summary

This release was made possible by support from our Change Maker sponsor, Okta.

According to the release notes for 1.5.7, there wasn't supposed be another releases in the 1.5.x line. However, due to scheduling conflicts, the 2.0.0 release got pushed back. So this semi-major release was cut to get us back on track.

This release consists of over 50 enhancements and fixes that accumulated in the meantime, as well as a response to a CVE and several updates needed for Asciidoctor.js. Although unintentional, this release also includes a 10% boost in performance.

A huge thanks to @zelivans for throwing curveballs at the processor and uncovering numerous hard-to-catch bugs, including one which became CVE-2018-18385. Fixes for all those issues have been included in this release.

The most significant change in this release is that unordered and ordered lists can be nested to any depth. Also related to lists, it's now possible to specify auto-numbered callout numbers using <.>. And guard comments in front of callouts are preserved if font-based icons are not enabled. You can now set a starting line number for numbered source blocks when using Pygments or CodeRay for source highlighting in HTML or when converting to DocBook. Attribute references in the target of a custom block macro or the attrlist of an include directive are now replaced automatically. If the part-signifier and/or chapter-signifier attributes are set, the values of these attributes are prepended to the part and chapter title, respectively.

If you're using the API, there are several nice enhancements as well. It's now possible to short-circuit the AbstractBlock#find_by method once a match is found or you want to abort the search. The authors of the document can be retrieved neatly as an array. The imagesdir that was set at the location of an image is now recorded on the image node as well as in the catalog.

Thanks to @jwehmschulte for translating the README into German, to @mogztter for syncing the French translation, @jonasbjork for adding Swedish translations for the built-in attributes, @BojanStipic for updating the Serbian translations for the built-in attributes, and @stoeps13 for improving the Windows installation instructions. Also thanks to @junaruga for replacing the deprecated thread_safe gem integration with concurrent-ruby.

Following this release, the master branch will transition to 2.0.0 and semantic versioning (really, this time). Work will continue on the new documentation site for Asciidoctor that's based on Antora.

Distributions

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

Release meta

Released on: 2018-10-28
Released by: @mojavelinux
Release beer: Trappistes Rochefort 10

Logs: resolved issues | full diff

Credits

This release cycle welcomed in our first Change Maker sponsor, Okta. We want to thank Okta and our other generous sponsors, without whose support Asciidoctor would not be possible. Thank you to all our sponsors for your dedication to improving the state of technical documentation!

Thanks to the following people who contributed to this release:

@zelivans, @mogztter, @graphitefriction, @jwehmschulte, @jonasbjork, @junaruga, @owenh000, @BojanStipic, @aerostitch, @ds26gte, @diguage, @kikijiki, @ztmr, @gilgamaze, @ecki, @sometimesfood, @mperktold, @ilvetz, @pdmayoSFI, and @stoeps13.

A very special thanks to all our awesome supporters on BountySource (Salt) and OpenCollective. Their support provided critical funding for the development of this release and the ongoing development of the project.

You can support this project by becoming a sponsor on OpenCollective. For those still contributing via BountySource, we kindly ask that you switch your donations over to OpenCollective because it's a nicer system and better aligns with our values.

Changelog

Enhancements

  • if set, add value of part-signifier and chapter-signifier attributes to part and chapter titles (#2738)
  • allow position (float) and alignment (align) to be set on video block (#2425)
  • substitute attribute references in attrlist of include directive (#2761)
  • add Document#set_header_attribute method for adding method directly to document header during parsing (#2820)
  • add helper method to extension processor classes to create lists and list items
  • allow ordered and unordered lists to be nested to an arbitrary / unlimited depth (#2854)
  • add prefer DSL method to extension registry and document processor to flag extension as preferred (#2848)
  • allow manname and manpurpose to be set using document attributes; don't look for NAME section in this case (#2810)
  • substitute attribute references in target of custom block macro (honoring attribute-missing setting) (#2839)
  • interpret <.> as an auto-numbered callout in verbatim blocks and callout lists (#2871)
  • require marker for items in callout list to have circumfix brackets (e.g., <1> instead of 1>) (#2871)
  • preserve comment guard in front of callout number in verbatim block if icons is not enabled (#1360)
  • add more conventional styles to quote block when it has the excerpt role (#2092)
  • colspecs can be separated by semi-colon instead of comma (#2798)
  • change AbstractBlock#find_by to respond to StopIteration exception; stop traversal after matching ID (#2900)
  • change AbstractBlock#find_by to honor return values :skip and :skip_children from filter block to skip node and its descendants or just its descendants, respectively (#2067)
  • add API to retrieve authors as array; use API in converters (#1042) (@mogztter)
  • add support for start attribute on source block to set starting line number when converting to DocBook (#2915)
  • track imagesdir for image on node and in catalog (#2779)
  • allow starting line number to be set using start attribute when highighting source block with Pygments or CodeRay (#1742)
  • upgrade highlight.js to 9.13.1

Fixes

  • don't hang on description list item that begins with /// (#2888)
  • don't crash when using AsciiDoc table cell style on column in CSV table (#2817)
  • show friendly error if CSV data for table contains unclosed quote (#2878) (@zelivans)
  • don't crash when attribute entry continuation is used on last line of file (#2880) (@zelivans)
  • treat empty/missing value of named block attribute followed by other attributes (e.g., caption=,cols=2*) as empty string
  • AbstractNode#set_option does nothing if option is already set (PR #2778)
  • allow revnumber to be an attribute reference in revision info line (#2785)
  • use ::File.open instead of ::IO.binread in Reader for Asciidoctor.js compatibility
  • add fallback for timezone when setting doctime
  • preserve UNC path that begins with a double backslash (Windows) (#2869)
  • fix formatting of quote block (indentation) in manpage output (#2792)
  • catalog inline anchors in ordered list items (#2812)
  • detect closing tag on last line with no trailing newline (#2830)
  • process !name@ attribute syntax properly; follow-up to #642
  • change document extension processor DSL methods to return registered extension instance instead of array of instances
  • use fallback value for manname-title to prevent crash in manpage converter
  • consolidate inner whitespace in prose in manpage output (#2890)
  • only apply subs to node attribute value if enclosed in single quotes (#2905)
  • don't hide URI scheme if target of link macro is a bare URI scheme
  • fix crash when child section of part is out of sequence and section numbering is enabled (#2931)
  • fix crash when restoring passthroughs if passthrough role is enclosed in single quotes (#2882, #2883)
  • don't eagerly apply subs to inline attributes in general
  • make sure encoding of output file is UTF-8
  • prevent warning about invalid :asciidoc option when using custom templates with Slim 4 (#2928)
  • use Pathname#relative_path_from to compute relative path to file outside of base directory (#2108)

Improvements

  • change trailing delimiter on part number to colon (:) (#2738)
  • interpret open line range as infinite (#2914)
  • rename number property on AbstractBlock to numeral, but keep number as deprecated alias
  • use CSS class instead of hard-coded inline float style on tables and images (#2753)
  • use CSS class instead of hard-coded inline text-align style on block images (#2753)
  • allow hyphen to be used custom block macro name as long as it's not the first character (#2620)
  • use shorthands %F and %T instead of %Y-%m-%d and %H:%M:%S to format time
  • read file in binary mode whenever contents are being normalized
  • use .drop(0) to duplicate arrays (roughly 1.5x as fast as .dup)
  • only recognize a bullet glyph which is non-repeating as an unordered list marker
  • rename SyntaxDsl module to SyntaxProcessorDsl (internal)
  • fail if name given to block macro contains illegal characters
  • normalize all whitespace in value of...
Read more

v1.5.7.1

10 May 10:24
Compare
Choose a tag to compare

This release was made possible by support from our Change Maker sponsor, Okta.

Summary

A patch release to fix a regression in list parsing and makes accommodations for Linux packaging.

Distributions

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

Release meta

Released on: 2018-05-10
Released by: @mojavelinux
Release beer: Boulevard Grand Cru

Logs: resolved issues | full diff

Credits

We'd like to take this opportunity to thank Okta, as well as our other awesome sponsors, without whose support Asciidoctor would not be possible. Thank you sponsors for your dedication to improving the state of technical documentation!

If you'd like to support this project, you can become a sponsor on OpenCollective or BountySource (Salt). This support provides critical funding for the ongoing development of the project.

Thanks to the following people who contributed ideas, code, or documentation to this release: @aerostitch

Changelog

Fixes

  • fix regression where block attributes where being inherited by sibling blocks in a complex list item (#2771)
  • don't apply lead styling to first paragraph in nested document (AsciiDoc table cell) if role is present (#2624)

Build / Infrastructure

  • drop obsolete logic in rake build (@aerostitch)
  • allow lib dir to be overridden for tests using an environment variable (PR #2758) (@aerostitch)
  • load asciidoctor/version from LOAD_PATH in gemspec if not found locally (PR #2760) (@aerostitch)

v1.5.7

03 May 01:54
Compare
Choose a tag to compare

This release was made possible by support from our Change Maker sponsor, Okta.

Summary

Continuing with the Asciidoctor tradition of major patch releases, this release resolves over 100 issues. As impressive as that sounds, it's time to break with this tradition. Starting with the next major release (v2.0.0), Asciidoctor will switch to semantic versioning (SemVer). By adopting SemVer, fixes can be released sooner and the version number will reflect the impact of the changes being introduced. The next major release will also drop support for versions of Ruby that are no longer maintained (which includes Ruby 1.8.7 through 2.1 or 2.2).

Now on to what's new and noteworthy...

The most significant change in this release is that all warning and error messages are now routed through a logger (finally!). Many of the messages also include context about the source location (file, dir, path, lineno), which can be useful for integrations and tooling. You can even force the CLI to exit with a non-successful exit code if the messages reach the threshold specified using the --failure-level option. When using the API, you can feed your own logger to the LoggerManager to capture, route, or observe the messages.

Good log messages demand good line number tracking. In this release, the line numbers reporting is much more accurate, especially for lists and tables. When reported, line numbers will be within a single line of the source of the problem.

Section ID generation has been enhanced. XML tags are now dropped from a section title before an ID is generated from it, and character references and non-word characters (except hyphens, dots, and spaces) are dropped instead of being replaced with the idseparator character. This behavior is more compatible with other systems (i.e., GitHub) and produces nicer IDs. But there's a chance that auto-generated IDs you're relying on will change, so please be sure to check.

Other notable changes include numbering of parts when partnums is set (including xref text when using xrefstyle), cataloging and validating inline anchors at the start of a list item or table cell, consolidation of the footnote and footnoteref macros into the footnote macro, allowing table stripes to be controlled using the stripes attribute, support for soft unsetting an attribute from the API or CLI using name!@, allowing the soft set modifier to be placed at the end of the attribute name instead of its value (e.g., icons@=font), intelligent parsing of text as attributes in the xref and link macros, hard line breaks in AsciiMath equations, allowing the position of section anchors to be configured, adding source location information to additional nodes when the sourcemap option is specified, allowing a block title to begin with a period, and support for shadow man pages. To get a full list of what changed, consult out the changelog below.

This release also launched a bright new logo for the project. Thanks to @mmajko, @graphitefriction, and @Mogztter for helping to turn ideas into action and producing a set of logos. You can find the logo files in the brand repository.

Asciidoctor logo

Work has also begun on a new documentation portal for Asciidoctor based on Antora. This new site will include documentation for the AsciiDoc language, the Asciidoctor processor, and other components in the Asciidoctor ecosystem.

Distributions

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

Release meta

Released on: 2018-05-01
Released by: @mojavelinux
Release beer: Barrel Aged Ten Fidy

Logs: resolved issues | full diff

Credits

This release cycle welcomed in our first Change Maker sponsor, Okta. We'd like to take this opportunity to thank Okta, as well as our other awesome sponsors, without whose support Asciidoctor would not be possible. Thank you sponsors for your dedication to improving the state of technical documentation!

If you'd like to support this project, you can become a sponsor on OpenCollective or BountySource (Salt). This support provides critical funding for the ongoing development of the project.

Thanks to the following people who contributed ideas, code, or documentation to this release:

@mogztter, @graphitefriction, @aerostitch, @tiwai, @dimztimz, @bk2204, @PauloFrancaLacerda, @seikichi, @akosma, @ahus1, @flashcode, @mmajko, @miltador, @errier, @vivien, @wotsushi, @sindzicat, @zmwangx, @aokiplayer, @chickenkiller, @mareknovotny, and @huiyifyj.

Changelog

Enhancements

  • BREAKING: drop XML tags, character refs, and non-word characters (except hyphen, dot, and space) when auto-generating section IDs (#794)

    • hyphen, dot, and space are replaced with value of idseparator, if set; otherwise, spaces are dropped
  • BREAKING: disable interdocument xrefs in compat mode (#2740)

  • pass non-AsciiDoc file extensions in target of xref through unprocessed (#2740)

  • process any known AsciiDoc file extension in target of shorthand interdocument xref if hash is also present (e.g., <<target.asciidoc#,text>>) (#2740)

  • only allow .adoc to be used in target of formal xref macro to create an interdocument xref (with or without a hash) (#2740)

  • allow attribute names to contain any word character defined by Unicode (#2376, PR #2393)

  • do not recognize attribute entry line if name contains a colon (PR #2377)

  • route all processor messages through a logger instead of using Kernel#warn (#44, PR #2660)

  • add MemoryLogger for capturing messages sent to logger into memory (#44, PR #2660)

  • add NullLogger to prevent messages from being logged (#44, PR #2660)

  • log message containing source location / cursor as an object; provides more context (#44, PR #2660)

  • pass cursor for include file to :include_location key in message context (PR #2729)

  • add :logger option to API to set logger instance (#44, PR #2660)

  • add --failure-level=LEVEL option to CLI to force non-zero exit code if specified logging level is reached (#2003, PR #2674)

  • parse text of xref macro as attributes if attribute signature found (equal sign) (#2381)

  • allow xrefstyle to be specified per xref by assigning the xrefstyle attribute on the xref macro (#2365)

  • recognize target with .adoc extension in xref macro as an interdocument xref

  • resolve nested includes in remote documents relative to URI (#2506, PR #2511)

  • support !name@ (preferred), !name=@, name!@, and name!=@ syntax to soft unset attribute from API or CLI (#642, PR #2649)

  • allow modifier to be placed at end of name to soft set an attribute (e.g., icons@=font) (#642, PR #2649)

  • interpret false attribute value defined using API as a soft unset (#642, PR #2649)

  • number parts if partnums attribute is set (#2298)

  • allow footnote macro to define or reference footnote reference (footnoteref macro now deprecated) (#2347, PR #2362)

  • allow custom converter to be used with custom templates; converter must declare that it supports templates (#2619)

  • allow manpage path for manpage help topic to be specified using ASCIIDOCTOR_MANPAGE_PATH environment variable (PR #2653) (@aerostitch)

  • if manpage cannot be found in default path inside gem, use man -w asciidoctor to resolve installed path (PR #2653)

  • uncompress contents of manpage for manpage help topic if path ends with .gz (PR #2653) (@aerostitch)

  • define source and manual refmiscinfo entries in manpage output if manual and source attributes are defined (PR #2636) (@tiwai)

  • add syntax for adding hard line breaks in block AsciiMath equations (#2497, PR #2579) (@dimztimz)

  • add positioning option to sectanchors attribute (sectanchors=before or sectanchors=after) (#2485, PR #2486)

  • allow table striping to be configured using the stripes attribute (even, odd, all, or none) or stripes roles on table (#1365, PR #2588)

  • add rel=nofollow property to links (text or image) when nofollow option is set (#2605, PR #2692)

  • populate Document#source_location when sourcemap option is enabled (#2478, PR #2488)

  • populate source_location property on list items when sourcemap option is set on document (PR #2069) (@mogztter)

  • populate Table::Cell#source_location when sourcemap option is enabled (#2705)

  • allow local include to be flagged as optional by setting optional option (#2389, PR #2413)

  • allow block title to begin with a period (#2358, PR #2359)

  • catalog inline anchor at start of list items in ordered and unordered lists, description list terms, and table cells (#2257)

  • register document in catalog if id is set; assign reftext to document attributes if specified in a block attribute line (#2301, PR #2428)

  • allow automatic width to be applied to individual columns in a table using the special value ~ (#1844)

  • use the quote element in DocBook converter to represent ...

Read more

v1.5.6.2

20 Mar 10:03
Compare
Choose a tag to compare

This release is intended for Asciidoctor.js to be used as the foundation of the Asciidoctor 1.5.6 release. In addition to fixing compatibility issues with Asciidoctor.js, it includes a few critical fixes and improvements taken from the 1.5.7 development iteration. One of those is the ability to use multiple xref macros on the same line.

The most notable improvement in this release is that the logic for resolving the path of an include directive has been moved to a method. This method is now overridden in Asciidoctor.js in order to properly resolve the path of an include directive in the browser environment.

If you're using Asciidoctor Ruby, you're welcome to upgrade to 1.5.6.2. However, since most of the changes are designed for compatibility with Asciidoctor.js, you won't notice much change and may want to just wait for the 1.5.7 release.

Distributions

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

Changelog

Bug fixes

  • fix match for multiple xref macros w/ implicit text in same line (#2450)
  • PathResolver#root? returns true for absolute URL in browser env (#2595)

Improvements / Refactoring

  • resolve include target correctly in browser (xmlhttprequest IO module) (#2599, #2602)
  • extract method to resolve include path (allowing Asciidoctor.js to override) (#2610)
  • don't expand docdir value passed to API (#2518)
  • check mandatory attributes when creating an image block (#2349)
  • drop is_ prefix from boolean methods in PathResolver (PR #2587)
  • change Reader#replace_next_line to return true
  • organize methods in AbstractNode

Build / Infrastructure

  • clean up dependencies
  • add Ruby 2.5.0 to CI build matrix (PR #2528)
  • update nokogiri to 1.8.0 for ruby >= 2.1 (PR #2380)

Release meta

Released on: 2017-03-20
Released by: @mojavelinux
Release beer: Bonfire WtFO Double IPA

Logs: resolved issues | full diff

Credits

A huge thanks to @Mogztter for helping to work out the changes necessary in core to allow the include directive to be properly supported in Asciidoctor.js.

A very special thanks to all the awesome supporters of the Asciidoctor Salt campaign who provided critical funding for the development of this release and the ongoing development of the project.