laika.ast

package laika.ast

Type members

Classlikes

object /

Extractors for pattern matching against absolute and relative paths.

Extractors for pattern matching against absolute and relative paths.

case class AbsoluteInternalTarget(path: Path) extends InternalTarget

Represents a target defined by an absolute path.

Represents a target defined by an absolute path.

case object Autonumber extends FootnoteLabel

Label with automatic numbering.

Label with automatic numbering.

case class AutonumberLabel(label: String) extends FootnoteLabel

Label using automatic numbering and explicit label names together.

Label using automatic numbering and explicit label names together.

case object Autosymbol extends FootnoteLabel

Label with automatic symbol assignment.

Label with automatic symbol assignment.

trait Block extends Element

The base type for all block level elements.

The base type for all block level elements.

A container of other Block elements. Such a container is usually also a Block itself.

A container of other Block elements. Such a container is usually also a Block itself.

Common methods for simple block containers (without additional parameters).

Common methods for simple block containers (without additional parameters).

trait BlockResolver extends Block with Unresolved

Represents a placeholder block element that needs to be resolved in a rewrite step. Useful for elements that need access to the document, structure, title or configuration before being fully resolved.

Represents a placeholder block element that needs to be resolved in a rewrite step. Useful for elements that need access to the document, structure, title or configuration before being fully resolved.

case class BlockScope(content: Block, context: ConfigValue, source: SourceFragment, options: Options) extends ElementScope[Block] with Block

Represents a block element that introduces new context that can be used in substitution references in any child element.

Represents a block element that introduces new context that can be used in substitution references in any child element.

Usually used in directive implementations and not contributing to the rendered output itself.

case class BlockSequence(content: Seq[Block], options: Options) extends Block with BlockContainer

A generic container element containing a list of blocks. Can be used where a sequence of blocks must be inserted in a place where a single element is required by the API. Usually renderers do not treat the container as a special element and render its children as s sub flow of the parent container.

A generic container element containing a list of blocks. Can be used where a sequence of blocks must be inserted in a place where a single element is required by the API. Usually renderers do not treat the container as a special element and render its children as s sub flow of the parent container.

Companion:
object
case object BodyCell extends CellType with BlockContainerCompanion

A cell in the body part of the table.

A cell in the body part of the table.

The format of a bullet list item.

The format of a bullet list item.

case class BulletList(content: Seq[BulletListItem], format: BulletFormat, options: Options) extends Block with ListContainer with RewritableContainer

A bullet list that may contain nested lists.

A bullet list that may contain nested lists.

Companion:
object

Companion for creating BulletList instances.

Companion for creating BulletList instances.

Companion:
class

Base trait for companions that create BulletList instances.

Base trait for companions that create BulletList instances.

case class BulletListItem(content: Seq[Block], format: BulletFormat, options: Options) extends ListItem with BlockContainer

A single bullet list item consisting of one or more block elements.

A single bullet list item consisting of one or more block elements.

case class Caption(content: Seq[Span], options: Options) extends TableElement with SpanContainer

The table caption.

The table caption.

Companion:
object
Companion:
class
sealed trait CategorizedCode extends Span

A single span inside a code block that has been categorized by a syntax highlighter.

A single span inside a code block that has been categorized by a syntax highlighter.

case class Cell(cellType: CellType, content: Seq[Block], colspan: Int, rowspan: Int, options: Options) extends TableElement with BlockContainer

A single cell, potentially spanning multiple rows or columns, containing one or more block elements.

A single cell, potentially spanning multiple rows or columns, containing one or more block elements.

sealed abstract class CellType

The cell type specifies which part of the table the cell belongs to.

The cell type specifies which part of the table the cell belongs to.

case class Choice(name: String, label: String, content: Seq[Block], options: Options) extends BlockContainer

Represents a single choice in a ChoiceGroup.

Represents a single choice in a ChoiceGroup.

case class Citation(label: String, content: Seq[Block], options: Options) extends Block with LinkTarget with BlockContainer

A citation that can be referred to by a CitationLink by id.

A citation that can be referred to by a CitationLink by id.

case class CitationLink(refId: String, label: String, options: Options) extends LocalLink

A resolved link to a citation.

A resolved link to a citation.

case class CitationReference(label: String, source: SourceFragment, options: Options) extends Reference

A reference to a citation with a matching label. Only part of the raw document tree and then removed by the rewrite rule that resolves link and image references.

A reference to a citation with a matching label. Only part of the raw document tree and then removed by the rewrite rule that resolves link and image references.

case class CodeBlock(language: String, content: Seq[Span], codeOptions: Seq[String], options: Options) extends Block with SpanContainer

A block of program code. The content is a sequence of spans to support the integration of syntax highlighting systems. For unsupported languages the sequence will only consist of a single Text element.

A block of program code. The content is a sequence of spans to support the integration of syntax highlighting systems. For unsupported languages the sequence will only consist of a single Text element.

case class CodeSpan(content: String, categories: Set[CodeCategory], options: Options) extends CategorizedCode with TextContainer

A span of code associated with zero or more code categories.

A span of code associated with zero or more code categories.

Companion:
object
object CodeSpan
Companion:
class
case class CodeSpanSequence(content: Seq[Span], options: Options) extends CategorizedCode with SpanContainer

A sequence of code spans where most of them are usually associated with zero or more code categories.

A sequence of code spans where most of them are usually associated with zero or more code categories.

Companion:
object
object CodeSpans
case class Column(options: Options) extends TableElement

The options (like styles) for a column table.

The options (like styles) for a column table.

case class Columns(content: Seq[Column], options: Options) extends TableElement with TableContainer

Contains the (optional) column specification of a table.

Contains the (optional) column specification of a table.

Companion:
object
object Columns

Convenient factory for creating a Columns instance based on the options for the individual columns.

Convenient factory for creating a Columns instance based on the options for the individual columns.

Companion:
class
case class Comment(content: String, options: Options) extends Block with TextContainer

A comment that may be omitted by renderers.

A comment that may be omitted by renderers.

trait Container[+T] extends Element

A generic container. Usually not mixed in directly, instead one of the sub-traits TextContainer, ListContainer, SpanContainer or BlockContainer should be used.

A generic container. Usually not mixed in directly, instead one of the sub-traits TextContainer, ListContainer, SpanContainer or BlockContainer should be used.

abstract class ContextReference[T <: Span](ref: Key, source: SourceFragment) extends SpanResolver

Represents a reference to a value from the context of the current document. The ref attribute is a simple path expression in dot notation for accessing properties of an object (or keys of a Map).

Represents a reference to a value from the context of the current document. The ref attribute is a simple path expression in dot notation for accessing properties of an object (or keys of a Map).

The root elements accessible to such a reference are:

  • document: the current document with all of its public properties
  • parent: the parent tree of the current document
  • root: the root tree
  • config: all configuration values for the current document, including those inherited from parent trees
