Skip to content


Choose a tag to compare
@robertpanzer robertpanzer released this 02 Jan 21:02
· 394 commits to master since this release

AsciidoctorJ 1.6.0

AsciidoctorJ 1.6.0 is a final, transitional release in preparation for the switch to Semantic Versioning (SemVer). Despite its version number, this is a major release and, as such, not binary compatible with the 1.5.x releases.


There are loads of changes that made it into this release, so it's difficult to enumerate them all. In fact, since the development of 1.6.0 ran in parallel with 1.5.x for so long, many changes from 1.6.0 may already be familiar to you as they got backported into the 1.5.x release line.

The most prominent changes in 1.6.0 are as follows:

  • Rework Extension API. Please check the Integrator Guide for a documentation about how it looks now.
  • Add ExtensionGroup API and fix registration of multiple extensions (#568)
  • Reworked AST API, including renaming of classes.
  • Split org.asciidoctor package into api and impl modules. (#603, @jmini)
  • Added converter API
  • Add support for capturing and routing log messages from Asciidoctor (#657)
  • Add documentation for the AsciidoctorJ logger (#674, @abelsromero)
  • Added annotation-based processor configuration (#341)
  • Add support for creating tables structures to Extension API (#335)
  • Add support for Lists and Definition Lists to AST (#408)
  • Loads of cleanups and improvements across the API (#715, #717, @Mogztter)
  • Added method to get and remove substitutions (#504)
  • Rename isAttr(), setAttr() and getAttr() to more Java like names, isAttribute(), setAttribute() and getAttribute(). (#554)
  • Allow for method chaining when registering extensions (#491)
  • Upgrade to Gradle 4.4.1 (#611, @tisoft)
  • Remove ContentPart and StructuredDocument API (#699)

Bug fixes

There are a lot of bugs that were fixed regarding the extension API. Some of these may have already made it into 1.5.x as long as they did not require architectural changes. To list a few:

You can find more details about this release and its future at

Migration notes

Migrating extensions from 1.5.x to 1.6.0 requires some changes, that should in general not be too hard. As examples you might compare extensions from the test cases:


This release wouldn't have been possible without the help of all our awesome contributors:

If I left anyone off this list, I sincerely apologize. We're certainly thankful for each and every contribution!

Release Meta

Released on: 2019-01-01
Released by: @robertpanzer
Release beer: TBD