Releases: typelevel/Laika
Releases · typelevel/Laika
0.9.0
Introduction of the ExtensionBundle API
- New ExtensionBundle APIs allow to bundle extensions into a single object for easier reuse. Supported extension hooks include directives, markup parser extensions, rewrite rules, custom renderers, document type matchers, alternative parsers for stylesheets, templates or configuration headers and default templates per output format. For migrating from 0.8 extension hooks, see #56.
- Reduced number of settings and tasks in the sbt plugin, by using the new ExtensionBundle API for sbt settings. The most common tasks and setting remain unchanged, for users of the lower level extension settings of the plugin see #65 for migration instructions.
- Improved package structure to reduce number of required imports. For simpler use cases a global "organize imports" should suffice for migration, for all other cases see #66.
- The changes listed above fix some of the design issues of the very early releases from 2013/14.
0.8.0
The Speed Release
- Doubles parsing speed for both Markdown and reStructuredText
- Much lower number of parser instance creations on repeated runs
- Performance goals had been achieved through replacing the former
Scala SDK parser combinators with a custom, optimized combinator design:- Fewer dependent types and base parsers in objects instead of traits, making it easier to freely compose parsers
- Create parser error messages lazily, as most of them will never be accessed
- Avoid cost of by-name args in all cases except | combinator
- Other changes in this release:
- Add support for size and align options for the image directive in reStructuredText
- Fixes for all bugs known and reported to this point
- Remove all deprecation warnings for Scala 2.12
0.7.5
Support for sbt 1.0
- Laika's sbt plugin is now an AutoPlugin
- Prefixed all task and setting keys to adhere to recommended naming pattern
(e.g. laikaGenerate) - Adjustments for API changes in sbt 1.0
- Bug fixes in the library
- Drop support for sbt 0.13 and Scala 2.10
The unusual version number reflects the fact that users of the sbt plugin need
to update their build for the changes in the key names, while for users of
the library this release is a drop-in replacement containing only bug fixes.
0.7.0
Redesign of the Document API
- Support for Scala 2.12 (with continued support for 2.11 and 2.10)
- New Document API: use case classes wherever possible,
extract features into pluggable traits and introduce a new Cursor type for tree rewriting - Allow to customize the FopFactory for the PDF renderer (in API and sbt plugin)
- Fix an issue in the laika:site task in the sbt plugin that executed several sub-tasks
twice which could lead to IllegalStateExceptions caused by the resulting race condition - Fixes for the reStructuredText parser (for option lists and IP addresses)
0.6.0
New renderer for PDF output
- Support for rendering PDF documents
- Support for rendering XSL-FO output
- New CSS parser supporting a large subset of standard CSS
- Support styling of PDF documents with CSS
- Support for different templates per output format
- New sbt tasks:
html
,pdf
,xslfo
,prettyPrint
for rendering
a single output format - New sbt task
generate
for rendering multiple formats
(e.g.laika:generate html pdf
) - Integrate PDF output into existing sbt task
laika:site
via
new settingincludePDF
- New directives
pageBreak
,style
andformat
- Changes to the
Render
andTransform
API to allow for the
merging of an entire directory of input files into a single output
file (as required by PDF rendering)
0.5.1
0.5.0
Introducing sbt Plugin
- New sbt plugin, exposing all Laika
features and customization hooks as sbt tasks and settings - New option to merge multiple input directories into a tree structure with a single root,
allowing to keep reusable styles or templates ("themes") separately - New option to use Markdown and reStructuredText markup in the same input tree, including
cross-linking between the two formats - Move to a multi-project build and rename the main artifact from
laika
tolaika-core
- Upgrade to ScalaTest 2.0 and sbt 0.13
- Drop support for Scala 2.9.x
0.4.0
Adding template based site generation and batch processing
- Template-based site generation for HTML output
- Support for tables of contents, autonumbering of documents and sections
and convenient cross-linking between documents for all supported markup
formats - Custom Directives (tags) for templates and text markup
- Document Fragments that can be rendered separately from the main document content
- New API for batch processing for parse, render and full transform operations
- Parallel processing of parsers and renderers
- Completely restructured manual
0.3.0
Improving Markdown and reStructuredText parsers
- Support for most of the standard directives and text roles of the reStructuredText reference
parser (admonitions,figure
,image
,code
,raw
and many more) - Now integrates the official Markdown test suite (any many fixes to make it pass)
- Now integrates a test for transforming the full reStructuredText specification (which
is written in reStructuredText) and many fixes to make it pass - Adds the renderer option
HTML.unformatted
for terse output without indentation or whitespace
(often desirable when writing the rendered document to a database for example) - Adds a new Web Tool to try out Laika online
- General cleanup of parser implementations and alignments between Markdown and reStructuredText
parsers, making both of them much more robust
0.2.0
Introducing reStructuredText
- Support for reStructuredText (full specification)
- Concise and type-safe API for all reStructuredText extensibility options (directives, text roles)
- New document tree nodes for tables, footnotes, citations, definition lists, internal links,
comments, system messages, invalid elements - Render hints for document tree nodes in the form of the new Customizable trait