sealed trait Cursor

A cursor provides the necessary context during a rewrite operation. The stateless document tree cannot provide access to parent or sibling nodes in the tree, therefore a temporary cursor instance is created during a rewrite operation for this purpose.

A cursor provides the necessary context during a rewrite operation. The stateless document tree cannot provide access to parent or sibling nodes in the tree, therefore a temporary cursor instance is created during a rewrite operation for this purpose.

case class DecoratedHeader(decoration: HeaderDecoration, content: Seq[Span], source: SourceFragment, options: Options) extends Block with SpanContainer with Unresolved

A decorated header where the level gets determined in the rewrite phase based on the decoration used and the order they appear in the document. The first decoration type encountered is used for level 1, the second for level 2, and so on.

A decorated header where the level gets determined in the rewrite phase based on the decoration used and the order they appear in the document. The first decoration type encountered is used for level 1, the second for level 2, and so on.

Companion:
object
Companion:
class
trait Definition extends Block

Represents a definition that can be used to resolve references.

Represents a definition that can be used to resolve references.

Only part of the raw document tree and then removed or replaced by a rewrite rule before rendering.

case class DefinitionList(content: Seq[DefinitionListItem], options: Options) extends Block with ListContainer with RewritableContainer

A list of terms and their definitions. Not related to the Definition base trait.

A list of terms and their definitions. Not related to the Definition base trait.

Companion:
object
Companion:
class
case class DefinitionListItem(term: Seq[Span], content: Seq[Block], options: Options) extends ListItem with BlockContainer

A single definition item, containing the term and definition (as the content property).

A single definition item, containing the term and definition (as the content property).

Companion:
object
Companion:
class
case class Deleted(content: Seq[Span], options: Options) extends Span with SpanContainer

A span representing deleted inline elements that may contain nested spans.

A span representing deleted inline elements that may contain nested spans.

Companion:
object
Companion:
class
case class Document(path: Path, content: RootElement, fragments: Map[String, Element], config: Config, position: TreePosition) extends DocumentStructure with TreeContent

Represents a single document and provides access to the document content and structure as well as hooks for triggering rewrite operations.

Represents a single document and provides access to the document content and structure as well as hooks for triggering rewrite operations.

Value parameters:
config

the configuration for this document

content

the tree model obtained from parsing the markup document

fragments

separate named fragments that had been extracted from the content

path

the full, absolute path of this document in the (virtual) document tree

position

the position of this document inside a document tree hierarchy, expressed as a list of Ints

case class DocumentCursor(target: Document, parent: TreeCursor, resolver: ReferenceResolver, config: Config, templatePath: Option[Path], position: TreePosition) extends Cursor

Cursor for a single document, its parent, siblings and root directories, its associated template and other context information that is required during a rewrite operation.

Cursor for a single document, its parent, siblings and root directories, its associated template and other context information that is required during a rewrite operation.

Value parameters:
config

the configuration associated with the target document

parent

the parent document tree of the referred document

position

the position of the target document inside a tree hierarchy

resolver

the resolver for references in templates

target

the document this cursor points to

templatePath

the path of the template that has been applied to this document

Companion:
object
Companion:
class
case class DocumentFragment(name: String, root: Element, options: Options) extends Block

A named document fragment that usually gets rendered separately from the main root element

A named document fragment that usually gets rendered separately from the main root element

case class DocumentMetadata(title: Option[String], description: Option[String], identifier: Option[String], authors: Seq[String], language: Option[String], datePublished: Option[Type], dateModified: Option[Type], version: Option[String], canonicalLink: Option[URI])

Metadata associated with a document.

Metadata associated with a document.

Companion:
object
Companion:
class

Represents a document structure with sections that can be turned into a navigation structure.

Represents a document structure with sections that can be turned into a navigation structure.

The structure of a markup document.

The structure of a markup document.

case class DocumentTree(path: Path, content: Seq[TreeContent], titleDocument: Option[Document], templates: Seq[TemplateDocument], config: Config, position: TreePosition) extends TreeStructure with TreeContent

Represents a tree with all its documents, templates, configurations and subtrees.

Represents a tree with all its documents, templates, configurations and subtrees.

Value parameters:
config

the configuration associated with this tree

content

the markup documents and subtrees

path

the full, absolute path of this (virtual) document tree

position

the position of this tree inside a document ast hierarchy, expressed as a list of Ints

templates

all templates on this level of the tree hierarchy that might get applied to a document when it gets rendered

titleDocument

the optional title document of this tree

case class DocumentTreeRoot(tree: DocumentTree, coverDocument: Option[Document], styles: Map[String, StyleDeclarationSet], staticDocuments: Seq[StaticDocument], includes: IncludeMap)

Represents the root of a tree of documents. In addition to the recursive structure of documents, usually obtained by parsing text markup, it holds additional items like styles and static documents, which may contribute to the rendering of a site or an e-book.

Represents the root of a tree of documents. In addition to the recursive structure of documents, usually obtained by parsing text markup, it holds additional items like styles and static documents, which may contribute to the rendering of a site or an e-book.

The styles property of this type is currently only populated and processed when rendering PDF or XSL-FO. Styles for HTML or EPUB documents are part of the staticDocuments property instead and will be integrated into the final output, but not interpreted.

Value parameters:
coverDocument

the cover document (usually used with e-book formats like EPUB and PDF)

includes

the map of configuration includes that may be needed when resolving template configuration

staticDocuments

the descriptors for documents that were neither identified as text markup, config or templates, and will be copied as is to the final output

styles

the styles to apply when rendering this tree, only populated for PDF or XSL-FO output

tree

the recursive structure of documents, usually obtained from parsing text markup

sealed abstract class DocumentType extends Product

Base type for all document type descriptors.

Base type for all document type descriptors.

Companion:
object

Provides all available DocumentTypes.

Provides all available DocumentTypes.

Companion:
class
abstract class Element extends Product with Serializable

The base class for all Elements forming the document tree. Usually not extended directly, instead either Span or Block should be picked as the base type for new element types.

The base class for all Elements forming the document tree. Usually not extended directly, instead either Span or Block should be picked as the base type for new element types.

All node types have an optional id and zero or more associated styles serving as render hints.

trait ElementContainer[+E <: Element] extends Container[Seq[E]] with ElementTraversal

A generic container of other elements. Provides means to traverse, select and rewrite children of this container.

A generic container of other elements. Provides means to traverse, select and rewrite children of this container.

Usually not mixed in directly, instead one of the sub-traits ListContainer, SpanContainer or BlockContainer should be used.

trait ElementScope[E <: Element] extends Unresolved

Represents an element that introduces new context that can be used in substitution references in any child element.

Represents an element that introduces new context that can be used in substitution references in any child element.

