= {project-name} Changelog
:project-name: Asciidoctor EPUB3
:uri-repo: https://github.com/asciidoctor/asciidoctor-epub3

This document provides a high-level view of the changes to the {project-name} by release.
For a detailed view of what has changed, refer to the {uri-repo}/commits/master[commit history] on GitHub.

== 2.2.0 (2025-05-11) - @slonopotamus

* fix crash when running in environments with non-Unicode locale (#475)
* update Font Awesome Solid to 6.6.0
* add support for https://docs.asciidoctor.org/asciidoctor/latest/convert/templates/[Converter Templates] (#487)
* teach Calibre that cover page is in fact a cover page, so cover is not duplicated when Calibre converts our EPUBs to PDF
* bump the oldest supported Ruby to 2.7
* fix Ruby 3.4 compatibility
* fix captions in example blocks (#497)
* fix TOC being off-by-one when `:toclevels:` is set (#492)
* stop using H3 for list headings (#491)

== 2.1.3 (2024-05-12) - @slonopotamus

* fix crash when section title contains inline anchor (#472)
* fix crash on an SVG image inside table cell (#470)
* lock gepub to 1.0.15 to workaround file descriptor leak (#474)

== 2.1.0 (2024-02-04) - @slonopotamus

* drop MOBI support
* add support for blocks in callouts (#463)
* stop packaging samples into gem (#462)

== 2.0.1 (2024-01-13) - @slonopotamus

* restore styling of `<strong>` and `<em>` (#461)

== 2.0.0 (2024-01-12) - @slonopotamus

* fix handling of chapters with Unicode titles for Mobi (#417)
* add XML declarations to XHTML files (#424 by @abbrev)
* bump the oldest supported Ruby to 2.6
* bump the oldest supported Asciidoctor to 2.0
* escape double quotes in alt text (#443)
* refactor `btn` styling to be more customizable (#450)
* fix duplicate HTML IDs in case the same footnote is used multiple times (#447)
* add initial support for `:pygments-linenums-mode: inline` (#451)
* line numbers are no longer selected when copying text from code snippets (#422)
* compress CSS to reduce its size
* preserve roles of admonition blocks (#420)
* use prose font for verse blocks (#394)
* add support for absolute cover image path (#419)
* add support for floating blocks (#405)
* fix `<hN>` tags for chapters (#388)

== 1.5.1 (2021-04-29) - @slonopotamus

* update Font Awesome Solid to 5.15.1
* use CSS for image size scaling instead of `width` attribute (#382)
* use pygments.rb 2.0.0 in CI
* add support for `:back-cover-image:` document attribute (#396)
* reenable Kindlegen support (#363)
* drop support for Ruby 2.3

== 1.5.0.alpha.19 (2020-10-21) - @slonopotamus

* add title and id support for literal blocks (#357)
* fix quotes not being properly escaped in section titles (#358)
* fix crash when encountering unsupported Asciidoctor node (#360)
* add support for 100%-wide table (#356)
* do not add multiple entries for same media files in book manifest (#370)
* do not add bogus entries to manifest when `:data-uri:` attribute is set (#371)
* add id support for listing blocks (#372)
* stop using deprecated `epub:type` for admonitions (#373)
* fix `epub:type` attributes for special sections (#374)
* fix font resize not working in iBooks (#368)
* fix visited link color in iBooks night mode (#366)

== 1.5.0.alpha.18 (2020-07-27) - @slonopotamus

* remove <b> from chapter subtitle (#123)
* improve tables support: cell content alignment, column width (#350)
* fix chapter titles to actually be chapter titles instead of document title (#343)
* store syntax highlighter CSS in a separate file (#339)
* initial landmarks support: appendix, bibliography, bodymatter, cover, frontmatter, glossary, index, preface, toc (#174)
* add support for in-document table of contents via `:toc:` document attribute (#174)
* add support for MathML (#10)
* rescale color palette to use darker shades of gray (#338)
* gracefully handle invalid `:front-cover-image:` value (#353)

== 1.5.0.alpha.17 (2020-05-25) - @slonopotamus

* support remote URLs for audio/video/image (#333, #334)

== 1.5.0.alpha.16 (2020-04-26) - @slonopotamus

* add basic audio and video support (#9)
* add support for `[horizontal]` definition list (#165)
* add proper handling of `:data-uri:` document attribute (#324)
* add support for customizable document splitting into chapters via `epub-chapter-level` attribute (#327)
* avoid outputting 'true' for unsupported blocks (#332)

== 1.5.0.alpha.15 (2020-03-11) - @slonopotamus

* support section numbering and captions (#20)
* fix `\<<anchor,link text>>` to show link text (#317)
* add xref ids to paragraphs (#317)
* support syntax highlighting with CodeRay and Rouge (#262)
* pygments.rb is no longer auto-activated
* add series metadata (#307)
* fix Sony Reader crash (#152)

== 1.5.0.alpha.14 (2020-02-29) - @slonopotamus

* support conversion of article documents to a single-chapter file
* stop requiring specific include file scheme (#47)
* support special chapters like bibliography (#205)
* `basedir` now points to main document directory when processing chapter files (#190)
* fix image and listing numbers being reset in each chapter (#178)
* fix xref resolving between sub-includes of chapter files (#166)
* add support for contentless include files (#151)
* drop nonstandard `\<<chapter#>>` xref syntax and instead support vanilla `\<<anchor>>` or `\<<file#anchor>>` syntax (#136)
* properly include bibliography generated by asciidoctor-bibtex (#206)
* require Asciidoctor 1.5.6+
* add support for book preamble (#303)
* add basic support for multi-part books (#304)
* do not include current date if `:reproducible:` attribute is set (#203)
* respect `SOURCE_DATE_EPOCH` environment variable for reproducible builds
* fix invalid markup produced for tables with footer (#295)
* add support for image width/height attributes (#183)
* log KindleGen warnings with WARNING log level (#291)
* convert stem blocks to `<code>$stem_text</code>` (#10)
* use imagedir from an image's context during packaging (#282)
* fix images in tables not included in epub archive (#169)
* search for `front-matter.html` in document dir instead of CWD (#300)
* fix inline images not being included in epub archive (#30)
* add support for Font Awesome Solid 5.12.0 (#155)
* fix inline anchors missing their ids (#201)
* support multiple front-matter files via `epub3-frontmatterdir` attribute
* add support for multiple authors in book metadata

== 1.5.0.alpha.13 (2020-02-04) - @slonopotamus

* remove kindlegen and epubcheck-ruby from runtime dependencies (#288)

== 1.5.0.alpha.12 (2020-02-02) - @slonopotamus

* make kindlegen a runtime dependency so it installs automatically during `gem install asciidoctor-epub3` (#270)
* make `KINDLEGEN` env var work again (#269)
* stop adding default front cover image (#180)
* enable Pygments on non-Windows JRuby platforms (#264)
* provide a human-readable error message when we fail to find KindleGen (#268)
* try to use KindleGen/EPUBCheck binary from `$PATH` (#276)
* add `ebook-kindlegen-path`/`ebook-epubcheck-path` attributes to override KindleGen/EPUBCheck executable location (#276)

== 1.5.0.alpha.11 (2020-01-26) - @slonopotamus

* drop unused dependencies: thread_safe, concurrent-ruby (#234)
* add support for Unicode characters in chapter IDs (#217)
* fix sample-book to be a valid book (#196)
* don't insert quotation marks around quotes (#129)
* require at least Asciidoctor 1.5.3 (#245)
* remove Namo Reader font-icon quirk that produced invalid markup (#192)
* fix the (in)famous `undefined method `to_ios'` when given a document that doesn't follow asciidoctor-epub3 rules (#7)
* route messages through the logger (#176)
* update EPUBCheck to 4.2.2.0 (#240)
* handle invalid `revdate` gracefully (#14)
* do not post-process EPUBCHECK env var, but use it as-is (#258)
* disable Pygments on JRuby to prevent hanging (#253)
* fix ENOENT error when trying to run EPUBCheck on JRuby on Windows (#256)
* fix ENOENT error when running kindlegen on JRuby on Windows (#154)
* set up CI for JRuby on Windows (#254)

== 1.5.0.alpha.10 (2020-01-20) - @slonopotamus

* fix deep xrefs between chapters when using Asciidoctor 2 (#210)
* switch from epubcheck to epubcheck-ruby (#224)
* set up a test suite (#11)
* set up rubocop to enforce a consistent code style (#223)
* use GitHub Actions for CI and release process (#218)
* fix JS causing malformed XML that prevented footnotes from being displayed in Calibre (#207)
* fix installing on Windows (#213, #216)
* upgrade pygments.rb to 1.2.1 (#216)
* gepub dependency is no longer locked to 1.0.2 and will use latest 1.0.x version
* fix `-a ebook-validate` not working on Windows (#232)
* fix crash when inline pass macro `m` contains an icon (#375)

== 1.5.0.alpha.9 (2019-04-04) - @mojavelinux

* allow converter to be used with Asciidoctor 2 (#185)
* upgrade gepub (and, indirectly, nokogiri) (#177)
* add support for start attribute on ordered list
* don't add end mark to chapter when publication-type is book (#163)
* drop unsupported versions of Ruby from CI matrix

== 1.5.0.alpha.8 (2018-02-20) - @mojavelinux

* include inline images in EPUB3 archive (#5)
* allow chapter to begin with level-1 section title by adding support for negative leveloffset (#107)
* don't transform the chapter title to uppercase (rely on CSS only) (#97)
* set correct mimetype for TTF files (#120)
* implement support for the custom xrefstyle for references within a chapter (#132)
* show correct path of front cover image and the current document when missing (#124)
* retain ID of block image (#141)
* retain ID of example block (#143)
* retain ID of admonition block (#146)
* transfer role specified on block image to output (#145)
* handle nil response from pygments.rb (#156)
* invert the colors for the chapter title (use black on white) (#96)
* darken font on Kindle Paperwhite devices (#67)

== 1.5.0.alpha.7 (2017-04-18) - @mojavelinux

* generate TOC levels in navigation document based on toclevels attribute (#90)
* automatically resolve title of reference between documents (#87)
* fix xref between chapter files (#27)
* don't include byline in chapter header if the value of the publication-type attribute is book (#86)
* don't include avatars if value of publication-type attribute is book (#53)
* make a stronger statement in the README about the dangers of the “Send to Kindle” tool
* add ebook-compress flag to enable huffdic compression in kindlegen
* implement embedded to handle AsciiDoc table cell content (#69)
* go into more depth about how to structure the document in README (#45)
* explain how to adjust section level of chapters if they use level-2 headings
* don't add content image to archive more than once (#76)
* warn when xref cannot be resolved and text is provided (#103)
* built-in avatar location should respect imagesdir (#2)
* change admonition icons (#72) (@PrimaryFeather)
* fix broken refs in bibliography (#19)
* remove text justification hack (#92)
* reset @page for CSS3-capable readers
* detect Calibre, set class attribute on body to calibre-desktop, add page margins
* force preformatted text to wrap in Gitden
* add svg property to front matter only if reference to SVG is detected
* switch from word-wrap to standard overflow-wrap property in stylesheet
* loosen letter spacing in quote attribute context
* adjust font size and margins on Gitden; force margins to be set
* document in README that using vw units causes Aldiko to crash
* drop trailing semi-colon in value of inline style attributes
* use standard format (from core) for warning and error messages
* update terminology in README; use ebook instead of e-book; refer to application as ereader
* allow front-cover-image to be specified using block image macro (#3)
* clean auto-generated file names for chapters (#46)
* register chapter ID in references
* only wrap open block content in div if id or role is defined (@rvolz)
* link to EPUB 3.1 spec from README
* set ebook-format-kf8 attribute when ebook-format is specified as mobi
* document the front-cover-image attribute properly
* update adb-push-book script to honor file extension if specified
* document limitations of applying page-break-* property on Kindle
* document that Asciidoctor is added as creator if creator attribute is not specified (#68)
* group optional gems in the :optional group; remove from gemspec
* upgrade kindlegen gem to 3.0.3
* upgrade Pygments to 1.1.1 and allow JRuby to install it
* document that Pygments bw style is used by default
* honor explicit table width even when autowidth option is set
* use method_defined? instead of respond_to? to check if method is already defined
* fix README typo, strong tag misspelled (@neontapir)
* fix name of bundler gem; add NOKOGIRI_USE_SYSTEM_LIBRARIES to install command
* state in README that the spine document must only have include directives as content

== 1.5.0.alpha.6 (2016-01-05) - @mojavelinux

* disable text-rendering: optimizeLegibility on Kindle devices (#58)
* proxy CSS in KF8 format to work around KDP removing font-related CSS rules
* don't append source when generating mobi file
* disable -webkit-hyphens to prevent Kindle for Mac from crashing (#26)
* don't explicitly enable hyphenation
* disable hyphens in preformatted text
* don't fail if source block is empty
* hide style element in body from Aldiko
* enable Original (Publisher) font option in iBooks client
* preserve heading & monospaced fonts in Kindle Paperwhite/Voyage
* force left justification in listings (fix for Namo)
* fix documentation regarding uuid attribute (@chkal)
* add note that currently images must be placed in a directory called images (@chkal)
* fix file type of avatar image in docs (@chkal)
* document how to install the pre-release gem (#38)
* use built-in font names for mobi7 (#56)
* document the epub3-stylesdir attribute
* prevent ellipsis from being used in inline code
* don't include scoped icon CSS in KF8 format
* remove link color hack for Gitden since its already covered
* override heading and monospace fonts for non-Kindle epub3 readers
* wrap simple dd content in span to allow font to be controlled in iBooks
* enforce use of monospace font for preformatted elements
* upgrade kindlegen
* don't allow UI button to wrap
* remove amzn-mobi from media query in CSS3-only file
* use CSS property word-wrap instead of word-break
* remove charset declaration from CSS
* switch samples to modern AsciiDoc syntax

{uri-repo}/issues?q=milestone%3Av1.5.0.alpha.6[issues resolved] |
{uri-repo}/releases/tag/v1.5.0.alpha.6[git tag]

== 1.5.0.alpha.5 (2015-11-01) - @mojavelinux

* implement -o flag (output file) (#31) (@chloerei)
* implement the converter method for floating_title (#36)
* don't print kindlegen output if -q flag is used (#34)
* CLI now identifies as asciidoctor-epub3 (#32)

{uri-repo}/issues?q=milestone%3Av1.5.0.alpha.5[issues resolved] |
{uri-repo}/releases/tag/v1.5.0.alpha.5[git tag]

== 1.5.0.alpha.4 (2014-11-28) - @mojavelinux

* set ebook-format-epub3 attribute (#16)
* add box drawing symbols to M+ 1mn font
* switch version to 1.5.0.x to align with core

{uri-repo}/issues?q=milestone%3Av1.5.0.alpha.4[issues resolved] |
{uri-repo}/releases/tag/v1.5.0.alpha.4[git tag]

== 1.0.0.alpha.3 (2014-08-17) - @mojavelinux

* don't attempt to chdir to DATA_DIR; use full path; for compatibility with AsciidoctorJ
* fix BOM regexp in JRuby (again)
* switch sample png avatars to jpg
* don't install pygments.rb on JRuby

{uri-repo}/releases/tag/v1.0.0.alpha.4[git tag]

== 1.0.0.alpha.2 (2014-08-15) - @mojavelinux

* upgrade to Asciidoctor 1.5.0
* use new functionality of doctitle method for splitting up doctitle
* don't put units on line-height in stylesheet
* use regexp to match the BOM character (used to fix text justification) in JRuby

{uri-repo}/releases/tag/v1.0.0.alpha.2[git tag]

== 1.0.0.alpha.1 (2014-07-29) - @mojavelinux

* initial pre-release

{uri-repo}/issues?q=milestone%3Av1.0.0.alpha.1[issues resolved] |
{uri-repo}/releases/tag/v1.0.0.alpha.1[git tag]
