Asciidoctor is a fast, open source text processor and publishing toolchain for converting AsciiDoc content into HTML 5, DocBook 5, and other formats.

This document provides a high-level view of the changes introduced in Asciidoctor by release. For an even more detailed look at what has changed, refer to the commit history on GitHub.

This project utilizes semantic versioning.

2.0.16 (2021-08-03) - @mojavelinux

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)

2.0.15 (2021-04-27) - @mojavelinux

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

2.0.14 (2021-04-19) - @mojavelinux

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 the showtitle / notitle attribute to be toggled in an AsciiDoc table cell if set or unset 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 not set (#4023)

  • Suppress missing attribute warning when applying substitutions to implicit document title for assignment to intrinsic 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)

2.0.13 (2021-04-10) - @mojavelinux

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 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 manpage doctype (#4000)

  • Output all mannames in name section of HTML output for manpage doctype (#3757)

Build / Infrastructure
  • Enable running tests as root (PR #3874) (@mikemckiernan)

  • Run tests against both pygments.rb 1.x and 2.x (#3969) (@slonopotamus)

  • Speed up CI by using Bundler cache (PR #3901) (@slonopotamus)

Documentation
  • Import documentation for processor into this repository (#3861) (@graphitefriction)

  • Add Belarusian translation of built-in attributes (PR #3928) (@morganov)

2.0.12 (2020-11-10) - @mojavelinux

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 reenable 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 / Infrastructure
  • Migrate Linux CI jobs to GitHub Actions (#3837)

  • Migrate Windows CI jobs to GitHub Actions (#3839)

  • Run CI job on macOS (#3842)

2.0.11 (2020-11-02) - @mojavelinux

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 manpage 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 manpage 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 manpage 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 manpage 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/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
  • Account for empty positional attribute when parsing attrlist (#3813)

  • Add support for muted option to self-hosted video (#3408)

  • Move style tag for convert-time syntax highlighters (coderay, rouge, pygments) into head (#3462)

  • Move style tag for client-side syntax highlighters (highlight.js, prettify) into head (#3503)

  • Define entry point API methods (load, convert, load_file, convert_file) as class methods instead of module_function to avoid conflict with Kernel.load (#3625)

  • Retain attribute order on HTML code tag for source block to remain consistent with output from 1.5.x (#3786)

  • Correct language code for Korean language file from kr to ko (#3807) (@jnavila)

Improvements
  • Apply word wrap (i.e., word-wrap: anywhere) to body in default stylesheet (#3544)

  • Allow nobreak and nowrap roles to be used on any inline element (#3544)

  • Add CSS class to support pre-wrap role to preserve leading, trailing, and repeating spaces in phrase (#3815)

  • Preserve guard around XML-style callout when icons are not enabled (#3319)

  • Use .fam C command to switch font family for verbatim blocks to monospaced text in manpage output (#3561)

  • Remove redundant test for halign and valign attributes on table cell in DocBook converter

  • Allow encoding of include file to be specified using encoding attribute (#3248)

  • Allow template to be used to override outline by only specifying the outline template (#3491)

  • Upgrade MathJax from 2.7.5 to 2.7.9

  • Upgrade highlight.js from 9.15.10 to 9.18.3 (note that this increases script size from 48.8 KB to 71.5 KB)

  • Skip unused default attribute assignments for embedded document

  • Allow a URL macro to have a preceding single or double quote (#3376)

  • Add support for erubi template engine; use it in place of erubis in test suite; note the use of erubis is deprecated (#3737)

  • Download and embed remote custom stylesheet if allow-uri-read is set (#3765)

  • Remove direction property from default stylesheet (#3753) (@abdnh)

  • remove max width setting on content column for print media in default stylesheet (#3802)

  • Normalize frame value "topbot" to "ends" in HTML output (consistently use frame-ends class) (#3797)

  • Add role setter method on AbstractNode (#3614)

  • Map chapter-signifier and part-signifier attributes in locale attribute files to replace chapter-label and part-label (#3817)

Build / Infrastructure
  • Run test suite on TruffleRuby nightly (@mogztter, @erebor)

  • Upgrade TruffleRuby to 20.0.0 (@mogztter)

  • Trigger upstream builds for AsciidoctorJ on Github Actions (@robertpanzer)

2.0.10 (2019-05-31) - @mojavelinux

Bug Fixes
  • fix Asciidoctor.convert_file to honor header_footer: false option when writing to file (#3316)

  • fix placement of title on excerpt block (#3289)

  • always pass same options to SyntaxHighlighter#docinfo, regardless of value of location argument

  • fix signature of SyntaxHighlighter#docinfo method (#3300)

  • when icons is set to image, enable image icons, but don’t use it as the value of the icontype attribute (#3308)

2.0.9 (2019-04-30) - @mojavelinux

Bug Fixes
  • process multiple single-item menu macros in same line (#3279)

  • register images in catalog correctly (#3283)

  • rename AbstractNode#options method to AbstractNode#enabled_options so it doesn’t get shadowed by Document#options (#3282)

  • don’t fail to convert document if alt attribute is not set on block or inline image (typically by an extension)

  • fix lineno of source location on blocks that follow a detached list continuation (#3281)

  • assume inline image type is "image" if not set (typically by an extension)

2.0.8 (2019-04-22) - @mojavelinux

Bug Fixes
  • restore background color applied to literal blocks by default stylesheet (#3258)

  • use portability constants (CC_ALL, CC_ANY) in regular expressions defined in built-in converters (DocBook5 and ManPage)

  • use portability constant (CC_ANY) in regular expression for custom inline macros

  • use smarter margin collapsing for AsciiDoc table cell content; prevent passthrough content from being cut off (#3256)

  • don’t limit footnote ref to ASCII charset; allow any word character in Unicode to be used (#3269)

Improvements
  • register_for methods accept arguments as symbols (#3274)

  • use Concurrent::Map instead of Concurrent::Hash in template converter

  • use module_function keyword to define methods in Helpers

  • move regular expression definitions to separate source file (internal change)

2.0.7 (2019-04-13) - @mojavelinux

Bug Fixes
  • fix crash when resolving ID from text and at least one candidate contains an unresolved xref (#3254)

  • fix compatibility with Rouge 2.0

Improvements
  • improve documentation for the -a CLI option; explain that @ modifier can be placed at end of name as alternative to end of value

  • move source for main API entry points (load, load_file, convert, convert_file) to separate files (internal change)

  • define main API entry points (load, load_file, convert, convert_file) as module functions

Also see issues resolved in 2.0.x (cumulative).

2.0.6 (2019-04-04) - @mojavelinux

Bug Fixes
  • assume implicit AsciiDoc extension on inter-document xref macro target with no extension (e.g., document#); restores 1.5.x behavior (#3231)

  • don’t fail to load application if call to Dir.home fails; use a rescue with fallback values (#3238)

  • Helpers.rootname should only consider final path segment when dropping file extension

Improvements
  • implement Helpers.extname as a more efficient and flexible File.extname method

  • check for AsciiDoc file extension using end_with? instead of resolving the extname and using a lookup

Also see issues resolved in 2.0.x (cumulative).

2.0.5 (2019-04-01) - @mojavelinux

Bug Fixes
  • fix crash when source highlighter is Rouge and source language is not set on block (#3223)

  • update CLI and SyntaxHighlighter to allow Asciidoctor to load cleanly on Ruby 2.0 - 2.2

  • CLI should use $stdin instead of STDIN to be consistent with the use of $stdout

  • mark encoding of stdio objects used in CLI as UTF-8 (#3225)

  • make Asciidoctor::SyntaxHighlighter::Config.register_for method public as documented

Also see issues resolved in 2.0.x (cumulative).

2.0.4 (2019-03-31) - @mojavelinux

Bug Fixes
  • allow Asciidoctor to load cleanly on Ruby 2.0 - 2.2 for distributions that provide support for these older Ruby versions

  • make Asciidoctor::Converter::Config.register_for method public as documented

  • remove unused Asciidoctor::Converter::BackendTraits#derive_backend_traits private method

  • move Asciidoctor::Converter::BackendTraits.derive_backend_traits method to Asciidoctor::Converter

  • mark render and render_file methods as deprecated in API docs

Also see issues resolved in 2.0.x (cumulative).

2.0.3 (2019-03-28) - @mojavelinux

Bug Fixes
  • fix crash when attrlist is used on literal monospace phrase (#3216)

  • update use of magic regexp variables to fix compatibility with Opal / Asciidoctor.js (#3214)

Also see issues resolved in 2.0.x (cumulative).

2.0.2 (2019-03-26) - @mojavelinux

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)

Also see issues resolved in 2.0.x (cumulative).

2.0.1 (2019-03-25) - @mojavelinux

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)

Also see issues resolved in 2.0.x (cumulative).

2.0.0 (2019-03-22) - @mojavelinux

Enhancements / Compliance
  • drop support for Ruby < 2.3 and JRuby < 9.1 and remove workarounds (#2764)

  • drop support for Slim < 3 (#2998)

  • drop the converter for the docbook45 backend from core; moved to https://github.com/asciidoctor/asciidoctor-docbook45 (#3005)

  • apply substitutions to section and block titles in normal substitution order (#1173)

  • make syntax highlighter pluggable; extract all logic into adapter classes (#2106)

  • add syntax highlighter adapter for Rouge (#1040)

  • redesign Converter API based on SyntaxHighlighter API; remap deprecated API to new API to ensure compatibility (#2891)

  • repurpose built-in converters as regular converters (#2891)

  • make registration and resolution of global converters thread-safe (#2891)

  • fold the default converter factory into the Converter module (#2891)

  • add a default implementation for Converter#convert in the Base converter (#2891)

  • rename Converter::BackendInfo to Converter::BackendTraits; map backend_info to new backend_traits method (#2891)

  • allow built-in converter classes to be resolved using Converter#for and instantiated using Converter#create (#2891)

  • allow converter factory to be passed using :converter_factory API option (#2891)

  • honor htmlsyntax if defined on converter (#2891)

  • add backend_traits_source keyword argument to CompositeConverter constructor (#2891)

  • add support for start attribute when using prettify to highlight source blocks with line numbering enabled

  • use String#encode to encode String as UTF-8 instead of using String#force_encoding (#2764)

  • add FILE_READ_MODE, URI_READ_MODE, and FILE_WRITE_MODE constants to control open mode when reading files and URIs and writing files (#2764)

  • set visibility of private and protected methods (#2764)

  • always run docinfo processor extensions regardless of safe mode (gives control to extension) (#2966)

  • use infinitive verb form for extension DSL method names; map deprecated method names where appropriate

  • add docinfo insertion slot for header location to built-in converters (#1720)

  • add support for the muted option on vimeo videos (allows autoplay to work in Chrome) (#3014)

  • use value of prettify-theme attribute as is if it starts with http:// or https:// (#3020)

  • allow icontype to be set using icons attribute (#2953)

  • when using a server-side syntax highlighter, highlight content of source block even if source language is not set (#3027)

  • automatically promote a listing block without an explicit style to a source block if language is set (#1117)

  • remove the 2-character (i.e., "") quote block syntax

  • don’t allow block role to inherit from document attribute; only look for role in block attributes (#1944)

  • split out functionality of -w CLI flag (script warnings) from -v CLI flag (verbose logging) (#3030)

  • log possible invalid references at info level (#3030)

  • log dropped lines at info level when attribute-missing=drop-line (#2861)

  • honor attribute-missing setting when processing include directives and block macros (#2855)

  • log warning when include directive is not resolved due to missing attribute or blank target; always include warning in output document (#2868)

  • use the third argument of AbstractNode#attr / AbstractNode#attr? to set the name of a fallback attribute to look for on the document (#1934)

  • change default value of third argument to Abstractnode#attr / AbstractNode#attr? to nil so attribute doesn’t inherit by default (#3059)

  • look for table-frame, table-grid, and table-stripes attributes on document as fallback for frame, grid, and stripes attributes on table (#3059)

  • add support for hover mode for table stripes (stripes=hover) (#3110)

  • always assume the target of a shorthand inter-document xref is a reference to an AsciiDoc document (source-to-source) (#3021)

  • if the target of a formal xref macro has a file extension, assume it’s a path reference (#3021)

  • never assume target of a formal xref macro is a path reference unless a file extension or fragment is present (#3021)

  • encode characters in URI to comply with RFC-3986

  • implement full support for styled xreftext in manpage converter (#3077)

  • allow the ID and role properties to be set on a list item of ordered and unordered lists via the API (#2840)

  • yield processor instance to registration block for document processor if block has non-zero arity (i.e., has parameters)

  • add Document#parsed? method to check whether document has been parsed

  • modify Cell class to extend from AbstractBlock instead of AbstractNode (#2963)

  • implement block? and inline? methods on Column, both which return false (#2963)

  • drop verse table cell style (treat as normal table cell) (#3111)

  • allow negated subs to be specified on inline pass macro (#2191)

  • log warning if footnoteref macro is found and compat mode is not enabled (#3114)

  • log info message if inline macro processor returns a String value (#3176)

  • apply subs to Inline node returned by inline macro processor if subs attribute is specified (#3178)

  • add create_inline_pass helper method to base extension processor class (#3178)

  • log debug message instead of warning if block style is unknown (#3092)

  • allow backend to delegate to a registered backend using the syntax synthetic:delegate when using custom templates (e.g., slides:html) (#891)

  • AbstractBlock#find_by looks inside AsciiDoc table cells if traverse_documents selector option is true (#3101)

  • AbstractBlock#find_by finds table cells, which can be selected using the :table_cell context in the selector (#2524)

  • allow ampersand to be used in e-mail address (#2553)

  • propagate ID assigned to inline passthrough (#2912)

  • rename control keywords in find_by to better align with the standard NodeFilter terminology

  • stop find_by iteration if filter block returns :stop directive

  • rename header_footer option to standalone (while still honoring header_footer for backwards compatibility) (#1444)

  • replace anchors and xrefs before footnotes (replace footnotes last in macros substitution group)

  • apply substitution for custom inline macro before all other macros

  • only promote index terms automatically (A, B, C becomes A > B > C + B > C + C) if indexterm-promotion option is set on document (#1487)

  • add support for see and see-also on index terms; parse attributes on indexterm macros if text contains = (#2047)

  • drop :indexterms table from document catalog (in preparation for solution to #450 in a 2.x release)

  • load additional languages for highlight.js as defined in the comma-separated highlightjs-languages attribute (#3036)

  • log warning if conditional expression in ifeval directive is invalid (#3161)

  • drop lines that contain an invalid preprocessor directive (#3161)

  • rename AbstractBlock#find_by directives; use :prune in place of :skip_children and :reject in place of :skip

  • convert example block into details/summary tag set if collapsible option is set; open by default if open option is set (#1699)

  • substitute replacements in author values used in document header (#2441)

  • require space after semi-colon that separates multiple authors (#2441)

  • catalog inline anchors at start of callout list items (#2818) (@owenh000)

  • add parse_attributes helper method to base extension Processor class (#2134)

  • require at least one character in the term position of a description list (#2766)

Improvements
  • propagate document ID to DocBook output (#3011)

  • always store section numeral as string; compute roman numeral for part at assignment time (@vmj)

  • refactor code to use modern Hash syntax

  • define LIB_DIR constant; rename *_PATH constants to *_DIR constants to be consistent with RubyGems terminology (#2764)

  • only define ROOT_DIR if not already defined (for compatibility with Asciidoctor.js)

  • move custom docinfo content in footer below built-in docinfo content in footer in HTML converter (#3017)

  • read and write files using File methods instead of IO methods (#2995)

  • value comparison in AbstractNode#attr? is only performed if expected value is truthy

  • align default CodeRay style with style for other syntax highlighters (#2106)

  • ensure linenos class is added to linenos column when source highlighter is pygments and pygments-css=style

  • disable table stripes by default (#3110)

  • rename CSS class of Pygments line numbering table to linenotable (to align with Rouge) (#1040)

  • remove unused Converter#convert_with_options method (#2891)

  • add -e, --embedded CLI flag as alias for -s, --no-header-footer (require long option to specify eRuby impl) (#1444)

  • don’t store the options attribute on the block once the options are parsed (#3051)

  • add an options method on AbstractNode to retrieve the set of option names (#3051)

  • pass :input_mtime option to Document constructor; let Document constructor assign docdate/time/year attributes (#3029)

  • never mutate strings; add a frozen_string_literal: true magic comment to top of all Ruby source files (#3054)

  • always use docdate and doctime to compute docyear and docdatetime (#3064)

  • rename PreprocessorReader#exceeded_max_depth? to PreprocessorReader#exceeds_max_depth? and return nil if includes are disabled

  • stop populating :ids table in document catalog (#3084)

  • always use :refs table in document catalog to look for registered IDs (#3084)

  • don’t compute and store reference text in document catalog (#3084)

  • populate reference text table lazily for resolving ID by reference text (#3084)

  • don’t store fallback reference text on :bibref node (#3085)

  • call AbstractNode#reftext instead of AbstractNode#text to retrieve reference text for bibref node (#3085)

  • only map unparsed attrlist of inline macro to target when format is short

  • add clearer exception message when source data is binary or has invalid encoding (#2884)

  • rename context for table cell and table column to :table_cell and :table_column, respectively

  • rename hardbreaks document attribute to hardbreaks-option; retain hardbreaks as a deprecated alias (#3123)

  • extend TLD for implicit e-mail addresses to 5 characters (#3154)

  • truncate with precision (instead of rounding) when computing absolute width for columns in DocBook output (#3131)

  • drop legacy LaTeX math delimiters (e.g, $..$) if present (#1339)

  • use proper terminology in warning message about mismatched preprocessor directive (#3165)

  • rename low-level extension attribute name :pos_attrs to :positional_attrs

  • mark default_attrs extension DSL method deprecated in favor of default_attributes

  • upgrade MathJax to 2.7.5

Bug Fixes
  • fix crash caused by inline passthrough macro with the macros sub clearing the remaining passthrough placeholders (#3089)

  • fix crash if ifeval directive is missing expression (#3164)

  • prevent relative leveloffset from making section level negative and causing hang (#3152)

  • don’t fail to parse Markdown-style quote block that only contains attribution line (#2989)

  • enforce rule that Setext section title must have at least one alphanumeric character; fixes problem w/ block nested inside quote block (#3060)

  • apply header subs to doctitle value when assigning it back to the doctitle document attribute (#3106)

  • don’t fail if value of pygments-style attribute is not recognized; gracefully fallback to default style (#2106)

  • do not alter the $LOAD_PATH (#2764)

  • fix crash if stem block is empty (#3118)

  • remove conditional comment for IE in output of built-in HTML converter; fixes sidebar table of contents (#2983)

  • fix styling of source blocks with linenums enabled when using prettify as syntax highlighter (#640)

  • update default stylesheet to support prettify themes (#3020)

  • remove hard-coded color values on source blocks in default stylesheet (#3020)

  • add fallback if relative path cannot be computed because the paths are located on different drives (#2944)

  • ignore explicit section level style (#1852)

  • don’t eat space before callout number in source block if line-comment attribute is empty (#3121)

  • check if type is defined in a way that’s compatible with autoload

  • fix invalid check for DSL in extension class (previously always returned true)

  • scope constant lookups (#2764)

  • use byteslice instead of slice to remove BOM from string (#2764)

  • don’t fail if value of -a CLI option is empty string or equals sign (#2997)

  • allow failure level of CLI to be set to info

  • Reader#push_include should not fail if data is nil

  • fix deprecated ERB trim mode that was causing warning (#3006)

  • move time anchor after query string on vimeo video to avoid dropping options

  • allow color for generic text, line numbers, and line number border to inherit from Pygments style (#2106)

  • enforce and report relative include depth properly (depth=0 rather than depth=1 disables nested includes)

  • allow outfilesuffix to be soft set from API (#2640)

  • don’t split paragraphs in table cell at line that resolves to blank if adjacent to other non-blank lines (#2963)

  • initialize the level to WARN when instantiating the NullLogger

  • next_adjacent_block should not fail when called on dlist item (#3133)

  • don’t suppress browser styles for summary tag; add pointer cursor and panel margin bottom (#3155)

  • only consider TLDs in e-mail address that have ASCII alpha characters

  • allow underscore in domain of e-mail address

Build / Infrastructure
  • clear SOURCE_DATE_EPOCH env var when testing timezones (PR #2969) (@aerostitch)

  • remove compat folder (removes the AsciiDoc.py config file that provides pseudo-compliance with Asciidoctor and a stylesheet for an old Font Awesome migration)

  • add Ruby 2.6.0 to build matrix

  • stop running CI job on unsupported versions of Ruby

  • exclude test suite, build script, and Gemfile from gem (#3044)

  • split build tasks out into individual files

Also see issues resolved in 2.0.x (cumulative).

1.5.8 (2018-10-28) - @mojavelinux

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)

  • add intrinsic attribute named pp that effectively resolves to ++ (#2807)

  • upgrade highlight.js to 9.13.1

Bug 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 property; 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 manpurpose attribute

  • make space before callout number after custom line comment character optional

  • parse attrlist on inline passthrough as a shorthand attribute syntax or literal role (#2910)

  • add support for range syntax (.. delimiter) to highlight attribute on source block (#2918)

  • add support for unbounded range to highlight attribute on source block (#2918)

  • automatically assign title and caption on image block if title is set on custom block source (#2926)

  • use OS independent timezone (UTC or time offset) in doctime and localtime attributes (#2770)

  • report correct line number for inline anchor with id already in use (#2769)

  • generate manpage even if input is non-conforming or malformed (#1639)

  • allow authorinitials for single author to be overridden (#669)

Documentation
  • translate README into German (#2829) (@jwehmschulte)

  • sync French translation of README (@mogztter)

  • add Swedish translation of built-in attributes (PR #2930) (@jonasbjork)

Build / Infrastructure
  • replace thread_safe with concurrent-ruby (PR #2822) (@junaruga)

1.5.7.1 (2018-05-10) - @mojavelinux

Bug 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)

1.5.7 (2018-05-02) - @mojavelinux

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 inter-document xrefs in compat mode (#2740)

  • BREAKING: automatically parse attributes in link macro if equals is present, ignoring linkattrs (except in compat mode) (#2059)

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

  • process any known AsciiDoc file extension in target of shorthand inter-document xref if hash is also present (e.g., text) (#2740)

  • only allow .adoc to be used in target of formal xref macro to create an inter-document 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 inter-document xref

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

  • allow relfilesuffix attribute to control file extension used for inter-document xrefs (#1273)

  • 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)

  • add syntax help topic to CLI (-h syntax) (#1573)

  • 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 stripes attribute (even, odd, all, or none) or stripes roles on table (#1365, PR #2588)

  • recognize ends as an alias to topbot for configuring the table frame

  • 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 smart quotes (#2272, PR #2356) (@bk2204)

  • parse and pass all manpage names to output document master (i.e., shadow man pages) (#1811, #2543, PR #2414)

  • parse credit line of shorthand quote block as block attributes; apply normal subs to credit line in shorthand quote blocks (#1667, PR #2452)

  • populate copyright element in DocBook output from value of copyright attribute (#2728)

  • preserve directories if source dir and destination dir are set (#1394, PR #2421)

  • allow linkcss to be unset from API or CLI when safe mode is secure

  • convert quote to epigraph element in DocBook output if block has epigraph role (#1195, PR #2664) (@bk2204)

  • number special sections in addition to regular sections when sectnums=all (#661, PR #2463)

  • upgrade to Font Awesome 4.7.0 (#2569)

  • upgrade to MathJax 4.7.4

Bug Fixes
  • set :to_dir option value correctly when output file is specified (#2382)

  • preserve leading indentation in contents of AsciiDoc table cell if contents starts with a newline (#2712)

  • the shorthand syntax on the style to set block attributes (id, roles, options) no longer resets block style (#2174)

  • match include tags anywhere on line as long as offset by word boundary on left and space or newline on right (#2369, PR #2683)

  • warn if an include tag specified in the include directive is unclosed in the included file (#2361, PR #2696)

  • use correct parse mode when parsing blocks attached to list item (#1926)

  • fix typo in gemspec that removed README and CONTRIBUTING files from the generated gem (PR #2650) (@aerostitch)

  • preserve id, role, title, and reftext on open block when converting to DocBook; wrap in <para> or <formalpara> (#2276)

  • don’t turn bare URI scheme (no host) into a link (#2609, PR #2611)

  • don’t convert inter-document xref to internal anchor unless entire target file is included into current file (#2200)

  • fix em dash replacement in manpage converter (#2604, PR #2607)

  • don’t output e-mail address twice when replacing bare e-mail address in manpage output (#2654, PR #2665)

  • use alternate macro for monospaced text in manpage output to not conflict w/ AsciiDoc macros (#2751)

  • enforce that absolute start path passed to PathResolver#system_path is inside of jail path (#2642, PR #2644)

  • fix behavior of PathResolver#descends_from? when base path equals / (#2642, PR #2644)

  • automatically recover if start path passed to PathResolver#system_path is outside of jail path (#2642, PR #2644)

  • re-enable left justification after invoking tmac URL macro (#2400, PR #2409)

  • don’t report warning about same level 0 section multiple times (#2572)

  • record timings when calling convert and write on Document (#2574, PR #2575)

  • duplicate header attributes when restoring; allows header attributes to be restored an arbitrary number of times (#2567, PR #2570)

  • propagate :catalog_assets option to nested document (#2564, PR #2565)

  • preserve newlines in quoted CSV data (#2041)

  • allow opening quote around quoted CSV field to be on a line by itself

  • output table footer after body rows (#2556, PR #2566) (@PauloFrancaLacerda)

  • move @page outside of @media print in default stylesheet (#2531, PR #2532)

  • don’t throw exception if text of dd node is nil (#2529, PR #2530)

  • don’t double escape ampersand in manpage output (#2525) (@dimztimz)

  • fix crash when author_1 attribute is assigned directly (#2481, PR #2487)

  • fix CSS for highlighted source block inside colist (#2474, PR #2490)

  • don’t append file extension to data uri of admonition icon (#2465, PR #2466)

  • fix race condition in Helpers.mkdir_p (#2457, PR #2458)

  • correctly process nested passthrough inside unconstrained monospaced (#2442, PR #2443)

  • add test to ensure ampersand in author line is not double escaped (#2439, PR #2440)

  • prevent footnote ID from clashing with auto-generated footnote IDs (#2019)

  • fix alignment of icons in footnote (#2415, PR #2416)

  • add graceful fallback if pygments.rb fails to return a value (#2341, PR #2342)

  • escape specialchars in source if pygments fails to highlight (#2341)

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

  • allow flow indexterm to be enclosed in round brackets (#2363, PR #2364)

  • set outfilesuffix to match file extension of output file (#2258, PR #2367)

  • add block title to dlist in manpage output (#1611, PR #2434)

  • scale text to 80% in print styles (#1484, PR #2576)

  • fix alignment of abstract title when using default stylesheet (PR #2732)

  • only set nowrap style on table caption for auto-width table (#2392)

  • output non-breaking space for man manual if absent in DocBook output (PR #2636)

  • don’t crash if stem type is not recognized (instead, fallback to asciimath)

Improvements / Refactoring
  • BREAKING: rename table spread role to stretch (#2589, PR #2591)

  • use cursor marks to track lines more accurately; record cursor at the start of each block, list item, or table cell (PR #2701, PR #2547) (@seikichi)

  • log a warning message if an unterminated delimited block is detected (#1133, PR #2612)

  • log a warning when nested section is found inside special section that doesn’t support nested sections (#2433, PR #2672)

  • read files in binary mode to disable automatic endline coercion (then explicitly coerce to UTF-8) (PR #2583, PR #2694)

  • resolve / expand parent references in start path passed to PathResolver#system_path (#2642, PR #2644)

  • update PathResolver#expand_path to resolve parent references (#2642, PR #2644)

  • allow start path passed to PathResolver#system_path to be outside jail if target brings resolved path back inside jail (#2642, PR #2644)

  • don’t run File.expand_path on Dir.pwd (assume Dir.pwd is absolute) (#2642, PR #2644)

  • posixify working_dir passed to PathResolver constructor if absolute (#2642, PR #2644)

  • optimize detection for footnote* and indexterm* macros (#2347, PR #2362)

  • log a warning if a footnote reference cannot be resolved (#2669)

  • set logger level to DEBUG when verbose is enabled

  • coerce value of :template_dirs option to an Array (PR #2621)

  • make block roles specified using shorthand syntax additive (#2174)

  • allow paragraph to masquerade as open block (PR #2412)

  • move callouts into document catalog (PR #2394)

  • document ID defined in block attribute line takes precedence over ID defined inside document title line

  • don’t look for link and window attributes on document when resolving these attributes for an image

  • skip line comments in name section of manpage (#2584, PR #2585)

  • always activate extension registry passed to processor (PR #2379)

  • skip extension registry activation if no groups are registered (PR #2373)

  • don’t apply lead styling to first paragraph if role is present (#2624, PR #2625)

  • raise clearer exception when extension class cannot be resolved (#2622, PR #2623)

  • add methods to read results from timings (#2578, PR #2580)

  • collapse bottom margin of last block in AsciiDoc table cell (#2568, PR #2593)

  • set authorcount to 0 if there are no authors (#2519, PR #2520)

  • validate fragment of inter-document xref that resolves to current doc (#2448, PR #2449)

  • put id attribute on tag around phrase instead of preceding anchor (#2445, PR #2446)

  • add .plist extension to XML circumfix comment family (#2430, PR #2431) (@akosma)

  • alias Document#title method to no args Document#doctitle method (#2429, PR #2432)

  • upgrade missing or unreadable include file to an error (#2424, PR #2426)

  • add compliance setting to disable natural cross references (#2405, PR #2460)

  • make hash in inter-document xref target optional if target has extension (#2404, PR #2406)

  • add CSS class to part that matches role (#2401, PR #2402)

  • add fit-content class to auto-width table (#2392)

  • automatically assign parent reference when adding node to parent (#2398, PR #2403)

  • leave inline anchor in section title as is if section has ID (#2243, PR #2427)

  • align and improve error message about invalid use of partintro between HTML5 and DocBook converters

  • rephrase warning when level 0 sections are found and the doctype is not book

  • report correct line number when duplicate bibliography anchor is found

  • only warn if thread_safe gem is missing when using built-in template cache

  • rename enumerate_section to assign_numeral; update API docs

  • drop deprecated compact option from CLI; remove from manpage

  • use more robust mechanism for lazy loading the asciimath gem

  • use consistent phrase to indicate the processor is automatically recovering from a problem

  • change Reader#skip_comment_lines to not return skipped lines

  • add styles to default stylesheet for display on Kindle (kf8) devices (PR #2475)

  • purge render method from test suite (except to verify alias)

Documentation
  • translate 'section-refsig' for German language (PR #2633) (@ahus1)

  • synchronize French README with English version (PR #2637) (@flashcode)

Build / Infrastructure
  • create an official logo for the project (#48) (@mmajko)

  • update Ruby versions in appveyor build matrix (PR #2388) (@miltador)

  • add mailinglist, changelog, source, and issues URI to gem spec

  • allow blocks and substitutions tests to be run directly

  • asciidoctor formula now available for Homebrew (@zmwangx)

Distribution Packages

1.5.6.2 (2018-03-20) - @mojavelinux

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, PR #2355) (@mogztter)

  • 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) (@miltador)

Distribution Packages

1.5.6.1 (2017-07-23) - @mojavelinux

Enhancements
  • Don’t include title of special section in DocBook output if untitled option is set (e.g., dedication%untitled)

Bug Fixes
  • continue to read blocks inside a delimited block after content is skipped (PR #2318)

  • don’t create an empty paragraph for skipped content inside a delimited block (PR #2319)

  • allow the subs argument of Substitutors#apply_subs to be nil

  • coerce group name to symbol when registering extension (#2324)

  • eagerly substitute attributes in target of inline image macro (#2330)

  • don’t warn if source stylesheet can’t be read but destination already exists (#2323)

  • track include path correctly if path is absolute and outside of base directory (#2107)

  • preprocess second line of setext section title (PR #2321)

  • preprocess second line of setext discrete heading (PR #2332)

  • return filename as relative path if filename doesn’t share common root with base directory (#2107)

Improvements / Refactoring
  • change default text for inter-document xref (PR #2316)

  • add additional tests to test behavior of Reader#peek_lines

  • parse revision info line correctly that only has version and remark; add missing test for scenario

  • rename AtxSectionRx constant to AtxSectionTitleRx for consistency with SetextSectionTitleRx constant

  • use terms "atx" and "setext" to refer to section title syntax (PR #2334)

  • rename HybridLayoutBreakRx constant to ExtLayoutBreakRx

  • change terminology from "floating title" to "discrete heading"

  • consolidate skip blank lines and check for end of reader (PR #2325)

  • have Reader#skip_blank_lines report end of file (PR #2325)

  • don’t mix return type of Parser.build_block method (PR #2328)

  • don’t track eof state in reader (PR #2320)

  • use shift instead of advance to consume line when return value isn’t needed (PR #2322)

  • replace terminology "floating title" with "discrete heading"

  • remove unnecessary nil_or_empty? checks in substitutor

  • leverage built-in assert / refute methods in test suite

Build / Infrastructure
  • config Travis CI job to release gem (PR #2333)

  • add SHA1 hash to message used for triggered builds

  • trigger build of AsciidoctorJ on every change to core

  • trigger build of Asciidoctor Diagram on every change to core

Distribution Packages

1.5.6 (2017-07-12) - @mojavelinux

Enhancements
  • use custom cross reference text if xrefstyle attribute is set (full, short, basic) (#858, #1132)

  • store referenceable nodes under refs key in document catalog (PR #2220)

  • apply reftext substitutions (specialchars, quotes, replacements) to value returned by reftext method (PR #2220)

  • add xreftext method to AbstractBlock, Section, and Inline to produce formatted text for xref (PR #2220)

  • introduce attributes chapter-refsig, section-refsig, and appendix-refsig to set reference signifier for chapter, section, and appendix, respectively (PR #2220)

  • add rel="noopener" to links that target _blank or when noopener option is set (#2071)

  • add option to exclude tags when including a file (#1516)

  • add meta for shortcut icon if favicon attribute is set (#1574)

  • allow use of linenums option to enable line numbers on a source block (#1981)

  • allow extension groups to be unregistered individually (#1701)

  • catalog bibliography anchors and capture reftext (#560, #1562)

  • automatically add bibliography style to unordered list in bibliography section (#1924)

  • disable startinline option when highlighting PHP if mixed option is set on source block (PR #2015) (@ricpelo)

  • configure Slim to resolve includes in specified template dirs (#2214)

  • dump manpage when -h manpage flag is passed to CLI (#2302)

  • add resolves_attributes method to DSL for macros (#2122)

  • invoke convert on result of custom inline macro if value is an inline node (#2132)

  • resolve attributes for custom short inline macros if requested (#1797)

  • add convenience method to create section from extension; use same initialization logic as parser (#1957)

  • add handles? method to DSL for IncludeProcessor (#2119)

  • pass through preload attribute to video tag (#2046)

  • add start and end times for audio element (#1930)

  • set localyear and docyear attributes (#1372)

  • pass cloaked context to block extension via cloaked-context attribute (#1606)

  • add support for covers in DocBook 5 converter (#1939)

  • accept named pipe (fifo) as the input file (#1948)

  • add AbstractBlock#next_adjacent_block helper method

  • rename Document#references to catalog; alias references to catalog (PR #2237)

  • rename extensions_registry option to extension_registry

  • rename Extensions.build_registry method to create

  • autoload extensions source file when Asciidoctor::Extensions is referenced (PR #2114, PR #2312)

  • apply default_attrs to custom inline macro (PR #2127)

  • allow tab separator for table to be specified using \t (#2073)

  • add Cell#text= method

Improvements
  • significant improvements to performance, especially in parser and substitutors

  • process include directive inside text of short form preprocessor conditional (#2146)

  • add support for include tags in languages that only support only circumfix comments (#1729)

  • allow spaces in target of block image; target must start and end with non-space (#1943)

  • add warning in verbose mode if xref is not found (#2268) (@fapdash)

  • add warning if duplicate ID is detected (#2244)

  • validate that output file will not overwrite input file (#1956)

  • include docfile in warning when stylesheet cannot be read (#2089)

  • warn if doctype=inline is used and block has unexpected content model (#1890)

  • set built-in docfilesuffix attribute (#1673)

  • make sourcemap field on Document read/write (#1916)

  • allow target of xref to begin with attribute reference (#2007)

  • allow target of xref to be expressed with leading # (#1546)

  • allow kbd and btn macros to wrap across multiple lines (#2249)

  • allow menu macro to span multiple lines; unescape escaped closing bracket

  • make menu macro less greedy

  • allow ampersand to be used as the first character of the first segment of a menu (#2171)

  • enclose menu caret in HTML tag (#2165)

  • use black text for menu reference; tighten word spacing (#2148)

  • fix parsing of keys in kbd macro (PR #2222)

  • add support for the window option for the link on a block image (#2172)

  • set correct level for special sections in parser (#1261)

  • always set numbered property on appendix to true

  • store number for formal block on node (#2208)

  • set sectname of header section to header (#1996)

  • add the remove_attr method to AbstractNode (#2227)

  • use empty string as default value for set_attr method (#1967)

  • make start argument to system_path optional (#1965)

  • allow API to control subs applied to ListItem text (#2035)

  • allow text of ListItem to be assigned (in an extension) (#2033)

  • make generate_id method on section a static method (#1929)

  • validate name of custom inline macro; cache inline macro rx (#2136)

  • align number in conum list to top by default (#1999)

  • fix CSS positioning of interactive checkbox (#1840)

  • fix indentation of list items when markers are disabled (none, no-bullet, unnumbered, unstyled) (PR #2286)

  • instruct icon to inherit cursor if inside a link

  • close all files opened internally (#1897)

  • be more precise about splitting kbd characters (#1660)

  • rename limit method on String to limit_bytesize (#1889)

  • leverage Ruby’s match? method to speed up non-capturing regexps (PR #1938)

  • preserve inline break in manpages (@letheed)

  • check for presence of SOURCE_DATE_EPOCH instead of value; fail if value is malformed

  • add Rows#by_section method to return table sections (#2219)

  • cache which template engines have been loaded to avoid unnecessary processing

  • rename assign_index method to enumerate_section (PR #2242)

  • don’t process double quotes in xref macro (PR #2241)

  • optimize attr and attr? methods (PR #2232)

  • use IO.write instead of File.open w/ block; backport for Opal

  • backport IO.binread to Ruby 1.8.7 to avoid runtime check

  • cache backend and doctype values on document

  • allow normalize option to be set on PreprocessorReader; change default to false

  • move regular expression constants for Opal to Asciidoctor.js build (PR #2070)

  • add missing comma in warning message for callout list item out of sequence

  • combine start_with? / end_with? checks into a single method call

  • rename UriTerminator constant to UriTerminatorRx

  • promote subs to top-level constants; freeze arrays

  • rename PASS_SUBS constant to NONE_SUBS

  • rename EOL constant to LF (retain EOL as alias)

  • rename macro regexp constants so name follows type (e.g., InlineImageMacroRx)

Compliance
  • retain block content in items of callout list when converting to HTML and man page (#1478)

  • only substitute specialchars for content in literal table cells (#1912)

  • fix operator logic for ifndef directive with multiple attributes (#1983)

  • only recognize uniform underline for setext section title (#2083)

  • don’t match headings with mixed leading characters (#2074)

  • fix layout break from matching lines it shouldn’t

  • fix behavior of attribute substitution in docinfo content (PR #2296)

  • encode spaces in URI (PR #2274)

  • treat empty string as a valid block title

  • preprocess lines of a simple block (#1923)

  • don’t drop trailing blank lines when splitting source into lines (PR #2045)

  • only drop known AsciiDoc extensions from the inter-document xref path (#2217)

  • don’t number special sections or special subsections by default (#2234)

  • assign sectname based on name of manuscript element (#2206)

  • honor leveloffset when resolving implicit doctitle (#2140)

  • permit leading, trailing, and repeat operators in target of preprocessor conditional (PR #2279)

  • don’t match link macro in block form (i.e., has two colons after prefix) (#2202)

  • do not match bibliography anchor that begins with digit (#2247)

  • use [ \t] (or \s) instead of \p to match spaces (#2204)

  • allow named entity to have trailing digits (e.g., there4) (#2144)

  • only assign style to image alt text if alt text is not specified

  • substitute replacements in non-generated alt text of block image (PR #2285)

  • keep track of whether alt text is auto-generated by assigning default-alt attribute (PR #2287)

  • suppress info element in docbook output if noheader attribute is set (#2155)

  • preserve leading indentation in literal and verse table cells (#2037)

  • preserve whitespace in literal and verse table cells (#2029)

  • set doctype-related attributes in AsciiDoc table cell (#2159)

  • fix comparison logic when preprocessing first line of AsciiDoc table cell

  • set filetype to man when backend is manpage (#2055)

  • respect image scaling in DocBook converter (#1059)

  • share counters between AsciiDoc table cells and main document (#1942)

  • generate ID for floating title from converted title (#2016)

  • split "treeprocessor" into two words; add aliases for compatibility (PR #2179)

  • allow trailing hyphen in attribute name used in attribute reference

  • allow escaped closing bracket in text of xref macro

  • process pass inline macro with empty text; invert extract logic

  • drop support for reftext document attribute (must be specified on node)

  • fix compliance with Haml >= 5 (load Haml eagerly; remove ugly option)

  • don’t match inline image macro if target contains endline or leading or trailing spaces

  • assign id instead of target on ref/bibref node (PR #2307)

  • remove regexp hacks for Opal (#2110)

  • drop outdated quoting exceptions for Opal (PR #2081)

Bug Fixes
  • don’t allow table borders to cascade to nested tables (#2151)

  • escape special characters in reftext of anchor (#1694)

  • sanitize content of authors meta tag in HTML output (#2112)

  • use correct line number in warning for invalid callout item reference (#2275)

  • fix stray marks added when unescaping unconstrained passthroughs (PR #2079)

  • don’t confuse escaped quotes in CSV data as enclosing quotes (#2008)

  • don’t activate implicit header if cell in first line of table contains a blank line (#1284, #644)

  • allow compat-mode in AsciiDoc table cell to inherit from parent document (#2153)

  • manify all normal table cell content (head, body, foot) in manpage output

  • add missing newline after table caption in manpage output (#2253)

  • correctly format block title on video in manpage output

  • don’t crash if substitution list resolves to nil (#2183)

  • fail with informative message if converter cannot be resolved (#2161)

  • fix regression of not matching short form of custom block macro

  • encode double quotes in image alt text when used in an attribute (#2061)

  • encode double quote and strip XML tags in value of xreflabel attribute in DocBook converter (PR #2220)

  • fix typo in base64 data (PR #2094) (@mogztter)

  • permit pass macro to surround a multi-line attribute value with hard line breaks (#2211)

  • fix sequential inline anchor macros with empty reftext (#1689)

  • don’t mangle compound names when document has multiple authors (#663)

  • don’t drop last line of verbatim block if it contains only a callout number (#2043)

  • prevent leading & trailing round brackets from getting caught in indexterm (#1581)

  • remove cached title when title is set on block (#2022)

  • remove max-width on the callout number icon (#1895)

  • eagerly add hljs class for highlight.js (#2221)

  • fix SOURCE_DATE_EPOCH lookup in Opal

  • fix paths with file URI scheme are inevitably absolute (PR #1925) (@mogztter)

  • only resolve file URLs when JavaScript IO module is xmlhttprequest (PR #1898) (@mogztter)

  • fix formatting of video title in manpage converter

  • don’t increment line number if peek_lines overruns buffer (fixes some cases when line number is off)

  • freeze extension processor instance, not class

  • fix numbering bug in reindex_sections

  • handle cases when there are no lines for include directive to select

Documentation
  • enable admonition icons in README when displayed on GitHub

  • add German translation of chapter-label (PR #1920) (@fapdash)

  • add Ukrainian translation of built-in attributes (PR #1955) (@hedrok)

  • add Norwegian Nynorsk translation; updated Norwegian BokmÃ¥l translation of built-in attributes (PR #2142) (@huftis)

  • add Polish translation of built-in attributes (PR #2131) (@ldziedziul)

  • add Romanian translation of built-in attributes (PR #2125) (@vitaliel)

  • fix Japanese translation of built-in attributes (PR #2116) (@haradats)

  • add Bahasa Indonesia translation of built-in labels (@triyanwn)

Build / Infrastructure
  • upgrade highlight.js to 9.12.0 (#1652)

  • include entire test suite in gem (PR #1952) (@voxik)

  • upgrade Slim development dependency to 3.0.x (PR #1953) (@voxik)

  • upgrade Haml development dependency to 5.0.x

  • upgrade Nokogiri to 1.6.x (except on Ruby 1.8) (PR #1213)

  • add Ruby 2.4 to CI test matrix (PR #1980)

  • upgrade cucumber and JRuby in CI build (PR #2005)

  • fix reference to documentation in attributes.adoc (PR #1901) (@stonio)

  • trap and verify all warnings when tests are run with warnings enabled

  • set default task in build to test:all

  • configure run-tests.sh script to run all tests

  • configure feature tests to only show progress

  • configure Slim in feature tests to use html as format instead of deprecated html5

  • lock version of yard to fix invalid byte sequence in Ruby 1.9.3

  • modify rake build to trigger dependent builds (specifically, Asciidoctor.js) (PR #2305) (@mogztter)

Distribution Packages

1.5.5 (2016-10-05) - @mojavelinux

Enhancements
  • Add preference to limit the maximum size of an attribute value (#1861)

  • Honor SOURCE_DATE_EPOCH environment variable to accomodate reproducible builds (#1721) (@JojoBoulix)

  • Add reversed attribute to ordered list if reversed option is enabled (#1830)

  • Add support for additional docinfo locations (e.g., :header)

  • Configure default stylesheet to break monospace word if exceeds length of line using word-wrap: break-word; add nobreak and nowrap roles to prevent breaks (#1814)

  • Introduce translation file for built-in labels (@ciampix)

  • Provide translations for built-in labels (@JmyL - kr, @ciampix - it, @ivannov - bg, @maxandersen - da, @radcortez - pt, @eddumelendez - es, @leathersole - jp, @aslakknutsen - no, @shahryareiv - fa, @AlexanderZobkov - ru, @dongwq - zh, @rmpestano - pt_BR, @ncomet - fr, @lgvz - fi, @patoi - hu, @BojanStipic - sr, @fwilhe - de, @rahmanusta - tr, @abelsromero - ca, @aboullaite - ar, @roelvs - nl)

  • Translate README to Chinese (@diguage)

  • Translate README to Japanese (@Mizuho32)

Improvements
  • Style nested emphasized phrases properly when using default stylesheet (#1691)

  • Honor explicit table width even when autowidth option is set (#1843)

  • Only explicit noheader option on table should disable implicit table header (#1849)

  • Support docbook orient="land" attribute on tables (#1815)

  • Add alias named list to retrieve parent List of ListItem

  • Update push_include method to support chaining (#1836)

  • Enable font smoothing on Firefox on OSX (#1837)

  • Support combined use of sectanchors and sectlinks in HTML5 output (#1806)

  • fix API docs for find_by

  • Upgrade to Font Awesome 4.6.3 (#1723) (@allenan, @mogztter)

  • README: add install instructions for Alpine Linux

  • README: Switch yum commands to dnf in README

  • README: Mention Mint as a Debian distro that packages Asciidoctor

  • README: Add caution advising against using gem update to update a system-managed gem (@oddhack)

  • README: sync French version with English version (@flashcode)

  • Add missing endline after title element when converting open block to HTML

  • Move list_marker_keyword method from AbstractNode to AbstractBlock

  • Rename definition list to description list internally

Compliance
  • Support 6-digit decimal char refs, 5-digit hexidecimal char refs (#1824)

  • Compatibility fixes for Opal

  • Check for number using Integer instead of Fixnum class for compatibility with Ruby 2.4

Bug Fixes
  • Use method_defined? instead of respond_to? to check if method is already defined when patching (#1838)

  • Fix invalid conditional in HTML5 converter when handling of SVG

  • Processor#parse_content helper no longer shares attribute list between blocks (#1651)

  • Fix infinite loop if unordered list marker is immediately followed by a dot (#1679)

  • Don’t break SVG source when cleaning if svg start tag name is immediately followed by endline (#1676)

  • Prevent template converter from crashing if .rb file found in template directory (#1827)

  • Fix crash when generating section ID when both idprefix & idseparator are blank (#1821)

  • Use stronger CSS rule for general text color in Pygments stylesheet (#1802)

  • Don’t duplicate forward slash for path relative to root (#1822)

Infrastructure
  • Build gem properly in the absense of a git workspace, make compatible with JRuby (#1779)

  • Run tests in CI using latest versions of Ruby, including Ruby 2.3 (@ferdinandrosario)

Distribution Packages

1.5.4 (2016-01-03) - @mojavelinux

Enhancements
  • translate README into French (#1630) (@anthonny, @mogztter, @gscheibel, @mgreau)

  • allow linkstyle in manpage output to be configured (#1610)

Improvements
  • upgrade to MathJax 2.6.0 and disable loading messages

  • upgrade to Font Awesome 4.5.0

  • disable toc if document has no sections (#1633)

  • convert inline asciimath to MathML (using asciimath gem) in DocBook converter (#1622)

  • add attribute to control build reproducibility (#1453) (@bk2204)

  • recognize file:/// as a file root in Opal browser env (#1561)

  • honor icon attribute on admonition block when font-based icons are enabled (#1593) (@robertpanzer)

  • resolve custom icon relative to iconsdir; add file extension if absent (#1634)

  • allow asciidoctor cli to resolve library path when invoked without leading ./

Compliance
  • allow special section to be nested at any depth (#1591)

  • ensure colpcwidth values add up to 100%; increase precision of values to 4 decimal places (#1647)

  • ignore blank cols attribute on table (#1647)

  • support shorthand syntax for block attributes on document title (#1650)

Bug Fixes
  • don’t include default toc in AsciiDoc table cell; don’t pass toc location attributes to nested document (#1582)

  • guard against nil dlist list item in find_by (#1618)

  • don’t swallow trailing line when include file is not readable (#1602)

  • change xlink namespace to xl in DocBook 5 output to prevent parse error (#1597)

  • make callouts globally unique within document, including AsciiDoc table cells (#1626)

  • initialize Slim-related attributes regardless of when Slim was loaded (#1576) (@terceiro)

  • differentiate literal backslash from escape sequence in manpage output (#1604) (@ds26gte)

  • don’t mistake line beginning with \. for troff macro in manpage output (#1589) (@ds26gte)

  • escape leading dots so user content doesn’t trigger troff macros in manpage output (#1631) (@ds26gte)

  • use \c after .URL macro to remove extraneous space in manpage output (#1590) (@ds26gte)

  • fix missing endline after .URL macro in manpage output (#1613)

  • properly handle spacing around .URL/.MTO macro in manpage output (#1641) (@ds26gte)

  • don’t swallow doctitle attribute followed by block title (#1587)

  • change strategy for splitting names of author; fixes bug in Opal/Asciidoctor.js

  • don’t fail if library is loaded more than once

Infrastructure
  • remove trailing newlines in project source code

  • update contributing guidelines

  • explicitly test ifeval scenario raised in issue #1585

  • remove backreference substitution hack for Opal/Asciidoctor.js

  • fix assignment of default Hash value for Opal/Asciidoctor.js

  • add JRuby 9.0.4.0 and Ruby 2.3.0 to the Travis CI build matrix

Distribution Packages

1.5.3 (2015-10-31) - @mojavelinux

Enhancements
  • add support for interactive & inline SVGs (#1301, #1224)

  • add built-in manpage backend (#651) (@davidgamba)

  • create Mallard backend; asciidoctor/asciidoctor-mallard (#425) (@bk2204)

  • add AsciiMath to MathML converter to support AsciiMath in DocBook converter (#954) (@pepijnve)

  • allow text of selected lines to be highlighted in source block by Pygments or CodeRay (#1429)

  • use value of docinfo attribute to control docinfo behavior (#1510)

  • add docinfosubs attribute to control which substitutions are performed on docinfo files (#405) (@mogztter)

  • drop ability to specify multiple attributes with a single -a flag when using the CLI (#405) (@mogztter)

  • make subtitle separator chars for document title configurable (#1350) (@rmannibucau)

  • make XrefInlineRx regexp more permissive (Mathieu Boespflug) (#844)

Improvements
  • load JavaScript and CSS at bottom of HTML document (#1238) (@mogztter)

  • list available backends in help text (#1271) (@plaindocs)

  • properly expand tabs in literal text (#1170, #841)

  • add source-indent as document attribute (#1169) (@mogztter)

  • upgrade MathJax to 2.5.3 (#1329)

  • upgrade Font Awesome to 4.4.0 (#1465) (@mogztter)

  • upgrade highlight.js to 8.6 (now 8.9.1) (#1390)

  • don’t abort if syntax highlighter isn’t available (#1253)

  • insert docinfo footer below footer div (#1503)

  • insert toc at default location in embeddable HTML (#1443)

  • replace _ and - in generated alt text for inline images

  • restore attributes to header attributes after parse (#1255)

  • allow docdate and doctime to be overridden (#1495)

  • add CSS class .center for center block alignment (#1456)

  • recognize U+2022 (bullet) as alternative marker for unordered lists (#1177) (@mogztter)

  • allow videos to work for local files by prepending asset-uri-scheme (Chris) (#1320)

  • always assign playlist param when loop option is enabled for YouTube video

  • parse isolated version in revision line (#790) (@bk2204)

  • autoload Tilt when template converter is instantiated (#1313)

  • don’t overwrite existing id entry in references table (#1256)

  • use outfilesuffix attribute defined in header when resolving outfile (#1412)

  • make AsciiDoc safe mode option on Slim engine match document (#1347)

  • honor htmlsyntax attribute when backend is html/html5 (#1530)

  • tighten spacing of wrapped lines in TOC (#1542)

  • tune padding around table cells in horizontal dlist (#1418)

  • load Droid Sans Mono 700 in default stylesheet

  • set line height of table cells used for syntax highlighting

  • set font-family of kbd; refine styling (#1423)

  • extract condition into quote_lines? method (@mogztter)

  • extract inline code into read_paragraph method (@mogztter)

  • parent of block in ListItem should be ListItem (#1359)

  • add helper methods to List and ListItem (#1551)

  • add method AbstractNode#add_role and AbstractNode#remove_role (#1366) (@robertpanzer)

  • introduce helper methods for sniffing URIs (#1422)

  • add helper to calculate basename without file extension

  • document -I and -r options in the manual page (@bk2204)

  • fix --help output text for -I (@bk2204)

  • don’t require open-uri-cached if already loaded

  • do not attempt to scan pattern of non-existent directory in template converter

  • prevent CodeRay from bolding every 10th line number

Compliance
  • use <sup> for footnote reference in text instead of <span> (#1523)

  • fix alignment of wrapped text in footnote (#1524)

  • include full stop after footnote number in embeddable HTML

  • show manpage title & name section in embeddable HTML (#1179)

  • resolve missing attribute in ifeval to empty string (#1387)

  • support unbreakable & breakable options on table (rockyallen) (#1140)

Bug Fixes
  • don’t truncate exception stack in Asciidoctor.load (#1248)

  • don’t fail to save cause of Java exception (#1458) (@robertpanzer)

  • fix precision error in timings report (#1342)

  • resolve regexp for inline macro lazily (#1336)

  • block argument to find_by should filter results (#1393)

  • strip comment lines in indented text of dlist item (#1537)

  • preserve escaped delimiter at end of line in a table (#1306)

  • correctly calculate colnames for implicit columns (#1556)

  • don’t crash if colspan exceeds colspec (#1460)

  • account for empty records in colspec (#1375)

  • ignore empty cols attribute on table

  • use .inspect to print MathJax delimiters (again) (#1198)

  • use while loop instead of begin/while loop to address bug in Asciidoctor.js (#1408)

  • force encoding of attribute values passed from cli (#1191)

  • don’t copy css if stylesheet or stylesdir is a URI (#1400)

  • fix invalid color value in default CodeRay theme

  • built-in writer no longer fails if output is nil (#1544)

  • custom template engine options should take precedence

  • fallback to require with a non-relative path to support Debian package (@mogztter)

  • pass opts to recursive invocations of PathResolver#system_path

  • fix and test external links in docbook backend

  • use format symbol :html instead of :html5 for Slim to fix warnings

  • fix documentation for inline_macro and block_macro (Andrea Bedini)

  • fix grammar in warning messages regarding thread_safe gem

Infrastructure
  • migrate opal_ext from core to Asciidoctor.js (#1517)

  • add Ruby 2.2 to CI build; only specify minor Ruby versions

  • enable containerized builds on Travis CI

  • add config to run CI build on AppVeyor

  • exclude benchmark folder from gem (#1522)

Distribution Packages

1.5.2 (2014-11-27) - @mojavelinux

Enhancements
  • add docinfo extension (#1162) (@mogztter)

  • allow docinfo to be in separate directory from content, specified by docinfodir attribute (#511) (@mogztter)

  • enable TeX equation auto-numbering if eqnums attribute is set (#1110) (@jxxcarlson)

Improvements
  • recognize -- as valid line comment for callout numbers; make line comment configurable (#1068)

  • upgrade highlight.js to version 8.4 (#1216)

  • upgrade Font Awesome to version 4.2.0 (#1201) (@clojens)

  • define JAVASCRIPT_PLATFORM constant to simplify conditional logic in the JavaScript environment (#897)

  • provide access to destination directory, outfile and outdir via Document object (#1203)

  • print encoding information in version report produced by asciidoctor -v (#1210)

  • add intrinsic attribute named cpp that effectively resolves to C++ (#1208)

  • preserve URI targets passed to stylesheet and related attributes (#1192)

  • allow numeric characters in block attribute name (#1103)

  • support custom YouTube playlists (#1105)

  • make start number for unique id generation configurable (#1148)

  • normalize and force UTF-8 encoding of docinfo content (#831)

  • allow subs and default_subs to be specified in Block constructor (#749)

  • enhance error message when reading binary input files (#1158) (@mogztter)

  • add append method as alias to << method on AbstractBlock (#1085)

  • assign value of preface-title as title of preface node (#1090)

  • fix spacing around checkbox in checklist (#1138)

  • automatically load Slim’s include plugin when using slim templates (#1151) (@jirutka)

  • mixin Slim helpers into execution scope of slim templates (#1143) (@jirutka)

  • improve DocBook output for manpage doctype (#1134, #1142) (@bk2204)

Compliance
  • substitute attribute entry value in attributes defined outside of header (#1130)

  • allow empty cell to appear at end of table row (#1106)

  • only produce one row for table in CSV or DSV format with a single cell (#1180)

Bug Fixes
  • add explicit to_s call to generate delimiter settings for MathJax config (#1198)

  • fix includes that reference absolute Windows paths (#1144)

  • apply DSL to extension block in a way compatible with Opal

Distribution Packages

1.5.1 (2014-09-29) - @mojavelinux

Bug Fixes
  • recognize tag directives inside comments within XML files for including tagged regions

  • restore passthroughs inside footnotes when more than one footnote appears on the same line

  • -S flag in cli recognizes safe mode name as lowercase string

  • do not match # in character reference when looking for marked text

  • add namespace to lang attribute in DocBook 5 backend

  • restore missing space before conum on last line of listing when highlighting with Pygments

  • place conums on correct lines when line numbers are enabled when highlighting with Pygments

  • don’t expand mailto links in print styles

Improvements
  • implement File.read in Node (JavaScript) environment

  • assign sectnumlevels and toclevels values to maxdepth attribute on AsciiDoc processing instructions in DocBook output

  • add test for usage of image block macro with data URI

  • use badges from shields.io in README

Distribution Packages

1.5.0 (2014-08-12) - @mojavelinux

Performance
  • 10% increase in speed compared to 0.1.4

  • rewrite built-in converters in Ruby instead of ERB

Enhancements
  • ★ introduce new curved quote syntax ("`double quotes`", '`single quotes`') if compat-mode attribute not set (#1046)

  • ★ add single curved quote replacement for `' (#715)

  • ★ use backtick (`) for monospaced text if compat-mode attribute not set (#714, #718)

  • ★ use single and double plus (+, ++) for inline passthrough if compat-mode attribute not set (#714, #718)

  • ★ disable single quotes as formatting marks for emphasized text if compat-mode attribute not set (#717)

  • ★ enable compat-mode by default if document has atx-style doctitle

  • ★ output phrase surrounded by # as marked text (i.e., <mark>) (#225)

  • ★ add MathJax integration and corresponding blocks and macros (#492, #760)

  • ★ switch to open source fonts (Open Sans, Noto Serif and Droid Sans Mono) in default stylesheet, major refinements to theme (#879)

  • ★ embed remote images when data-uri and allow-uri-read attributes are set (#612)

  • ★ support leveloffset on include directive and honor relative leveloffset values (#530)

  • ★ switch default docbook backend to docbook5 (#554) (@bk2204)

  • ★ added hide-uri-scheme attribute to hide uri scheme in automatic links (#800)

  • ★ allow substitutions to be incrementally added & removed (#522)

  • ★ add compatibility with Opal, add shim compat library, use compatibility regexp, require libraries properly (#679, #836, #846) (@mogztter)

  • ★ output XHTML when backend is xhtml or xhtml5 (#494)

  • ★ add shorthand subs and specialchars as an alias for specialcharacters (#579)

  • ★ deprecate toc2 attribute in favor of position and placement values on toc attribute (e.g., toc=left) (#706)

  • ★ add source map (file and line number) information to blocks (#861)

  • ★ write to file by default if input is file (#907)

  • ★ add -r and -I flags from ruby command to asciidoctor command for loading additional libraries (#574)

  • support backslash (\) as line continuation character in the value of an attribute entry (#1022)

  • disable subs on pass block by default (#737)

  • add basic support for resolving xref target from reftext (#589)

  • add time range anchor to video element (#886)

  • match implicit URLs that use the file scheme (#853)

  • added sectnumlevels to control depth of section numbering (#549)

  • add hardbreaks option to block (#630)

  • substitute attribute references in manname

  • warn on reference to missing attribute if attribute-missing is "warn"

  • only enable toc macro if toc is enabled and toc-placement attribute has the value macro (#706)

  • add sectnums attribute as alternative alias to numbered attribute (#684)

Improvements
  • ★ don’t select lines that contain a tag directive when including tagged lines, make tag regexp more strict (#1027)

  • ★ use https scheme for assets by default

  • ★ upgrade to Font Awesome 4.1 (#752) (@mogztter)

  • ★ improve print styles, add print styles for book doctype (#997, #952) (@leif81)

  • ★ add proper grid and frame styles for tables (#569) (@leif81)

  • ★ use glyphs for checkboxes when not using font icons (#878)

  • ★ prefer source-language attribute over language attribute for defining default source language (#888)

  • ★ pass document as first argument to process method on Preprocessor

  • don’t parse link attributes when linkattrs is set unless text contains equal sign

  • detect bare links, mark with bare class; don’t repeat URL of bare link in print styles

  • allow Treeprocessor#process method to replace tree (#1035)

  • add AbstractNode#find_by method to locate nodes in tree (#862)

  • add API for parsing title and subtitle (#1000)

  • add use_fallback option to doctitle, document method

  • constrain subscript & superscript markup (#564, #936)

  • match cell specs when cell separator is customized (#985)

  • use stylesheet to set default table width (#975)

  • display nested elements correctly in toc (#967) (@kenfinnigan)

  • add support for id attribute on links (#935) (@mogztter)

  • add support for title attribute on links (@aslakknutsen)

  • add -t flag to cli to control output of timing information (#909) (@mogztter)

  • rewrite converter API (#778)

  • rewrite extensions to support extension instances for AsciidoctorJ (#804)

  • integrate thread_safe gem (#638)

  • allow inline macro extensions that define a custom regexp to be matched (#792)

  • make Reader#push_include work with default file, path and dir (#743) (@bk2204)

  • honor custom outfilesuffix and introduce relfileprefix (#801)

  • add author and copyright to meta in HTML5 backend (#838)

  • output attribution in front of citetitle for quote and verse blocks

  • recognize float style with shorthand syntax outside block (#818)

  • honor background color in syntax highlighting themes (#813)

  • print runtime environment in version output, support -v as version flag (#785)

  • unwrap preamble if standalone (#533)

  • drop leading & trailing blank lines in verbatim & raw content (#724)

  • remove trailing newlines from source data (#727)

  • add flag to cli to suppress warnings (#557)

  • emit warning if tag(s) not found in include file (#639)

  • use <th> element for vertical table headers instead of header class (#738) (@davidgamba)

  • share select references between AsciiDoc-style cell & main document (#729)

  • number chapters sequentially, always (#685)

  • add vbar attribute, make brvbar resolve properly (#643)

  • add implicit user-home attribute that resolves to user’s home directory (#629)

  • enable sidebar toc for small screens (#628)

  • add square brackets around button in HTML output (#631)

  • make language hover text work for all languages in listing block

  • set background color on toc2 to cover scrolling content (@neher)

  • make document parsing a discrete step, make Reader accessible as property on Document

  • allow custom converter to set backend info such as outfilesuffix and htmlsyntax

  • report an informative error message when a converter cannot be resolved (@mogztter)

  • add conum class to b element when icons are disabled, make conum CSS selector more specific

  • expose Document object to extension point IncludeProcessor (@aslakknutsen)

  • style audioblock title, simplify rules for block titles

  • alias :name_attributes to :positional_attributes in extension DSL

  • upgrade to highlight.js 7.4 (and later 8.0) (#756) (@mogztter)

Compliance
  • only include xmlns in docbook45 backend if xmlns attribute is specified (#929)

  • add xmlns attribute for xhtml output (@bk2204)

  • warn if table without a body is converted to DocBook (#961)

  • wrap <para> around admonition inside example block in DocBook 4.5 (#931)

  • use <informalfigure> if block image doesn’t have a title (#927)

  • fix invalid docbook when adding role to formatted text (#956)

  • move all compliance flags to Compliance module (#624)

  • add compliance setting to control use of shorthand property syntax (#789)

  • wrap top-level content inside preamble in DocBook backend when doctype is book (#971)

  • escape special chars in image alt text (#972)

  • set starting number in ordered list for docbook (#925) (@megathaum)

  • match word characters in regular expressions as defined by Unicode (#892)

  • put source language class names on child code element of pre element (#921)

  • ignore case of attribute in conditional directives (#903)

  • allow attribute entry to reset / reseed counter (#870)

  • allow doctype to be set in AsciiDoc table cell (#863)

  • match URL macro following entity (#819) (@jmbruel)

  • handle BOM when normalizing source (#824)

  • don’t output revhistory if revdate is not set (#802)

  • perform normal subs on verse content (#799)

  • automatically wrap part intro content in partintro block, emit warning if part is invalid (#768)

  • force encoding of docinfo content to UTF-8 (#773)

  • add scaling & alignment attributes to block image in DocBook backend (#763)

  • add support for \anchor:<id>[<reftext>] macro (#531)

  • substitute anchor and xref macros in footnotes (#676)

  • remove all string mutation operations for compatibility with Opal (#735)

  • honor reftext defined in embedded section title anchor (#697)

  • allow spaces in reftext defined in block anchor (#695)

  • use reftext of section or block in text of xref link (#693)

  • number sections in appendix using appendix number (#683)

  • unescape escaped square closing bracket in footnote text (#677)

  • support quoted index terms that may contain commas (#597)

  • don’t assign role attribute if quoted text has no roles (#647)

  • disallow quoted values in block and inline anchors

  • add % to scaledwidth if no units given

  • ignore block attribute with unquoted value None

  • preserve entity references with 5 digits

Bug Fixes
  • resolve relative paths relative to base_dir in unsafe mode (#690)

  • properly handle nested passthroughs (#1034)

  • don’t clobber outfilesuffix attribute if locked (#1024)

  • correctly calculate columns if colspan used in first row of table (#924)

  • pass theme to Pygments when pygments-css=style (#919)

  • fallback to text lexer when using pygments for source highlighting (#987)

  • only make special section if style is specified (#917)

  • an unresolved footnote ref should not crash processor (#876)

  • rescue failure to resolve ::Dir.home (#896)

  • recognize Windows UNC path as absolute and preserve it (#806)

  • adjust file glob to account for backslash in Windows paths (#805)

  • don’t match e-mail address inside URL (#866)

  • test include directive resolves file with space in name (#798)

  • return nil from Reader#push_include and Reader#pop_include methods (#745)

  • fixed broken passthroughs caused by source highlighting (#720)

  • copy custom stylesheet if linkcss is set (#300)

  • honor list continuations for indented, nested list items (#664)

  • fix syntax errors in converters (@jljouannic)

  • fix iconfont-remote setting

  • fix syntax error (target → node.target) in Docbook 5 converter (@jf647)

  • output and style HTML for toc macro correctly

Infrastructure
  • add Ruby 2.1 to list of supported platforms

  • reenable rbx in Travis build

  • switch tests to minitest (@ktdreyer)

  • update RPM for Fedora Rawhide (@ktdreyer)

  • refactor unit tests so they work in RubyMine (@cmoulliard)

  • add preliminary benchmark files to repository (#1021)

  • clean out old fixtures from test suite (#960)

  • add initial Cucumber test infrastructure (#731)

  • use gem tasks from Bundler in Rakefile (#654)

  • build gemspec files using git ls-tree (#653)

  • use in-process web server for URI tests

  • update manpage to reflect updates in 1.5.0

  • rework README (#651) (@mogztter)

Distribution Packages

0.1.4 (2013-09-05) - @mojavelinux

Performance
  • 15% increase in speed compared to 0.1.3

Enhancements
  • updated xref inline macro to support inter-document references (#417)

  • added extension API for document processing (#79)

  • added include directive processor extension (#100)

  • added id and role shorthand for formatted (quoted) text (#517)

  • added shorthand syntax for specifying block options (#481)

  • added support for checklists in unordered list (#200)

  • added support for inline style for unordered lists (#620)

  • added DocBook 5 backend (#411)

  • added docinfo option for footer (#486)

  • added Pygments as source highlighter option (pygments) (#538)

  • added icon inline macro (#529)

  • recognize implicit table header row (#387)

  • uri can be used in inline image (#470)

  • add float attribute to inline image (#616)

  • allow role to be specified on text enclosed in backticks (#419)

  • added XML comment-style callouts for use in XML listings (#582)

  • made callout bullets non-selectable in HTML output (#478)

  • pre-wrap literal blocks, added nowrap option to listing blocks (#303)

  • skip (retain) missing attribute references by default (#523)

  • added attribute-missing attribute to control how a missing attribute is handled (#495)

  • added attribute-undefined attribute to control how an undefined attribute is handled (#495)

  • permit !name syntax for undefining attribute (#498)

  • ignore front matter used by static site generators if skip-front-matter attribute is set (#502)

  • sanitize contents of HTML title element in html5 backend (#504)

  • support toc position for toc2 (#467)

  • cli accepts multiple files as input (#227) (@lordofthejars)

  • added Markdown-style horizontal rules and pass Markdown tests (#455)

  • added float clearing classes (.clearfix, .float-group) (#602)

  • don’t disable syntax highlighting when explicit subs is used on listing block

  • asciidoctor package now available in Debian Sid and Ubuntu Saucy (#216) (@avtobiff)

Compliance
  • embed CSS by default, copy stylesheet when linkcss is set unless copycss! is set (#428)

  • refactor reader to track include stack (#572)

  • made include directive resolve relative to current file (#572)

  • track include stack to enforce maximum depth (#581)

  • fixed greedy comment blocks and paragraphs (#546)

  • enable toc and numbered by default in DocBook backend (#540)

  • ignore comment lines when matching labeled list item (#524)

  • correctly parse footnotes that contain a URL (#506)

  • parse manpage metadata, output manpage-specific HTML, set docname and outfilesuffix (#488, #489)

  • recognize preprocessor directives on first line of AsciiDoc table cell (#453)

  • include directive can retrieve data from uri if allow-uri-read attribute is set (#445)

  • support escaping attribute list that precedes formatted (quoted) text (#421)

  • made improvements to list processing (#472, #469, #364)

  • support percentage for column widths (#465)

  • substitute attributes in docinfo files (#403)

  • numbering no longer increments on unnumbered sections (#393)

  • fixed false detection of list item with hyphen marker

  • skip include directives when processing comment blocks

  • added xmlns to root element in docbook45 backend, set noxmlns attribute to disable

  • added a Compliance module to control compliance-related behavior

  • added linkattrs feature to AsciiDoc.py compatibility file (#441)

  • added level-5 heading to AsciiDoc.py compatibility file (#388)

  • added new XML-based callouts to AsciiDoc.py compatibility file

  • added absolute and uri image target matching to AsciiDoc.py compatibility file

  • added float attribute on inline image macro to AsciiDoc.py compatibility file

  • removed linkcss in AsciiDoc.py compatibility file

  • fixed fenced code entry in AsciiDoc.py compatibility file

Bug Fixes
  • lowercase attribute names passed to API (#508)

  • numbered can still be toggled even when enabled in API (#393)

  • allow JRuby Map as attributes (#396)

  • don’t attempt to highlight callouts when using CodeRay and Pygments (#534)

  • correctly calculate line length in Ruby 1.8 (#167)

  • write to specified outfile even when input is stdin (#500)

  • only split quote attribution on first comma in Markdown blockquotes (#389)

  • don’t attempt to print render times when doc is not rendered

  • don’t recognize line with four backticks as a fenced code block (#611)

Improvements
  • upgraded Font Awesome to 3.2.1 (#451)

  • improved the built-in CodeRay theme to match Asciidoctor styles

  • link to CodeRay stylesheet if linkcss is set (#381)

  • style the video block (title & margin) (#590)

  • added Groovy, Clojure, Python and YAML to floating language hint

  • only process callouts for blocks in which callouts are found

  • added content_model to AbstractBlock, rename buffer to lines

  • use Untitled as document title in rendered output if document has no title

  • rename include-depth attribute to max-include-depth, set 64 as default value (#591)

  • the tag attribute can be used on the include directive to identify a single tagged region

  • output multiple authors in HTML backend (#399)

  • allow multiple template directories to be specified, document in usage and manpage (#437)

  • added option to cli to specify template engine (#406)

  • added support for external video hosting services in video block macro (#587) (@xcoulon)

  • strip leading separator(s) on section id if idprefix is blank (#551)

  • customized styling of toc placed inside body content (#507)

  • consolidate toc attribute so toc with or without toc-position can make sidebar toc (#618)

  • properly style floating images (inline & block) (#460)

  • add float attribute to inline images (#616)

  • use ul list for TOC in HTML5 backend (#431)

  • support multiple terms per labeled list item in model (#532)

  • added role?, has_role?, option? and roles methods to AbstractNode (#423, 474)

  • added captioned_title method to AbstractBlock

  • honor showtitle attribute as alternate to notitle! (#457)

  • strip leading indent from literal paragraph blocks assigned the style normal

  • only process lines in AsciiDoc files

  • emit message that tilt gem is required to use custom backends if missing (#433)

  • use attributes for version and last updated messages in footer (#596)

  • added a basic template cache (#438)

  • include line info in several of the warnings (for lists and tables)

  • print warning/error messages using warn (#556)

  • lines are not preprocessed when peeking ahead for section underline

  • introduced Cursor object to track line info

  • fixed table valign classes, no underline on image link

  • removed dependency on pending library, lock Nokogiri version to 1.5.10

  • removed require rubygems line in asciidoctor.rb, add to cli if RUBY_VERSION < 1.9

  • added tests for custom backends

  • added test that shorthand doesn’t clobber explicit options (#481)

  • removed unnecessary monospace class from literal and listing blocks

Distribution Packages

0.1.3 (2013-05-30) - @mojavelinux

Performance
  • 10% increase in speed compared to 0.1.2

Enhancements
  • added support for inline rendering by setting doctype to inline (#328)

  • added support for using font-based icons (#115)

  • honor haml/slim/jade-style shorthand for id and role attributes (#313)

  • support Markdown-style headings as section titles (#373)

  • support Markdown-style quote blocks

  • added section level 5 (maps to h6 element in the html5 backend) (#334)

  • added btn inline macro (#259)

  • added menu inline menu to identify a menu selection (#173) (@bleathem)

  • added kbd inline macro to identify a key or key combination (#172) (@bleathem)

  • support alternative quote forms (#196)

  • added indent attribute to verbatim blocks (#365)

  • added prettify source-highlighter (#202)

  • link section titles (#122)

  • introduce shorthand syntax for table format (#350)

  • parse attributes in link when use-link-attrs attribute is set (#214)

  • support preamble toc-placement (#295)

  • exclude attribute div if quote has no attribution (#309)

  • support attributes passed to API as string or string array (#289)

  • allow safe mode to be set using string, symbol or int in API (#290)

  • make level 0 section titles more prominent in TOC (#369)

Compliance
  • ~ 99.5% compliance with AsciiDoc.py

  • drop line if target of include directive is blank (#376)

  • resolve attribute references in target of include directive (#367)

  • added irc scheme to link detection (#314)

  • toc should honor numbered attribute (#341)

  • added toc2 layout to default stylesheet (#285)

  • consecutive terms in labeled list share same entry (#315)

  • support set:name:value attribute syntax (#228)

  • block title not allowed above document title (#175)

  • assign caption even if no title (#321)

  • horizontal dlist layout in docbook backend (#298)

  • set doctitle attribute (#337)

  • allow any backend to be specified in cli (#320) (@lightguard)

  • support for abstract and partintro (#297)

Bug Fixes
  • fixed file path resolution on Windows (#330)

  • fixed bad variable name that was causing crash, add test for it (#335)

  • set proper encoding on input data (#308)

  • don’t leak doctitle into nested document (#382)

  • handle author(s) defined using attributes (#301)

Improvements
  • added tests for all special sections (#80)

  • added test for attributes defined as string or string array (#291) (@lightguard)

Distribution Packages

0.1.2 (2013-04-25) - @mojavelinux

Performance
  • 28% increase in speed compared to 0.1.1, 32% increase compared to 0.1.0

Enhancements
  • new website at https://asciidoctor.org

  • added a default stylesheet (#76)

  • added viewport meta tag for mobile browsers (#238)

  • set attributes based on safe mode (#244)

  • added admonition name as style class (#265)

  • removed hardcoded CSS, no one likes hardcoded CSS (#165)

  • support multiple authors in document header (#223)

  • include footnotes block in embedded document (#206)

  • allow comma delimiter in include attribute values (#226)

  • support including tagged lines (#226)

  • added line selection to include directive (#226)

  • Asciidoctor#render APIs return Document when document is written to file

Compliance
  • added compatibility file to make AsciiDoc.py behave like Asciidoctor (#257)

  • restore alpha-based xml entities (#211)

  • implement video and audio block macros (#155)

  • implement toc block macro (#269)

  • correctly handle multi-part books (#222)

  • complete masquerade functionality for blocks & paragraphs (#187)

  • support explicit subs on blocks (#220)

  • use code element instead of tt (#260)

  • honor toc2 attribute (#221)

  • implement leveloffset feature (#212)

  • include docinfo files in header when safe mode < SERVER (#116)

  • support email links and mailto inline macros (#213)

  • question must be wrapped in simpara (#231)

  • allow round bracket in link (#218)

Bug Fixes
  • trailing comma shouldn’t be included in link (#280)

  • warn if file in include directive doesn’t exist (#262)

  • negative case for inline ifndef should only affect current line (#241)

  • don’t compact nested documents (#217)

  • nest revision info inside revision element (#236)

Distribution Packages

0.1.1 (2013-02-26) - @erebor

Performance
  • 15% increase in speed compared to 0.1.0

Enhancements
  • migrated repository to asciidoctor organization on GitHub (#77)

  • include document title when header/footer disabled and notitle attribute is unset (#103)

  • honor GitHub-flavored Markdown fenced code blocks (#118)

  • added :doctype and :backend keys to options hash in API (#163)

  • added :to_dir option to the Asciidoctor#render API

  • added option :header_only to stop parsing after reading the header

  • preliminary line number tracking

  • auto-select backend sub-folder containing custom templates

  • rubygem-asciidoctor package now available in Fedora (#92)

Compliance
  • refactor reader, process attribute entries and conditional blocks while parsing (#143)

  • support limited value comparison functionality of ifeval (#83)

  • added support for multiple attributes in ifdef and ifndef directives

  • don’t attempt to embed image with uri reference when data-uri is set (#157)

  • accomodate trailing dot in author name (#156)

  • don’t hardcode language attribute in html backend (#185)

  • removed language from DocBook root node (#188)

  • fixed revinfo line swallowing attribute entry

  • auto-generate caption for listing blocks if listing-caption attribute is set

  • support nested includes

  • support literal and listing paragraphs

  • support em dash shorthand at the end of a line

  • added ftp support to link inline macro

  • added support for the page break block macro

Bug Fixes
  • pass through image with uri reference when data-uri is set (#157)

  • print message for failed arg (#152)

  • normalize whitespace at the end of lines (improved)

  • properly load custom templates and required libraries

Improvements
  • parse document header in distinct parsing step

  • moved hardcoded english captions to attributes

Distribution Packages

0.1.0 (2013-02-04) - @erebor

Enhancements
  • introduced Asciidoctor API (Asciidoctor#load and Asciidoctor#render methods) (#34)

  • added SERVER safe mode level (minimum recommended security for serverside usage) (#93)

  • added the asciidoctor commandline interface (cli)

  • added asciidoctor-safe command, enables safe mode by default

  • added man page for the asciidoctor command

  • use blockquote tag for quote block content (#124)

  • added hardbreaks option to preserve line breaks in paragraph text (#119)

  • :header_footer option defaults to false when using the API, unless rendering to file

  • added idseparator attribute to customized separator used in generated section ids

  • do not number special sections (differs from AsciiDoc.py)

Compliance
  • use callout icons if icons are enabled, unless safe mode is SECURE

  • added support for name=value@ attribute syntax passed via cli (#97)

  • attr refs no longer case sensitive (#109)

  • fixed several cases of incorrect list handling

  • don’t allow links to consume newlines or surrounding angled brackets

  • recognize single quote in author name

  • support horizontal labeled list style

  • added support for the d cell style

  • added support for bibliography anchors

  • added support for special sections (e.g., appendix)

  • added support for index term inline macros

  • added support for footnote and footnoteref inline macros

  • added auto-generated numbered captions for figures, tables and examples

  • added counter inline macros

  • added support for floating (discrete) section titles

Bug Fixes
  • fixed UTF-8 encoding issue by adding magic encoding line to ERB templates (#144)

  • resolved Windows compatibility issues

  • clean CRLF from end of lines (#125)

  • enabled warnings when running tests, fixed warnings (#69)

Improvements
  • renamed iconstype attribute to icontype

Distribution Packages

Older releases (pre-0.0.1)

For information about older releases, refer to the commit history on GitHub.