Usually used in directive implementations and not contributing to the rendered output itself.

Provides means to traverse and select elements of a document tree. This trait can get mixed in by any element node, not just the root Document class, therefore providing traversal for any kind of sub-tree, too.

Provides means to traverse and select elements of a document tree. This trait can get mixed in by any element node, not just the root Document class, therefore providing traversal for any kind of sub-tree, too.

case class EmbeddedConfigValue(key: String, value: ConfigValue, options: Options) extends Block with Span with Hidden

A single configuration value to be merged with the top document config. This is particularly useful for directive implementations that need to contribute to the configuration of the document. During rendering these embedded configuration values will be discarded.

A single configuration value to be merged with the top document config. This is particularly useful for directive implementations that need to contribute to the configuration of the document. During rendering these embedded configuration values will be discarded.

Companion:
object
Companion:
class
case class EmbeddedRoot(content: Seq[Block], indent: Int, options: Options) extends TemplateSpan with BlockContainer

The root element of a document tree (originating from text markup) inside a template. Usually created by a template reference like ${cursor.currentDocument.content}.

The root element of a document tree (originating from text markup) inside a template. Usually created by a template reference like ${cursor.currentDocument.content}.

Companion:
object
case class Emphasized(content: Seq[Span], options: Options) extends Span with SpanContainer

A span of emphasized inline elements that may contain nested spans.

A span of emphasized inline elements that may contain nested spans.

Companion:
object
Companion:
class
case class EnumFormat(enumType: EnumType, prefix: String, suffix: String)

The format of enumerated list items.

The format of enumerated list items.

case class EnumList(content: Seq[EnumListItem], format: EnumFormat, start: Int, options: Options) extends Block with ListContainer with RewritableContainer

An enumerated list that may contain nested lists.

An enumerated list that may contain nested lists.

Companion:
object

Companion for creating BulletList instances.

Companion for creating BulletList instances.

Companion:
class

Base trait for companions that create EnumList instances.

Base trait for companions that create EnumList instances.

case class EnumListItem(content: Seq[Block], format: EnumFormat, position: Int, options: Options) extends ListItem with BlockContainer

A single enum list item consisting of one or more block elements.

A single enum list item consisting of one or more block elements.

sealed abstract class EnumType

Represents the type of an ordered list.

Represents the type of an ordered list.

Companion:
object
object EnumType

Enumeration of supported enum types.

Enumeration of supported enum types.

Companion:
class
case class ExternalTarget(url: String) extends Target

An external link, outside of the virtual tree of the current transformation.

An external link, outside of the virtual tree of the current transformation.

trait Fallback

Provides a fallback for elements the renderer does not know how to deal with.

Provides a fallback for elements the renderer does not know how to deal with.

case class Figure(image: Span, caption: Seq[Span], content: Seq[Block], options: Options) extends Block with BlockContainer

A figure consists of an image, an optional caption, and an optional legend as the content property. The image property is of type Span as the image might be wrapped inside a link reference.

A figure consists of an image, an optional caption, and an optional legend as the content property. The image property is of type Span as the image might be wrapped inside a link reference.

case class Footnote(label: String, content: Seq[Block], options: Options) extends Block with LinkTarget with BlockContainer

A footnote with resolved id and label that can be referred to by a FootnoteLink by id.

A footnote with resolved id and label that can be referred to by a FootnoteLink by id.

case class FootnoteDefinition(label: FootnoteLabel, content: Seq[Block], source: SourceFragment, options: Options) extends Definition with BlockContainer with Unresolved

A footnote definition that needs to be resolved to a final footnote by a rewrite rule based on the label type.

A footnote definition that needs to be resolved to a final footnote by a rewrite rule based on the label type.

abstract class FootnoteLabel

Base type for all types of footnote labels.

Base type for all types of footnote labels.

case class FootnoteLink(refId: String, label: String, options: Options) extends LocalLink

A resolved link to a footnote.

A resolved link to a footnote.

case class FootnoteReference(label: FootnoteLabel, source: SourceFragment, options: Options) extends Reference

A reference to a footnote with a matching label. Only part of the raw document tree and then removed by the rewrite rule that resolves link and image references.

A reference to a footnote with a matching label. Only part of the raw document tree and then removed by the rewrite rule that resolves link and image references.

case class ForcedParagraph(content: Seq[Span], options: Options) extends Block with SpanContainer with Fallback

A special type of paragraph that serves as a render hint. Some renderers simplify the rendering of block elements containing only a single paragraph and render the span content inline (e.g. a &lt;li&gt; tag without a nested &lt;p&gt; tag for the paragraph). Using this element as mandated by some edge cases in both the Markdown and reStructuredText markup definitions prevents this.

A special type of paragraph that serves as a render hint. Some renderers simplify the rendering of block elements containing only a single paragraph and render the span content inline (e.g. a &lt;li&gt; tag without a nested &lt;p&gt; tag for the paragraph). Using this element as mandated by some edge cases in both the Markdown and reStructuredText markup definitions prevents this.

Generic base trait for all path abstractions in Laika.

Generic base trait for all path abstractions in Laika.

The most commonly used sub-type is VirtualPath which is used to assign paths to trees and documents within a Laika transformation.

This trait is the only one within the Path API that is not sealed, to allow for implementations in other modules (e.g. FilePath in laika-io).

trait GlobalLink extends Link

A global link that can point to any document within the input tree or to an external target.

A global link that can point to any document within the input tree or to an external target.

case object HeadCell extends CellType with BlockContainerCompanion

A cell in the head part of the table.

A cell in the head part of the table.

case class Header(level: Int, content: Seq[Span], options: Options) extends Block with SpanContainer

A header element with a level, with 1 being the top level of the document.

A header element with a level, with 1 being the top level of the document.

Companion:
object
object Header
Companion:
class

Represents the decoration of a header. Concrete implementations need to be provided by the parser.

Represents the decoration of a header. Concrete implementations need to be provided by the parser.

trait Hidden extends Element

Represents a hidden element that will be ignored by renderers.

Represents a hidden element that will be ignored by renderers.

These kind of nodes usually provide information that will be extracted from the tree before AST transformations and renderers get applied.

sealed trait Icon extends Span

Base trait for all supported icon types.

Base trait for all supported icon types.

case class IconGlyph(codePoint: Char, title: Option[String], options: Options) extends Icon

Represents a font-based icon, identified by its code point. Ideally theme authors provide constants for icons provided out of the box, so that the user does not have to look up or memorize the hex code point.

Represents a font-based icon, identified by its code point. Ideally theme authors provide constants for icons provided out of the box, so that the user does not have to look up or memorize the hex code point.

This avoids the indirection of common approaches where the rendered HTML contains an empty tag with a class which specifies the code point with a :before pseudo-class. This approach would currently not work well with Laika's PDF support which is not based on an interim HTML renderer.

