Asciidoctor PDF: A native PDF converter for AsciiDoc based on Asciidoctor and Prawn, written entirely in Ruby.
MIT License
Bot releases are visible (Hide)
This is a patch release in the 2.3.x release line to backport an improvement that was left out of the previous release.
The /Producer field in the document info is now consistently used to credit Asciidoctor PDF and Prawn, regardless of whether the author is set. The publisher
attribute is now mapped to the /Creator field, a field which is mapped to the author by default. The new producer
attribute has been introduced to override the /Producer field.
producer
attribute to /Producer field in document info to override or default value (#2510)publisher
attribute to /Creator field instead of /Producer field in document info; use author as fallback (#2510)Released on: 2024-06-01
Released by: @mojavelinux
Release beer: From Below by Cerebral Brewing
Logs: resolved issues | source diff | gem diff
A very special thanks to all the awesome supporters of the Asciidoctor OpenCollective campaign, who provide critical funding for the ongoing development of this project.
Published by mojavelinux 5 months ago
This is a patch release in the 2.3.x release line that addresses a few bugs, furthers compatibility with Ruby 3.3, and addresses a few minor annoyances.
The most critical fix in this release is to duplicate the attributes on the table when handling the breakable or unbreakable option so that the option is honored properly. This fix addresses the case when one of these options is used along with the heading-min-height-after: auto
setting in the theme. The rexml dependency has been locked to fix an API breakage that was introduced in the latest version of rexml.
In the area of improvements, support for base64-encoded SVG images references in an SVG has been activated (unlocking new functionality in prawn-svg). If hyphens are enabled on the document, they are not applied to the URL of an autolink.
Released on: 2024-05-31
Released by: @mojavelinux
Release beer: Moist Green Organic by Knotted Root Brewing Company
Logs: resolved issues | source diff | gem diff
A very special thanks to all the awesome supporters of the Asciidoctor OpenCollective campaign, who provide critical funding for the ongoing development of this project.
Published by mojavelinux 7 months ago
Back with another patch release in the 2.3.x line. This release was necessary to lock ttfunk to 1.7.0 since the transitive upgrade added a new requirement for installation which violates semantic versioning. This release also drops links from entries in the TOC so that they appear like all other entries and don't confuse the reader.
Released on: 2024-03-11
Released by: @mojavelinux
Release beer: Star Light by Equilibrium Brewery
Logs: resolved issues | source diff | gem diff
A very special thanks to all the awesome supporters of the Asciidoctor OpenCollective campaign, who provide critical funding for the ongoing development of this project.
Published by mojavelinux 7 months ago
Another week, another round of compatibility and bug fixes. This is a patch release in the 2.3.x release line that furthers the compatibility with Ruby 3.3 and upgrades prawn-svg.
The most critical fix in this release is to remove use of the base64 library since it will no longer being provided as part of the Ruby language starting with Ruby 3.4. When using Ruby 3.3, users would see a warning if this library is used. The functionality has been replaced with a lower-level method on the String object (String#pack), which the base64 library delegates to anyway. The same issue affected prawn-svg, which required upgrading it to the latest version.
To verify these fixes, Ruby 3.3 was added to the CI workflow during this development cycle.
This release also updates the log message when an item in a horizontal dlist is truncated to include the file and line number of the description block. This information was missing because the source location information was not being passed to the table cell.
Released on: 2024-03-08
Released by: @mojavelinux
Release beer: Soft Terra by The Drowned Lands
Logs: resolved issues | source diff | gem diff
A very special thanks to all the awesome supporters of the Asciidoctor OpenCollective campaign, who provide critical funding for the ongoing development of this project.
Published by mojavelinux 8 months ago
Another week, another round of bug fixes. This is a patch release in the 2.3.x release line that fixes inconsistencies between what the documentation says and how the software behaves.
The key fix in this release is to support the toc start-at value for page numbering and running content when the toc is inserted using the toc macro. This release also fixes the page number of index entries in a prepress book when page numbering starts at or after the toc and the toc is inserted using the toc macro.
We discovered that the matcher for an isolated image macro in the content
key of the running content (header or footer) was checking per line instead of across the whole string, which caused the text on other lines to be dropped in some instances. This matcher has been corrected so that all the lines are preserved.
Another case was discovered when the placeholder character for an inline image was triggering a warning about a missing character when using a fallback font.
Since this placeholder is not meant to be rendered, the code has been updated to ensure this character is skipped when analyzing the fonts for fallback font support.
Released on: 2024-02-16
Released by: @mojavelinux
Release beer: Gnoel de Abbey by The Lost Abbey
Logs: resolved issues | source diff | gem diff
A very special thanks to all the awesome supporters of the Asciidoctor OpenCollective campaign, who provide critical funding for the ongoing development of this project.
Published by mojavelinux 9 months ago
This is a patch release in the 2.3.x release line that improves the bundled fonts and fixes an issue we thought we had licked, but came back from the dead.
The key fix of this release is to, once and for all, fix the creeping margin on pages in the index when media=prepress. If the index term fell right on a page boundary, the indentation would get reset at the page transition, which would cause the margin to shift to the left by the same amount. The indentation is now preserved so that this doesn't happen.
This release also adds the most commonly used combining characters to the bundled prose fonts, which can be used to support characters written using the decomposed normalized form (NFD) of Unicode. Most notably, this includes smallcaps letters that have a diacritical mark, such as an accent. (Note that support for the smallcaps transformation on lowercase letters containing a diacritical mark (e.g., é) will be deferred until the next major release for compatibility reasons).
Released on: 2024-02-02
Released by: @mojavelinux
Release beer: Always With Flow by Tripping Animals Brewing Co
Logs: resolved issues | source diff | gem diff
A very special thanks to all the awesome supporters of the Asciidoctor OpenCollective campaign, who provide critical funding for the ongoing development of this project.
Published by mojavelinux 9 months ago
This is a patch release in the 2.3.x release line that fixes a few bugs that have been lingering or discovered since the 2.0.0 release.
The key fix of this release is to define the color space on pages that have running content but no text in the main content area. This fix allows the generated PDF to be accepted by publishing platforms such as KDP and Lulu. This release also upgrades the prawn-svg dependency to 0.33 to add support for the dominant-baseline
attribute in SVG (used by bytefield-svg). The smallcaps
method has been extracted from the smallcaps_pcdata
method in TextTransformer
to make it easier to override. The table node being converted is assigned to the @node
instance variable on the Prawn::Table
instance so it can be accessed from the Prawn::Table#add_header
method or other Prawn::Table extensions.
smallcaps
method from TextTransform#smallcaps_pcdata
to make it easier to override@node
instance variable on table instance to make it easer to access from Prawn::Table extension (#2471)Released on: 2024-01-23
Released by: @mojavelinux
Release beer: Heady Topper by Alchemist Beer
Logs: resolved issues | source diff | gem diff
A very special thanks to all the awesome supporters of the Asciidoctor OpenCollective campaign, who provide critical funding for the ongoing development of this project.
Published by mojavelinux 11 months ago
This is a patch release in the 2.3.x release line that fixes a few bugs that have been lingering or discovered since the 2.0.0 release.
The highlight of this release is that an image taller than the page that's the first child of a block that itself starts at the top of the page no longer causes an empty page to be inserted. Instead, the image is resized to fit the current page. If toclevels
is increased for a given section, the dot leaders will now appear in the TOC for those levels. For those using the built-in (AFM) fonts in PDF, a visible fallback character will now be used as a placeholder when a glyph is missing. And when analyzing glyphs for fallback font support in a TTF font, inherited styles are taken into account. Finally, tests have been decoupled from PWD to simplify packaging.
Released on: 2023-12-04
Released by: @mojavelinux
Release beer: Westbound Select by Westbound & Down
Logs: resolved issues | source diff | gem diff
A very special thanks to all the awesome supporters of the Asciidoctor OpenCollective campaign, who provide critical funding for the ongoing development of this project.
Published by mojavelinux over 1 year ago
This is a patch release in the 2.3.x release line that fixes alignment of image blocks in the multi-column layout and preserves the bottom end placement of the caption on a table when the unbreakable or breakable option is set.
table-caption-end
theme key) when unbreakable
(or breakable
) option is set on table (#2434)Released on: 2023-06-28
Released by: @mojavelinux
Release beer: Pappy Legma by Goat Patch Brewing Company
Logs: resolved issues | source diff | gem diff
A very special thanks to all the awesome supporters of the Asciidoctor OpenCollective campaign, who provide critical funding for the ongoing development of this project.
Published by mojavelinux over 1 year ago
This is a patch release in the 2.3.x release line that fixes a compatibility issue with Ruby 3.2 when using the optimizer, fixes invisible text in the outline in some PDF readers when the heading contains an index term, and fixes the size of inline images in normal table cells when using certain custom fonts.
fit=none
attribute on inline image to prevent image from being scaled down to fit available height (#2428)File.exists?
to File.exist?
when loading RGhost optimizer to patch incompatibility when using Ruby 3.2Released on: 2023-06-24
Released by: @mojavelinux
Release beer: Lost by New Terrain Brewing Company
Logs: resolved issues | source diff | gem diff
A very special thanks to all the awesome supporters of the Asciidoctor OpenCollective campaign, who provide critical funding for the ongoing development of this project.
Published by mojavelinux over 1 year ago
This is a patch release in the 2.3.x release line that fixes a path bug when running on JRuby for Windows and fixes a crash when subs is set on an empty code block.
imagesdir
attribute is absolute and contains non-ASCII charactersReleased on: 2023-04-15
Released by: @mojavelinux
Release beer: The Waldos’ Triple IPA by Lagunitas Brewing Co
Logs: resolved issues | source diff | gem diff
A very special thanks to all the awesome supporters of the Asciidoctor OpenCollective campaign, who provide critical funding for the ongoing development of this project.
Published by mojavelinux over 1 year ago
This is a patch release in the 2.3.x release line that works around a bug in JRuby 9.4.2.0. The converter will correctly recognize uri:classloader: as an absolute path prefix and process it accordingly.
File.absolute_path?
patch so it returns correct response when running on JRubyReleased on: 2023-04-09
Released by: @mojavelinux
Release beer: Thunder Thiolz by Platt Park Brewing
Logs: resolved issues | source diff | gem diff
A very special thanks to all the awesome supporters of the Asciidoctor OpenCollective campaign, who provide critical funding for the ongoing development of this project.
Published by mojavelinux over 1 year ago
This is a patch release in the 2.3.x release line that fixes numerous bugs and regressions that were lingering since the 2.0.0 release.
All footnotes inside AsciiDoc table cells are collected and included in the footnotes list at the bottom of the chapter or article. If a section follows an empty index, that section is no longer dropped. The bottom margin on a table with the breakable
or unbreakable
option, as well as theme setting for the caption on a table with the same properties, are preserved. The start-at
theme value after-toc
for page numbering and running content correctly references the first recto page following the TOC when media=prepress
. A new theme key callout-list-marker-font-color
has been introduced to independently control the color of the conum marker in a callout list (primarily intended to resolve a contrast problem in dark themes).
callout-list-marker-font-color
theme key to control color of conum marker in callout list (#2402)breakable
or unbreakable
option (#2379)breakable
or unbreakable
option (#2379)after-toc
(#2398)Released on: 2023-03-31
Released by: @mojavelinux
Release beer: Knight of the Trender by Grandma's House
Logs: resolved issues | source diff | gem diff
A very special thanks to all the awesome supporters of the Asciidoctor OpenCollective campaign, who provide critical funding for the ongoing development of this project.
Published by mojavelinux almost 2 years ago
This is a patch release in the 2.3.x release line that fixes an incompatiblity with Asciidoctor 2.0.10 (for users of Ubuntu 20.04) and resolves attribute references in the target of an inline image in running content when the value is an image macro.
Released on: 2022-10-28
Released by: @mojavelinux
Release beer: Pumking by Southern Tier Brewing Company
Logs: resolved issues | source diff | gem diff
A very special thanks to all the awesome supporters of the Asciidoctor OpenCollective campaign, who provide critical funding for the ongoing development of this project.
Published by mojavelinux almost 2 years ago
This is a patch release in the 2.3.x release line that addresses a regression in Ghostscript that affected the built-in optimizer. The optimizer will now pass -dNEWPDF=false
to force Ghostscript to use the old PDF interpretter. This release also addresses a crash when the TOC is enabled and a section ends with a hard line break.
-dNEWPDF=false
to Ghostscript when optimizing PDF so it does not break internal links (#2355)Released on: 2022-10-20
Released by: @mojavelinux
Release beer: Warlock by Southern Tier Brewing Co.
Logs: resolved issues | source diff | gem diff
A very special thanks to all the awesome supporters of the Asciidoctor OpenCollective campaign, who provide critical funding for the ongoing development of this project.
Published by mojavelinux about 2 years ago
This is a patch release in the 2.3.x release line that addresses an incomplete fix for an issue in 2.3.1. The fallback value for the base-font-size
is now set before processing the keys, and a fallback value for the base-font-family
key has been set.
base-font-size
theme key before processing keys (#2342)Released on: 2022-09-17
Released by: @mojavelinux
Release beer: Personal Record by Athletic Brewing Co.
Logs: resolved issues | source diff | gem diff
A very special thanks to all the awesome supporters of the Asciidoctor OpenCollective campaign, who provide critical funding for the ongoing development of this project.
Published by mojavelinux about 2 years ago
This is a patch release in the 2.3.x release line that includes backports of bug fixes from the upcoming 3.0.x release line.
This release restores the fallback value for the base-font-size
theme key for cases when a custom theme does not extend another theme. The converter no longer crashes when the smallcaps text transform is applied to a phrase using a role. The part and chapter signifiers are not added if their respective attributes are unset. The heading border is drawn if the heading is advanced to the next page. Text is justified correctly if the first line of the abstract ends with a hard break.
The 3.0.0 release is just around the corner.
base-font-size
when loading theme (#2343)chapter-signifier
is unset (#2328)part-signifier
is unset (#2328)heading-min-height-after
theme key is empty (#2326)heading-min-height-after
theme key is ignored if section is empty or discrete heading is last childReleased on: 2022-09-17
Released by: @mojavelinux
Release beer: Personal Record by Athletic Brewing Co.
Logs: resolved issues | source diff | gem diff
A very special thanks to all the awesome supporters of the Asciidoctor OpenCollective campaign, who provide critical funding for the ongoing development of this project.
Published by mojavelinux about 2 years ago
This is a minor release in the Asciidoctor PDF 2 release line. This release includes several enhancements and bug fixes.
Enhancements. If you set the media to print
or prepress
, and you don't specify a theme, Asciidoctor PDF will now use the built-in default-for-print theme by default. This change makes it easier for users to get print-optimized output by default and raises awareness about the existence and function of this theme. If you want to force a page break, you can now add [%always]
above the page break macro. If you producing a multi-column layout (e.g., page-columns
is > 1), the page break macro will create a new page by default. If you want to start a new column, add the column
role to the page break macro. If you want to place footnotes (aka endnotes) directly below the last block of content, set the footnotes-margin-top
key to 0 (or another fixed value) in your theme. If you use the big
and small
roles, the text will be scaled relative to the font size of the surrounding text, even when used in headings. The converter now recognizes the text alignment roles (e.g., .text-center
) on all styled paragraphs and verse blocks.
Bug fixes. Some users prefer to add additional markup to code blocks to emphasize tokens. When the source highlighter is enabled, Asciidoctor PDF does not support this extra markup. However, rather than printing it verbatim, the converter will now strip it away to maintain the integrity of the code in the code block. If a footnote label falls at the end of a line, it will no longer be split or widowed. Instead, it will stay together and with the preceding adjacent text, pulling that the last word to the next line if necessary. If the prose-margin-inner
and/or prose-text-indent-inner
theme keys are set, these are now honored on inner paragraphs in the abstract. If the prose-text-indent
key is set in the theme, it will only be applied to elements that have a left-oriented alignment (left
or justify
). The computed height of headings and captions for orphan prevention now takes into account all text formatting, making the behavior more accurate.
During this release cycle, numerous improvements were made to the documentation as well.
footnotes-margin-top
theme key is 0 (#2291)always
option (e.g., [%always]
) (#2300)column
role is specified on page break macro (#2293)print
or prepress
(#2306)prose-margin-inner
and prose-text-indent-inner
) for inner paragraphs in abstractspread
role on tableReleased on: 2022-08-16
Released by: @mojavelinux
Release beer: Late To The Kettle IPA by Athletic Brewing Co.
Logs: resolved issues | source diff | gem diff
A very special thanks to all the awesome supporters of the Asciidoctor OpenCollective campaign, who provide critical funding for the ongoing development of this project.
Published by mojavelinux about 2 years ago
This is a minor release in the Asciidoctor PDF 2 release line. This release builds on numerous enhancements that were introduced in Asciidoctor PDF 2.
It's now possible to specify a background image per layout by using the {page-layout}
attribute reference in the path. You can configure the page margins for rotated pages separately using the page-margin-rotated
theme key or pdf-page-margin-rotated
document attribute. Inside the theme, you can reference the resolved value of the imagesdir
attribute from the document using the {docimagesdir}
attribute reference. Instead of having to add the breakable
option to all headings to get orphan detection, you can enable it globally in the theme by setting the heading-min-height-after
key to the value auto
. The theme now accepts a relative font size (e.g., 0.75em) almost anywhere a font size can be set. The font properties of the mark for ordered lists can now be controlled using the olist-marker
category. The asciidoctor-pdf
CLI now accepts two new options. You can pass --sourcemap
to enable the :sourcemap
option on the processor for tracking warnings down to the line number. You can use the --theme
option as an alternative to -a pdf-theme=
to save some typing.
During the development of this release, numerous bugs were founds and fixed. And the documentation conntinues to be improved.
+{page-layout}+
attribute reference in path (#1739)page-margin-rotated
theme key or pdf-page-margin-rotated
document attribute (#1719)heading-min-height-after
to auto
in theme (#2268)docimagesdir
attribute when attribute substitutions are applied to value from theme (#2278)start-at
value is 0 (#2252)title-page
attribute is set and value of toc-break-after
theme key is auto
(#1768)--theme
option to CLI as shorthand for -a pdf-theme
(#2250)--sourcemap
option to CLI to enable :sourcemap
option on processor (#2265)olist-marker
category (#2279)Document#attr_unspecified?
method to simplify check for an attribute which has not been set or unsetimagesdir
attribute to value of themesdir
when resolving images from themetop
keys in title-page
theme category to accept a fixed value (e.g., 1in
) (#2269)Released on: 2022-07-22
Released by: @mojavelinux
Release beer: Superfood Swell by Athletic Brewing Company
Logs: resolved issues | full diff
A very special thanks to all the awesome supporters of the Asciidoctor OpenCollective campaign, who provide critical funding for the ongoing development of this project.
Published by mojavelinux about 2 years ago
This is a patch release in the 2.1.x release line that includes a backport of a bug fix from the 2.2.x release line.
If the font size of a codespan (the codespan
key in the theme) is set to a relative value such as 0.9em, the converter will not crash whenn processing a monospace table cell. Asciidoctor 2.2.x will add even broader support for using relative font sizes in the theme.
codespan
key in theme is relative (#2281)Released on: 2022-07-19
Released by: @mojavelinux
Release beer: Trichotomous by 4 Noses Brewing Company
Logs: resolved issues | full diff
A very special thanks to all the awesome supporters of the Asciidoctor OpenCollective campaign, who provide critical funding for the ongoing development of this project.