Toolkit for transforming lightweight text markup and template based site and e-book generation.
The latest release is version 0.16.1.
It is published to Maven Central for Scala 2.13, 2.12 and Scala.js 1.0.
The sbt plugin is published to the sbt plugin repository for sbt 1.x.
The last release supporting Scala 2.11 had been 0.10.0, the last release for Scala 2.10 and sbt 0.13 was 0.7.0.
Open Source under the Apache 2.0 License.
- Integrated plugin for sbt 1.x, to run Laika as part of your build or CI pipeline.
- Purely functional library API for Scala 2.13 and 2.12 and Scala.js 1.0, with full referential transparency, no exceptions and no runtime reflection.
- The library API abstracts all effectful computations behind a polymorphic effect type based on
cats-effecttypeclasses, so that any compatible library can be used with Laika (
- Full control over ExecutionContexts for blocking IO and CPU-bound processing.
- All functionality is available without the need to install any external tools.
- Scaling up to producing complex e-books and sites from dozens of inputs, to scaling down to transform a snippet of Markdown with three lines of code.
- Markdown including GitHub Flavor and reStructuredText as input formats
- HTML, EPUB and PDF as output formats
- Convenient navigation with validated internal links, global link definitions, cross-referencing by headline text, auto-generated navigation trees or breadcrumbs with optional auto-numbering.
- Freely organize and merge content from multiple input directories or generated in-memory with the library's virtual path abstraction.
Customizations & Extensibility
- Process and transform the Document AST between parsing and rendering.
- Adjust the rendered output for individual AST node types or control the final output of documents with custom templates.
- Extend the syntax of text markup languages, either with custom directives or by writing a parser extension.
*Note that all licence references and agreements mentioned in the Laika README section above are relevant to that project's source code only.