case class IconReference(key: String, source: SourceFragment, options: Options) extends SpanResolver with Reference

A reference to an icon by key.

A reference to an icon by key.

The icon must have been registered with the global configuration to be accessible by this node type. The indirection provided by this key allows to more easily swap entire icon sets without touching any code.

case class IconStyle(styleName: String, title: Option[String], options: Options) extends Icon

An icon defined in a style sheet, usually defining a glyph from an icon font. This icon type is not supported for PDF output, when using font icons with PDF use IconGlyph instead.

An icon defined in a style sheet, usually defining a glyph from an icon font. This icon type is not supported for PDF output, when using font icons with PDF use IconGlyph instead.

object Id

Factory and extractor for an Options instance with an id.

Factory and extractor for an Options instance with an id.

case class Image(target: Target, width: Option[Length], height: Option[Length], alt: Option[String], title: Option[String], options: Options) extends GlobalLink

An inline image optional title, alt and size properties.

An inline image optional title, alt and size properties.

Companion:
object
object Image
Companion:
class
case class ImageIdReference(text: String, id: String, source: SourceFragment, options: Options) extends Reference

An image reference, the id pointing to the id of a LinkTarget. Only part of the raw document tree and then removed by the rewrite rule that resolves link and image references.

An image reference, the id pointing to the id of a LinkTarget. Only part of the raw document tree and then removed by the rewrite rule that resolves link and image references.

case class ImagePathReference(path: VirtualPath, source: SourceFragment, width: Option[Length], height: Option[Length], alt: Option[String], title: Option[String], options: Options) extends PathReference

An image reference to content within the virtual input tree, the path pointing to the source path. Only part of the unresolved document tree and then removed by the rewrite rule that replace the source path with the final target path of the output document, resolving any relative path references in the process.

An image reference to content within the virtual input tree, the path pointing to the source path. Only part of the unresolved document tree and then removed by the rewrite rule that replace the source path with the final target path of the output document, resolving any relative path references in the process.

case class InlineCode(language: String, content: Seq[Span], options: Options) extends Span with SpanContainer

A span of program code. The content is a sequence of spans to support the integration of syntax highlighting systems. Without this support the sequence will only consist of a single Text element.

A span of program code. The content is a sequence of spans to support the integration of syntax highlighting systems. Without this support the sequence will only consist of a single Text element.

case class InlineSVGIcon(content: String, title: Option[String], options: Options) extends Icon

An SVG icon that will render inline, supported for all output formats.

An SVG icon that will render inline, supported for all output formats.

case class Inserted(content: Seq[Span], options: Options) extends Span with SpanContainer

A span representing inserted inline elements that may contain nested spans.

A span representing inserted inline elements that may contain nested spans.

Companion:
object
Companion:
class
case class InternalLinkTarget(options: Options) extends Block with Span with LinkTarget

Points to the following block or span element, making it a target for links.

Points to the following block or span element, making it a target for links.

trait InternalTarget extends Target

Represents a target within the virtual tree that can be referred to by links.

Represents a target within the virtual tree that can be referred to by links.

Companion:
object
Companion:
class
trait Invalid extends Element with Fallback

Represents an invalid element. Renderers can choose to either render the fallback or the runtime message or both, depending on the configuration of the transformer or renderer.

Represents an invalid element. Renderers can choose to either render the fallback or the runtime message or both, depending on the configuration of the transformer or renderer.

case class InvalidBlock(message: RuntimeMessage, source: SourceFragment, fallback: Block, options: Options) extends Block with Invalid

Groups a block that could not be successfully parsed with a runtime message. Renderers may then choose to just render the fallback, the message or both.

Groups a block that could not be successfully parsed with a runtime message. Renderers may then choose to just render the fallback, the message or both.

Companion:
object
Companion:
class
case class InvalidSpan(message: RuntimeMessage, source: SourceFragment, fallback: Span, options: Options) extends Span with Invalid

Groups a span that could not be successfully parsed with a runtime message. Renderers may then choose to just render the fallback, the message or both.

Groups a span that could not be successfully parsed with a runtime message. Renderers may then choose to just render the fallback, the message or both.

Companion:
object
Companion:
class
case class Length(amount: Double, unit: LengthUnit)

Encapsulates size information with a CSS-compatible length unit.

Encapsulates size information with a CSS-compatible length unit.

sealed abstract class LengthUnit(val displayValue: String) extends Double => Length

A base for builder of CSS-compatible length units.

A base for builder of CSS-compatible length units.

Companion:
object
object LengthUnit
Companion:
class
case class LineBreak(options: Options) extends Span

An explicit hard line break.

An explicit hard line break.

trait Link extends Span

The base type for all link elements.

The base type for all link elements.

In contrast to the reference type, it is only mixed in by elements representing resolved links that can be dealt with by renderers.

case class LinkAlias(id: String, target: String, options: Options) extends Definition with Span with Hidden

A link target pointing to another link target, acting like an alias.

A link target pointing to another link target, acting like an alias.

case class LinkDefinition(id: String, target: Target, title: Option[String], options: Options) extends Definition with Hidden with Span

An internal or external link target that can be referenced by id, usually only part of the raw document tree and then removed by the rewrite rule that resolves link and image references.

An internal or external link target that can be referenced by id, usually only part of the raw document tree and then removed by the rewrite rule that resolves link and image references.

Companion:
object
Companion:
class
case class LinkIdReference(content: Seq[Span], ref: String, source: SourceFragment, options: Options) extends Reference with SpanContainer

A reference to any kind of referencable object, e.g. a link definition or an internal target.

A reference to any kind of referencable object, e.g. a link definition or an internal target.

The reference can be local, in the same document, or anywhere else in the input tree, as long as the id is not ambiguous. Search for a matching target happens recursively, from the current document, to the current tree (directory) upwards to the root tree.

Companion:
object

Companion for creating LinkIdReference instances.

Companion for creating LinkIdReference instances.

Companion:
class
case class LinkPathReference(content: Seq[Span], path: VirtualPath, source: SourceFragment, title: Option[String], options: Options) extends PathReference with SpanContainer

A reference to content within the virtual input tree, the path pointing to the source path. Only part of the unresolved document tree and then removed by the rewrite rule that replace the source path with the final target path of the output document, which might differ in more than just the file suffix, depending on configuration.

A reference to content within the virtual input tree, the path pointing to the source path. Only part of the unresolved document tree and then removed by the rewrite rule that replace the source path with the final target path of the output document, which might differ in more than just the file suffix, depending on configuration.

trait LinkTarget extends Block

The base type for all link targets. The id has to be unique for the whole document across all types of LinkTarget implementations.

The base type for all link targets. The id has to be unique for the whole document across all types of LinkTarget implementations.

A container of list items. Such a container is usually a Block itself.

A container of list items. Such a container is usually a Block itself.

