Laika v0.15.0 Release Notes
Release Date: 2020-05-29 // almost 4 years ago-
New Navigation Features, Improved Error Handling & Rewritten, Expanded Manual
- โจ Enhanced Navigation Features
- Internal references are now fully validated and dead links cause the transformation to fail by default.
- Introduce global link definitions that allow to avoid repetition with centralized declarations of internal
or external link targets. - Introduce new
@:navigationTree
directive that allows to combine auto-generated navigation trees
๐ with explicit manual entries. Deprecates the old@:toc
directive. - Add new
@:breadcrumb
directive that produces a list of links from the root to the current document. - Introduce pluggable slug builder in
ExtensionBundle
to allow customizations of how a section headline
is translated to an id. - Introduce "Link Directives", a new directive type that allows to define shortcuts for commonly used
URL patterns, (e.g.@:rfc(2022)
). - Add a new
@:api
link directive as a shortcut for linking to API documentation. - Change default names for title documents to
README.<suffix>
for the input for better GitHub integration
๐ andindex.<suffix>
for the output for better site navigation.
๐ง Defaults can now be overridden in configuration. - Add methods for navigating siblings in Cursor API for document trees.
- Laika now always picks the first header as a title, even when subsequent headers are on the same level.
- Improved precision in detecting ambiguous references.
- Internal overhaul/rewrite of the link resolver algorithm which was still the original design from 2013
and degraded in clarity over several feature additions.
- ๐ง Configuration
- Introduce programmatic ways to declare all global configuration for both, sbt plugin and library API,
๐ง which now allows to completely avoid configuration files unless per-directory configuration is required. - Change HOCON configuration keys to always be in a namespace (e.g.
laika.title
orcursor.currentDocument
),
to reduce the likeliness of name clashes with user-defined variables.
- Introduce programmatic ways to declare all global configuration for both, sbt plugin and library API,
- Error Handling
- The presence of invalid nodes in the document AST before rendering now always triggers an abortion
of the transformation with all messages from invalid nodes listed in the error result. - The new default behaviour can be overridden in configuration to switch to "visual debugging" where
invalid nodes are rendered in their original position in the result.
- The presence of invalid nodes in the document AST before rendering now always triggers an abortion
- ๐ Changes in the Document AST related to navigation enhancements
- Merge the functionality of
CrossLink
intoInternalLink
- Merge
ExternalLink
andInternalLink
toSpanLink
- Split
Temporary
marker trait intoUnresolved
andHidden
- Merge the functionality of
- Manual
- Complete rewrite of the manual which still had its initial structure from 2012.
- Better separation of tutorial-style from reference-style sections.
- New chapters about Laika's parser combinators, HOCON API, design goals, configuration options,
๐ navigation features, writing parser extensions and adding new syntax highlighters.
- ๐ Bugfix
- The combination of the
laikaSite
task with thelaikaIncludeEPUB
setting led to a zero-byte result.
- The combination of the
- โจ Enhanced Navigation Features