= {project-name} Changelog
:project-name: Jekyll AsciiDoc Plugin
:url-repo: https://github.com/asciidoctor/jekyll-asciidoc

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 {url-repo}/commits/master[commit history] on GitHub.

== 3.0.1 (2023-11-06) - @mojavelinux

* clear `:base_dir` option if value is `:docdir` and paths with docdir information is not available (such as to `asciidocify` filter) (#270)
* prepend baseurl to value of imagesdir if imagesdir value is root-relative (#177)

=== Details

{url-repo}/releases/tag/v3.0.1[git tag] | {url-repo}/compare/v3.0.0\...v3.0.1[full diff]

== 3.0.0 (2019-08-31) - @mojavelinux

_No changes since previous release._

== 3.0.0.beta.2 (2019-06-03) - @mojavelinux

* allow site-wide AsciiDoc attributes to also be defined on `asciidoc` key in site configuration (#126)
* set date page variable from revdate for any document in a collection (posts or otherwise) (#202)
* allow non-ASCII word character to be used in name of attribute reference in config file
* use File.write instead of IO.write (as IO.write has extra magic we don't need)
* auto-generate excerpts for posts and documents written in AsciiDoc (#200)

== 3.0.0.beta.1 (2018-12-29) - @mojavelinux

* only support Ruby >= 2.2.0 and Jekyll >= 3.0.0
* update tests to only run against supported versions
* load processor eagerly (at end of plugin initialization)
* don't crash if document body is empty (#179)
* process AsciiDoc header if page has only an AsciiDoc header but no body
* honor layout defined in frontmatter defaults (#187)
* allow page layout to be soft set in site config (#193)
* set asciidoc property to true on all AsciiDoc pages (#189)
* set asciidoc property to true on any (AsciiDoc) page enriched by this plugin (i.e., page.asciidoc) (#189)
* don't call nil_or_empty? outside of an Asciidoctor context (#142)
* don't delete category and tag; sync w/ first entry in array of matching property (#160)
* don't coerce a falsy value of page-layout defined in _config.yml to nil
* integrate collections that are not written (output flag is set to false) (#161)
* document how to enable STEM support (#163)
* document that a liquid tag that includes HTML must be enclosed in a passthrough block (#180)
* document that page attributes must be defined in the document header (#172)
* document both the plugins and gems config keys and when to use one vs the other (#159)
* document how to disable publishing for a page
* document how to make a draft post
* recommend installing gems into project and using a .ruby-version file
* pass standalone option through data instead of prepending to content
* set up code coverage reports (#196)
* set up code linter (Rubocop) (#201)

== 2.1.1 (2018-11-08) - @mojavelinux

* honor layout defined in frontmatter defaults (#187)
* don't call nil_or_empty? outside of an Asciidoctor context (#142)
* handle case when document body is empty (#179)

== 2.1.0 (2017-05-21) - @mojavelinux

* Add `tocify_asciidoc` Liquid filter for generating a table of contents from the parsed AsciiDoc document (Jekyll 3+ only) (#37)
* Remove trailing `@` when resolving attribute reference in value of attribute defined in config
* Set minimum version of Ruby to 1.9.3 in the gemspec
* Prefixing attribute defined in config with minus removes previously defined (e.g., built-in) attribute (#123)
* Convert attribute values in config as follows: true becomes empty string; false becomes nil, number becomes string (#127)
* Merge category page variable into categories variable and tag page variable into tags variable (#149)
* Assign document ID to page variable named docid (#146)
* Enable CI for Windows platform by configuring job on AppVeyor
* Catch SyntaxError when using Psych YAML parser with Ruby 1.9.3
* Document that the name of page variable created from a page attribute is automatically lowercased
* Parse the value of the revdate attribute using `Jekyll::Utils.parse_date`
* Document how to assign a specific time to a post
* Document how to make site-wide AsciiDoc attributes accessible to Liquid templates (#137)
* Fix crash when converting an auto-extracted excerpt when base_dir option is set to :docdir
* Add additional documentation and make other minor improvements to the README

== 2.0.1 (2016-07-06) - @mojavelinux

* Align localtime and localdate attributes with site.time and site.timezone (#117)
* Don't register hook callbacks again when regenerating site; use static methods for hook callbacks (#121)
* Bundle CHANGELOG.adoc and test suite in gem
* Minor improvements to README

== 2.0.0 (2016-07-02) - @mojavelinux

* Split source into multiple files; move all classes under the `Jekyll::AsciiDoc` module
* Avoid redundant initialization caused by the jekyll-watch plugin
* Set docdir, docfile, docname, outfile, outdir, and outpath attributes for each file (Jekyll 3+ only) (#59)
  - docdir is only set if value of `base_dir` option is `:docdir`
  - setting outdir allows proper integration with Asciidoctor Diagram
* Automatically set `imagesoutdir` attribute if `imagesdir` attribute is relative to root
* Pass site information (root, source, destination, baseurl and url) through as AsciiDoc attributes
* Automatically generate stylesheet for Pygments (#30)
* Change default layout to match collection label (#104)
  - page for pages, post for posts, collection label for all others
  - use layout named default as fallback
* Resolve attribute references in attribute values defined in config (#103)
* Apply AsciiDoc header integration to documents in all collections (#93)
* Document how to create and enable templates to customize the HTML that Asciidoctor generates (#73)
* Allow `base_dir` option to track document directory by setting the value to `:docdir` (Jekyll 3 only) (#80)
* Add a comprehensive test suite (#77)
* Allow site-wide Asciidoctor attributes to be specified as a Hash; convert to Hash if Array is used (#87)
* Interpret page attribute values as YAML data
* Use Jekyll.logger to write log messages (#85)
* Add topic to all log messages
* Restructure configuration keys so all general settings are under the `asciidoc` key (#82)
* Don't enable `hardbreaks` attribute by default (#69)
* Bump minimum version of Jekyll to 2.3.0 and document requirement in README (#76)
* Allow layout to be disabled to create standalone document; add and document additional option values for layout (#63)
* Make front matter header optional (#57)
* Apply site-wide Asciidoctor configuration (options/attributes) when loading document header (#67)
* Disable liquid processor on AsciiDoc files by default; enable using liquid page variable (#65)
* Resolve empty page attribute value as empty string (#70)
* Soft assign linkattrs attribute
* Allow plugin to work in safe mode (#112)
* Major restructure and rewrite of README
* Document how to use plugin with GitLab Pages (#47)
* Document `asciidocify` Liquid filter

{url-repo}/issues?q=milestone%3Av2.0.0[issues resolved] |
{url-repo}/releases/tag/v2.0.0[git tag]

== 1.1.2 (2016-05-10) - @mkobit

* Apply fix for documents that did not contain at least one attribute beginning with `page-` (#60)

{url-repo}/issues?q=milestone%3Av1.1.2[issues resolved] |
{url-repo}/releases/tag/v1.1.2[git tag]

== 1.1.1 (2016-05-07) - @mkobit

* The AsciiDoc document title overrides the title set in the front matter or the auto-generated title (in the case of a post) (#48)
* The AsciiDoc page-related attributes override the matching entries in the page data (i.e., front matter)
* The value of page-related attributes are treated as YAML values (automatic type coercion)
* `page-` is the default prefix for page-related AsciiDoc attributes (e.g., `page-layout`) (#51)
* The key to configure the page attribute prefix is `asciidoc_page_attribute_prefix`; the value should not contain the trailing hyphen (#51)
* The date of a post can be set using the `revdate` AsciiDoc attribute (#53)
* Only configure the Asciidoctor options once (previously it was being called twice in serve mode)
* Set `env` attribute to `site` instead of `jekyll` (#55)

{url-repo}/issues?q=milestone%3Av1.1.1[issues resolved] |
{url-repo}/releases/tag/v1.1.1[git tag]

== 1.0.1 (2016-03-19) - @mkobit

Enables use with Jekyll 3.
It is still compatible with Jekyll 2.

* Jekyll 3 support (#36, #33)
* Documentation and onboarding improvements (#25, #24)
* Improvements to release process (#28)

{url-repo}/issues?q=milestone%3Av1.0.1[issues resolved] |
{url-repo}/releases/tag/v1.0.1[git tag]

== 1.0.0 (2015-01-04) - @paulrayner

Initial release.

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