Releases: asciidoctor/jekyll-asciidoc
v3.0.0
Summary
This release is a major step forward for this plugin. Support for Ruby < 2.3 and Jekyll < 3.0 have been dropped, which means most of the hacks and workarounds have also been cleared out. A code linter (Rubocop) has been set up to enforce consistency in the coding style, and we now have a code coverage report being generated as well (running on a substantially larger test suite). As a result, the code is much clearer, more organized, and easier to understand. With the release, the project will now adhere to semantic versioning.
In terms of features, excerpts are now extracted correctly and get converted to HTML automatically, collections which are not written still get processed (i.e., integrated), the date
page variable is set from the revdate
AsciiDoc attribute even for documents in collections, more control is given over the page layout including being able to define it using front matter defaults, the asciidoc
property is set on all pages generated from AsciiDoc, and site-wide AsciiDoc attributes can be defined under the asciidoc
category instead of (or in addition to) the asciidoctor
category in the site configuration. A number of crashes have also been fixed. And the plugin has been verified to work with newly-released Jekyll 4.
Consult the CHANGELOG to find the full list of changes.
Changelog
- only support Ruby >= 2.3.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)
- 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)
- 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)
Release meta
Released on: 2019-08-30
Released by: @mojavelinux
Release beer: Oeillade Shadow by Grist Brewing Company
Logs: resolved issues | full diff
Credits
A very special thanks to all the awesome supporters of the Asciidoctor Salt campaign who provided critical funding for the development of this release as well as ongoing development of the project.
v2.1.1
A patch release to fix a few bugs in the 2.1 series. It address two cases where an undefined method was being called on an object. It also respects the layout defined in the frontmatter defaults.
Changes
- 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)
Distributions
v2.1.0
A minor feature release that brings the tocify_asciidoc filter for adding a table of contents to your Liquid templates, better handling of attribute values, improved documentation, and better testing on Ruby 1.9.3. This was also the first release that was handled partially by the CI build.
Changes
- 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 - 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
- Set minimum version of Ruby to 1.9.3 in the gemspec
- 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
Distributions
v2.0.1
This is a bug fix release. The main improvement is to prevent hook callbacks from registering each time the site regenerates in watch mode. The gem has also updated to include the gemspec and test suite to accommodate platform packaging.
Changes
- 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
Distributions
v2.0.0
This release is a major rewrite of the plugin. The integration with AsciiDoc is now much deeper. You can expect many more features of AsciiDoc to just work. Of particular note, the Jekyll front matter header is no longer required and the layout is automatically selected based on the page type, so you can use standard AsciiDoc documents. Additionally, path-related implicit attributes are defined, allowing images generated by Asciidoctor Diagram end up in the right location. You'll also find the README for the plugin to be much more informative. Enjoy!
Changes
- 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 if using Jekyll 3 (#59)
- docdir is only set if value of
base_dir
option is:docdir
- setting outdir allows proper integration with Asciidoctor Diagram
- docdir is only set if value of
- Automatically set
imagesoutdir
attribute ifimagesdir
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 default layout 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
(#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; support additional 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 filter
Distributions
v1.1.2
v1.1.1
Changes
- The AsciiDoc document title overrides the title set in the front matter or the title that's automatically generated (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)
v1.0.1
v1.0.0
Initial release.