trait ListItem extends Element

The base type for all list items.

The base type for all list items.

case class Literal(content: String, options: Options) extends Span with TextContainer

A span containing plain, unparsed text.

A span containing plain, unparsed text.

case class LiteralBlock(content: String, options: Options) extends Block with TextContainer

A literal block with unparsed text content.

A literal block with unparsed text content.

trait LocalLink extends Link

A local link that always points to a target within the same document.

A local link that always points to a target within the same document.

case class MarkupContextReference(ref: Key, required: Boolean, source: SourceFragment, options: Options) extends ContextReference[Span]

A context reference specifically for use in markup documents.

A context reference specifically for use in markup documents.

sealed trait MessageFilter

A filter for runtime messages that meet a specified minimum message level.

A filter for runtime messages that meet a specified minimum message level.

Companion:
object
Companion:
class
sealed abstract class MessageLevel(level: Int) extends Ordered[MessageLevel] with Product

Signals the severity of a runtime message.

Signals the severity of a runtime message.

Companion:
object

Enumeration of available message levels.

Enumeration of available message levels.

The library's internal parsers and AST transformation only use the Error level for recoverable issues encountered during transformations. All other levels are available for user code.

Companion:
class

A navigatable object is anything that has an associated path.

A navigatable object is anything that has an associated path.

case class NavigationBuilderContext(refPath: Path, itemStyles: Set[String], maxLevels: Int, currentLevel: Int, excludeSections: Boolean, excludeSelf: Boolean)

The context of a navigation builder that can get passed down in recursive calls to the various types that have an asNavigationItem method.

The context of a navigation builder that can get passed down in recursive calls to the various types that have an asNavigationItem method.

Value parameters:
currentLevel

the current level of the navigation tree being built

excludeSections

indicates whether the recursion should exclude sections of documents even when maxLevels has not been reached yet

itemStyles

the styles to assign to each navigation item as a render hint

maxLevels

the number of levels of sub-trees, documents or sections to create navigation info for

refPath

the path of document from which this document will be linked (for creating a corresponding relative path)

case class NavigationItem(title: SpanSequence, content: Seq[NavigationItem], link: Option[NavigationLink], targetFormats: TargetFormats, options: Options) extends Block with ListItem with ElementContainer[NavigationItem] with RewritableContainer with ListContainer

Represents a navigation entry with an optional target link and optional child items. When the target link is not present, this item only serves as a navigation header for its children.

Represents a navigation entry with an optional target link and optional child items. When the target link is not present, this item only serves as a navigation header for its children.

case class NavigationLink(target: Target, selfLink: Boolean, targetFormats: TargetFormats)

Represents a book navigation entry that links to content in the document tree.

Represents a book navigation entry that links to content in the document tree.

case class NavigationList(content: Seq[NavigationItem], options: Options) extends Block with ListContainer with RewritableContainer

The root node of a navigation structure

The root node of a navigation structure

Companion:
object
Companion:
class
case object NoOpt extends Options

Empty Options implementation.

Empty Options implementation.

case class NumericLabel(number: Int) extends FootnoteLabel

Explicit numeric label.

Explicit numeric label.

sealed abstract class Options

Options for customizable elements.

Options for customizable elements.

Companion:
object
object Options

Companion for the Options trait.

Companion for the Options trait.

Companion:
class
case class PageBreak(options: Options) extends Block

An explicit hard page break.

An explicit hard page break.

case class Paragraph(content: Seq[Span], options: Options) extends Block with SpanContainer

A paragraph consisting of span elements.

A paragraph consisting of span elements.

Companion:
object
Companion:
class
case class ParentSelector(selector: StyleSelector, immediate: Boolean)

Represents a parent selector and indicates whether it is an immediate parent or an ancestor anywhere in the hierarchy.

Represents a parent selector and indicates whether it is an immediate parent or an ancestor anywhere in the hierarchy.

case class ParsedLiteralBlock(content: Seq[Span], options: Options) extends Block with SpanContainer

A literal block with parsed text content.

A literal block with parsed text content.

Companion:
object
sealed trait Path extends VirtualPath

Represents an absolute path inside a virtual tree of documents.

Represents an absolute path inside a virtual tree of documents.

Since this is the most commonly used path abstraction in Laika it received a conveniently short type name. The full, accurate name of this type would be AbsoluteVirtualPath.

Companion:
object
object Path

Factory methods for creating path instances.

Factory methods for creating path instances.

Companion:
class
trait PathReference extends Reference

A reference to content within the virtual input tree, the path pointing to the source path. Only part of the unresolved document tree and then removed by the rewrite rule that replace the source path with the final target path of the output document, which might differ in more than just the file suffix, depending on configuration.

A reference to content within the virtual input tree, the path pointing to the source path. Only part of the unresolved document tree and then removed by the rewrite rule that replace the source path with the final target path of the output document, which might differ in more than just the file suffix, depending on configuration.

case class QuotedBlock(content: Seq[Block], attribution: Seq[Span], options: Options) extends Block with BlockContainer

A quoted block consisting of a list of blocks that may contain other nested quoted blocks and an attribution which may be empty.

A quoted block consisting of a list of blocks that may contain other nested quoted blocks and an attribution which may be empty.

Companion:
object
Companion:
class
case class RawContent(formats: Type[String], content: String, options: Options) extends Block with Span with TextContainer

Raw content that is usually specific to the specified output formats. Can be used as both block and inline element. If supported by a parser it usually has to be explicitly enabled due to security concerns.

Raw content that is usually specific to the specified output formats. Can be used as both block and inline element. If supported by a parser it usually has to be explicitly enabled due to security concerns.

case class RawLink(target: Target, options: Options) extends GlobalLink

A raw link element without associated content (text or image).

A raw link element without associated content (text or image).

One potential use case is to insert AST nodes that are only responsible for rendering a single tag attribute as opposed to rendering the full tag like all other link node types.

Raw links participate in path translation (e.g. for versioning) like all other link node types.

Companion:
object
object RawLink

Companion for creating RawLink instances.

Companion for creating RawLink instances.

Companion:
class
trait Reference extends Span with Unresolved

The base type for all reference elements.

The base type for all reference elements.

A reference points to some other node in the document tree and needs to be resolved and replaced by a rewrite rule before rendering. Therefore none of the available renderers include logic for dealing with references.

Represents a target defined by a relative path; the absolute path of such a target needs to be resolved later in the context of the containing document and its path.

Represents a target defined by a relative path; the absolute path of such a target needs to be resolved later in the context of the containing document and its path.

sealed trait RelativePath extends VirtualPath
Companion:
object
Companion:
class
case object Remove extends RewriteAction[Nothing]

Indicates that the element a rewrite rule had been applied to should be removed from the document AST.

Indicates that the element a rewrite rule had been applied to should be removed from the document AST.

