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 a detailed view of what has changed, refer to the commit history on GitHub.
- Bug Fixes
-
-
Fix infinite loop when callout list with obsolete syntax is found inside list item (#3472)
-
Initialize backend traits for converter (if not previously initialized) using assigned basebackend; mimics Asciidoctor < 2 behavior (#3341)
-
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
-
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 whitespace 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)
-
- Compliance
-
-
Add support for muted option to self-hosted video (#3408)
-
Move style tag for convert-time syntax highlighters (coderay, rouge, pygments) into head (#3462)
-
- Improvements
-
-
Preserve guard around XML-style callout when icons are not enabled (#3319)
-
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.6
-
- Build / Infrastructure
-
-
Run test suite on TruffleRuby nightly (@mogztter, @erebor)
-
Trigger upstream builds for AsciidoctorJ on Github Actions (@robertpanzer)
-
- 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 toimage
, enable image icons, but don’t use it as the value of theicontype
attribute (#3308)
-
- 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)
-
- 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)
-
- 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).
- Bug Fixes
-
-
assume implicit AsciiDoc extension on interdoc 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).
- 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).
- 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).
- 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).
- 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).
- 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).
- 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 interdocument 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)
-
propogate 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)
-
- 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 Python 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).
- 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 of1>
) (#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)
-
- 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)
-
- 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
-
-
allow attribute names to contain any word character defined by Unicode (#2376, PR #2393)
-
do not recognize attribute entry line if name contains a colon (PR #2377)
-
route all processor messages through a logger instead of using Kernel#warn (#44, PR #2660)
-
add MemoryLogger for capturing messages sent to logger into memory (#44, PR #2660)
-
add NullLogger to prevent messages from being logged (#44, PR #2660)
-
log message containing source location / cursor as an object; provides more context (#44, PR #2660)
-
pass cursor for include file to
:include_location
key in message context (PR #2729) -
add
:logger
option to API to set logger instance (#44, PR #2660) -
add
--failure-level=LEVEL
option to CLI to force non-zero exit code if specified logging level is reached (#2003, PR #2674) -
parse text of xref macro as attributes if attribute signature found (equal sign) (#2381)
-
allow xrefstyle to be specified per xref by assigning the xrefstyle attribute on the xref macro (#2365)
-
recognize target with .adoc extension in xref macro as an interdocument xref
-
resolve nested includes in remote documents relative to URI (#2506, PR #2511)
-
allow
relfilesuffix
attribute to control file extension used for interdoc xrefs (#1273) -
support
!name@
(preferred),!name=@
,name!@
, andname!=@
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 totopbot
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
-
when linkattrs is set, only parse attributes in link macro if equals is present
-
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 interdoc 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
- 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
- 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
- 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
- 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; add 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
- 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
- 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
andAbstractNode#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
- 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 toC++
(#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
- 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
- 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
- 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 compatibility file (#441)
-
added level-5 heading to AsciiDoc compatibility file (#388)
-
added new XML-based callouts to AsciiDoc compatibility file
-
added absolute and uri image target matching to AsciiDoc compatibility file
-
added float attribute on inline image macro to AsciiDoc compatibility file
-
removed linkcss in AsciiDoc compatibility file
-
fixed fenced code entry in 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
- 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
-
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
- 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 AsciiDoc compatibility file to make AsciiDoc 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
- 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
- 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)
-
- 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
For information about older releases, refer to the commit history on GitHub.