case class Replace[T](newValue: T) extends RewriteAction[T]

Indicates that the element a rewrite rule had been applied to should be replaced with this new value.

Indicates that the element a rewrite rule had been applied to should be replaced with this new value.

case class ResolvedInternalTarget(absolutePath: Path, relativePath: RelativePath, internalFormats: TargetFormats) extends InternalTarget

Represents a resolved internal target where both the absolute and relative path are known, the latter relative to the document that referred to the target.

Represents a resolved internal target where both the absolute and relative path are known, the latter relative to the document that referred to the target.

The internalFormats property describes which of the output formats treat this as an internal link. For other formats the link gets translated to an external target based on the siteBaseURL setting. This might be useful for cases where some pages get rendered to a site, but not included in an e-book format like EPUB and PDF.

case object Retain extends RewriteAction[Nothing]

Indicates that the element a rewrite rule had been applied to should be kept in the document AST unchanged.

Indicates that the element a rewrite rule had been applied to should be kept in the document AST unchanged.

case class Reverse(length: Int, target: Span, fallback: Span, options: Options) extends Span

A generic container of child elements which can have rewrite rules applied to them in recursive tree rewriting.

A generic container of child elements which can have rewrite rules applied to them in recursive tree rewriting.

sealed trait RewriteAction[+T]

Describes the action to be performed for a particular node in the document AST.

Describes the action to be performed for a particular node in the document AST.

sealed trait RewritePhase

Represents one of the rewrite phases for document AST transformations.

Represents one of the rewrite phases for document AST transformations.

These transformations are performed between parsing and rendering and deal with tasks like link validation, resolving substitution variables, directive processing or other tasks.

A phased model allows to separate rules that contribute new nodes to the AST from nodes that analyze the existing AST, e.g. for producing navigation artifacts. Running them all in one phase would create a chicken-and-egg scenario that would usually lead to undesired or unexpected results.

Companion:
object
case object RewritePhase
Companion:
class
case class RewriteRules(spanRules: Seq[RewriteRule[Span]], blockRules: Seq[RewriteRule[Block]], templateRules: Seq[RewriteRule[TemplateSpan]])

A set of rewrite rules describing a set of modifications to be applied to an AST of a document.

A set of rewrite rules describing a set of modifications to be applied to an AST of a document.

For reasons of type-safety the major element type blocks and spans (in markup documents) and template spans (in template documents) have their separate set of rules, as an element in a block position for example can usually only be replaced by another block and not by any other element type.

Companion:
object

Factory methods and utilities for dealing with rewrite rules.

Factory methods and utilities for dealing with rewrite rules.

Companion:
class

Converts Roman numerals to integers and vice versa. Since there never have been universally accepted rules for Roman numerals, the conversion functions do not apply strict error checking, so some unusual or illegal constructs may be supported, too. They do not prevent using the same symbol more than three times in a row for example.

Converts Roman numerals to integers and vice versa. Since there never have been universally accepted rules for Roman numerals, the conversion functions do not apply strict error checking, so some unusual or illegal constructs may be supported, too. They do not prevent using the same symbol more than three times in a row for example.

Cursor for the root node of a document tree, providing access to all child cursors of this tree and allowing to trigger rewrite operations.

Cursor for the root node of a document tree, providing access to all child cursors of this tree and allowing to trigger rewrite operations.

Value parameters:
target

the root of the document tree this cursor points to

Companion:
object
object RootCursor
Companion:
class
case class RootElement(content: Seq[Block], options: Options) extends Block with BlockContainer

The root element of a document tree.

The root element of a document tree.

Companion:
object
Companion:
class
case class Row(content: Seq[Cell], options: Options) extends TableElement with TableContainer with RewritableContainer

A single table row. In case some of the previous rows contain cells with a colspan greater than 1, this row may contain fewer cells than the number of columns in the table.

A single table row. In case some of the previous rows contain cells with a colspan greater than 1, this row may contain fewer cells than the number of columns in the table.

Companion:
object
object Row
Companion:
class
case class Rule(options: Options) extends Block

A horizontal rule.

A horizontal rule.

case class RuntimeMessage(level: MessageLevel, content: String, options: Options) extends Span with Block with TextContainer

Message generated by the parser, a directive or a rewrite rule.

Message generated by the parser, a directive or a rewrite rule.

They usually get inserted immediately after the block or span that caused the problem. It mixes in both the Span and Block trait so that it can appear in sequences of both types. By default messages are ignored by most renderers (apart from AST), but they can be explicitly activated for a particular level.

A message of level MessageLevel.Error will cause a transformation to fail, unless the user has configured with the renderErrors method to debug in a visual mode in which case the errors will get rendered in-place in the output.

case class SVGSymbolIcon(target: Target, title: Option[String], options: Options) extends Icon

An icon referencing an SVG shape defined in an external file or embedded SVG element. This icon type is not supported for PDF output, when using SVG icons with PDF use InlineSVGIcon instead.

An icon referencing an SVG shape defined in an external file or embedded SVG element. This icon type is not supported for PDF output, when using SVG icons with PDF use InlineSVGIcon instead.

Companion:
object

Companion for creating SVGSymbolIcon instances.

Companion for creating SVGSymbolIcon instances.

Companion:
class
case class Section(header: Header, content: Seq[Block], options: Options) extends Block with BlockContainer

A section of the document, consisting of a header and content in the form of a list of Block elements. Sections may be nested inside other sections, they are arranged in a hierarchy based on the level of their header element.

A section of the document, consisting of a header and content in the form of a list of Block elements. Sections may be nested inside other sections, they are arranged in a hierarchy based on the level of their header element.

case class SectionInfo(id: String, title: SpanSequence, content: Seq[SectionInfo], options: Options) extends Element with ElementContainer[SectionInfo]

Captures information about a document section, without its content.

Captures information about a document section, without its content.

case class SectionNumber(position: Seq[Int], options: Options) extends Span with TextContainer

Represents a section number, usually used in header elements when autonumbering is applied.

Represents a section number, usually used in header elements when autonumbering is applied.

case class SegmentedPath(segments: Type[String], suffix: Option[String], fragment: Option[String]) extends Path with SegmentedVirtualPath
case class SegmentedRelativePath(segments: Type[String], suffix: Option[String], fragment: Option[String], parentLevels: Int) extends RelativePath with SegmentedVirtualPath
sealed trait SegmentedVirtualPath extends VirtualPath

The common base for absolute and relative paths that contain one or more path segments.

The common base for absolute and relative paths that contain one or more path segments.

Companion:
object
Companion:
class
case class Selection(name: String, choices: Seq[Choice], options: Options) extends Block with RewritableContainer

Represents a selection of choices (alternatives) that represent the same content in different ways, e.g. a code sample in Scala or Java or a build setup in sbt vs. Maven. In the final output these will usually be rendered in a way to allow for a convenient selection.

Represents a selection of choices (alternatives) that represent the same content in different ways, e.g. a code sample in Scala or Java or a build setup in sbt vs. Maven. In the final output these will usually be rendered in a way to allow for a convenient selection.

case class SomeOpt(id: Option[String], styles: Set[String]) extends Options

Options implementation for non-empty instances.

Options implementation for non-empty instances.

For creating new instances it is usually more convenient to use the various factory objects. Example for creating an instance with an id and two styles applied:

val options = Id("myId") + Styles("style1","style2")

Likewise it is also often more convenient to use the corresponding extractors for pattern matching.

trait Span extends Element

The base type for all inline elements.

The base type for all inline elements.

A container of other Span elements. Such a container may be a Block or a Span itself.

A container of other Span elements. Such a container may be a Block or a Span itself.

Common methods for simple span containers (without additional parameters).

Common methods for simple span containers (without additional parameters).

case class SpanLink(content: Seq[Span], target: Target, title: Option[String], options: Options) extends GlobalLink with SpanContainer

An link element, with the span content representing the text (description) of the link.

An link element, with the span content representing the text (description) of the link.

Companion:
object
object SpanLink

Companion for creating SpanLink instances.

Companion for creating SpanLink instances.

Companion:
class
trait SpanResolver extends Span with Unresolved

Represents a placeholder inline element that needs to be resolved in a rewrite step. Useful for elements that need access to the document, structure, title or configuration before being fully resolved.

Represents a placeholder inline element that needs to be resolved in a rewrite step. Useful for elements that need access to the document, structure, title or configuration before being fully resolved.

case class SpanScope(content: Span, context: ConfigValue, source: SourceFragment, options: Options) extends ElementScope[Span] with Span

Represents a span element that introduces new context that can be used in substitution references in any child element.

Represents a span element that introduces new context that can be used in substitution references in any child element.

Usually used in directive implementations and not contributing to the rendered output itself.

case class SpanSequence(content: Seq[Span], options: Options) extends Block with Span with SpanContainer

A generic container element containing a list of spans. Can be used where a sequence of spans must be inserted in a place where a single element is required by the API. Usually renderers do not treat the container as a special element and render its children as s sub flow of the parent container. A span sequence is special in that in can be used as both a span and a block.

A generic container element containing a list of spans. Can be used where a sequence of spans must be inserted in a place where a single element is required by the API. Usually renderers do not treat the container as a special element and render its children as s sub flow of the parent container. A span sequence is special in that in can be used as both a span and a block.

Companion:
object
Companion:
class
case class Specificity(ids: Int, classes: Int, types: Int, order: Int) extends Ordered[Specificity]

Represents the specificity of a style selector or predicate. This is modeled after the precedence rules of the CSS standard.

Represents the specificity of a style selector or predicate. This is modeled after the precedence rules of the CSS standard.

case class StaticDocument(path: Path, formats: TargetFormats)

A pure descriptor for a static document, without the actual bytes. Used for evaluating links and other AST transformation phases.

A pure descriptor for a static document, without the actual bytes. Used for evaluating links and other AST transformation phases.

Companion:
object
Companion:
class
case class StringBullet(bullet: String) extends BulletFormat

Bullet format based on a simple string.

Bullet format based on a simple string.

case class Strong(content: Seq[Span], options: Options) extends Span with SpanContainer

A span of strong inline elements that may contain nested spans.

A span of strong inline elements that may contain nested spans.

Companion:
object
Companion:
class
object Style

Constants for style names wrapped in Options instances which are commonly used by Laika's core parsers and rewrite rules.

Constants for style names wrapped in Options instances which are commonly used by Laika's core parsers and rewrite rules.

case class StyleDeclaration(selector: StyleSelector, styles: Map[String, String])

Represents a single style declaration.

Represents a single style declaration.

Value parameters:
selector

the selector to determine which elements this declaration applies to

styles

the styles themselves in a map representing the names and values of each style

Companion:
object
object StyleDeclaration extends (StyleSelector, Map[String, String]) => StyleDeclaration

Companion providing factory methods for the StyleDeclaration class.

Companion providing factory methods for the StyleDeclaration class.

Companion:
class
case class StyleDeclarationSet(paths: Set[Path], styles: Set[StyleDeclaration], precedence: Precedence)

Represents a set of one or more style declarations.

Represents a set of one or more style declarations.

Value parameters:
paths

the paths the style declarations have been obtained from

precedence

the precedence of this set compared to other provided sets

styles

the style declarations that belong to this set

Companion:
object

Companion providing factory methods for the StyleDeclaration class.

Companion providing factory methods for the StyleDeclaration class.

Companion:
class
sealed trait StylePredicate

Represents a single predicate which is part of the selector for a style declaration.

Represents a single predicate which is part of the selector for a style declaration.

Companion:
object

Contains the available predicate types.

Contains the available predicate types.

The available selector types represent a subset of the full CSS standard, picking those features which are reasonably suited in the context of the Laika document model. It includes type, class and id selectors, but no attribute selectors as most Laika tree elements primarily contain a sequence of children and not many other properties to match against.

It also supports the CSS syntax to declare selectors for child elements (e.g. Paragraph .intro) or immediate children (e.g. Paragraph > .intro).

Companion:
class
case class StyleSelector(predicates: Set[StylePredicate], parent: Option[ParentSelector], order: Int)

Responsible for determining whether a style declaration should be applied to a target element, basing its decision on a set of predicates.

Responsible for determining whether a style declaration should be applied to a target element, basing its decision on a set of predicates.

Value parameters:
order

the index of the style declaration this selector belongs to

parent

the optional parent selector

predicates

the set of predicates that need to hold for this selector to be applicable to a target element

object Styles

Factory and extractor for an Options instance with style names.

Factory and extractor for an Options instance with style names.

case class Table(head: TableHead, body: TableBody, caption: Caption, columns: Columns, options: Options) extends Block with ElementTraversal with RewritableContainer

A table consisting of a head and a body part and optional caption and column specification.

A table consisting of a head and a body part and optional caption and column specification.

Companion:
object
object Table
Companion:
class
case class TableBody(content: Seq[Row], options: Options) extends TableElement with TableContainer with RewritableContainer

Contains the body rows of a table.

Contains the body rows of a table.

A container of table elements.

A container of table elements.

trait TableElement extends Element

A table element, like a row, cell or column.

A table element, like a row, cell or column.

case class TableHead(content: Seq[Row], options: Options) extends TableElement with TableContainer with RewritableContainer

Contains the header rows of a table.

Contains the header rows of a table.

sealed trait Target

Represents a target that can be referred to by links, either within the virtual tree or external.

Represents a target that can be referred to by links, either within the virtual tree or external.

Companion:
object
object Target
Companion:
class
case class TargetFormat(formats: Type[String], element: Element, options: Options) extends Block

An element that only gets rendered for a specific output format.

An element that only gets rendered for a specific output format.

case class TemplateContextReference(ref: Key, required: Boolean, source: SourceFragment, options: Options) extends ContextReference[TemplateSpan] with TemplateSpan

A context reference specifically for use in template documents.

A context reference specifically for use in template documents.

case class TemplateDocument(path: Path, content: TemplateRoot, config: ConfigParser) extends Navigatable

A template document containing the element tree of a parsed template and its extracted configuration section (if present).

A template document containing the element tree of a parsed template and its extracted configuration section (if present).

case class TemplateElement(element: Element, indent: Int, options: Options) extends TemplateSpan with ElementTraversal with RewritableContainer

Wraps a generic element that otherwise could not be placed directly into a template document tree. Useful when custom tags which are placed inside a template produce non-template tree elements.

Wraps a generic element that otherwise could not be placed directly into a template document tree. Useful when custom tags which are placed inside a template produce non-template tree elements.

case class TemplateRoot(content: Seq[TemplateSpan], options: Options) extends Block with TemplateSpan with TemplateSpanContainer

The root element of a template document tree.

The root element of a template document tree.

Companion:
object

Companion with a fallback instance for setups without a default template

Companion with a fallback instance for setups without a default template

Companion:
class
case class TemplateScope(content: TemplateSpan, context: ConfigValue, source: SourceFragment, options: Options) extends ElementScope[TemplateSpan] with TemplateSpan

Represents a template span element that introduces new context that can be used in substitution references in any child element.

Represents a template span element that introduces new context that can be used in substitution references in any child element.

Usually used in directive implementations and not contributing to the rendered output itself.

trait TemplateSpan extends Span

The base type for all inline elements that can be found in a template.

The base type for all inline elements that can be found in a template.

A container of other TemplateSpan elements.

A container of other TemplateSpan elements.

Common methods for simple template span containers (without additional parameters).

Common methods for simple template span containers (without additional parameters).

case class TemplateSpanSequence(content: Seq[TemplateSpan], options: Options) extends TemplateSpan with TemplateSpanContainer

A generic container element containing a list of template spans. Can be used where a sequence of spans must be inserted in a place where a single element is required by the API. Usually renderers do not treat the container as a special element and render its children as s sub flow of the parent container.

A generic container element containing a list of template spans. Can be used where a sequence of spans must be inserted in a place where a single element is required by the API. Usually renderers do not treat the container as a special element and render its children as s sub flow of the parent container.

Companion:
object
case class TemplateString(content: String, options: Options) extends TemplateSpan with TextContainer

A simple string element, representing the parts of a template that are not detected as special markup constructs and treated as raw text.

A simple string element, representing the parts of a template that are not detected as special markup constructs and treated as raw text.

case class Text(content: String, options: Options) extends Span with TextContainer

A simple text element.

A simple text element.

trait TextContainer extends Container[String]

A container for plain text.

A container for plain text.

sealed abstract class TextDocumentType extends DocumentType

Base type for all document type descriptors for text input.

Base type for all document type descriptors for text input.

case class Title(content: Seq[Span], options: Options) extends Block with SpanContainer

The (optional) title of the document.

The (optional) title of the document.

Companion:
object
Companion:
class
case class TitledBlock(title: Seq[Span], content: Seq[Block], options: Options) extends Block with BlockContainer

Generic block element with a title. Often combined with the the styles attribute of the options parameter to provide additional render hints.

Generic block element with a title. Often combined with the the styles attribute of the options parameter to provide additional render hints.

Generically builds a tree structure out of a flat sequence of elements with a Path property that signifies the position in the tree. Essentially factors recursion out of the tree building process.

Generically builds a tree structure out of a flat sequence of elements with a Path property that signifies the position in the tree. Essentially factors recursion out of the tree building process.

sealed trait TreeContent extends Navigatable

A titled, positional element in the document tree.

A titled, positional element in the document tree.

case class TreeCursor(target: DocumentTree, parent: Option[TreeCursor], root: RootCursor, config: Config, position: TreePosition) extends Cursor

Cursor for an entire document tree, providing access to all child cursors of this tree and allowing to trigger rewrite operations.

Cursor for an entire document tree, providing access to all child cursors of this tree and allowing to trigger rewrite operations.

Value parameters:
config

the configuration associated with this tree

parent

the immediate parent of this tree or None if this is the root

position

the position of this tree within the document tree

root

the root of this tree

target

the document tree this cursor points to

Companion:
object
object TreeCursor
Companion:
class
class TreePosition extends Ordered[TreePosition]

The position of an element within a document tree.

The position of an element within a document tree.

Companion:
object
Companion:
class

The structure of a document tree.

The structure of a document tree.

trait Unresolved extends Element

Represents an element that needs to be resolved in an AST transformation step.

Represents an element that needs to be resolved in an AST transformation step.

Passing documents that still contain elements of this kind to a renderer will usually be treated as errors.

case class UnresolvedDocument(document: Document, config: ConfigParser)

A temporary structure usually not exposed to user code. It holds a document with an empty Config instance and its actual config (obtained from a header section if present) in unresolved form, as it needs to be resolved based on a fallback configuration later.

A temporary structure usually not exposed to user code. It holds a document with an empty Config instance and its actual config (obtained from a header section if present) in unresolved form, as it needs to be resolved based on a fallback configuration later.

sealed trait VirtualPath extends GenericPath with Product with Serializable

The abstract base for absolute and relative paths within Laika's virtual path abstraction.

The abstract base for absolute and relative paths within Laika's virtual path abstraction.

A path in Laika is always virtual and not pointing to a path in the file system, even if the data was obtained by scanning a directory. This is because in Laika transformation input can come from different sources, e.g. from two different directories merged into a single virtual tree in memory with some additional documents added programmatically without any file system reference.

Companion:
object
Companion:
class
case class ~[+A, +B](_1: A, _2: B)

A wrapper for two result values.

A wrapper for two result values.

Types

type RenderFunction = PartialFunction[Element, Unit]

Specifies a custom render function that may override the rendered output for one or more node types. For elements this function is not defined the renderer will fall back to the default renderer (or the next custom renderer, in case there are multiple).

Specifies a custom render function that may override the rendered output for one or more node types. For elements this function is not defined the renderer will fall back to the default renderer (or the next custom renderer, in case there are multiple).

type RewriteRule[T] = PartialFunction[T, RewriteAction[T]]

Specifies how a particular element, document or document tree should be rewritten.

Specifies how a particular element, document or document tree should be rewritten.

If the rule is not defined for a specific element or the rule returns a Retain action as a result the old element remains in the tree unchanged.

If it returns Remove then the node gets removed from the ast, if it returns Replace with a new element it will replace the old one.