TagFormatter

laika.api.format.TagFormatter
abstract class TagFormatter extends Formatter

Base type for formatters that produce tag-based output formats like XML or HTML.

Extends the base Formatter type and adds methods for writing text with special characters as entities and for conveniently writing tags with attributes.

Laika's internal formatters for the supported output formats HTML, XHTML for EPUB and XSL-FO for PDF all share this common API, even though they differ in implementation.

Attributes

Source
TagFormatter.scala
Graph
Supertypes
class Formatter
class Object
trait Matchable
class Any

Members list

Type members

Types

type Rep = TagFormatter

Attributes

Source
TagFormatter.scala

Value members

Abstract methods

def attributes(tag: String, styleHint: Element, attrs: Seq[(String, String)]): String

Renders all attributes derived from the style hint and the explicitly provided attributes.

Renders all attributes derived from the style hint and the explicitly provided attributes.

Attributes

Source
TagFormatter.scala

Concrete methods

def attributes(attrs: (String, String)*): String

Renders the specified attributes (passed as name-value tuples), including a preceding space character.

Renders the specified attributes (passed as name-value tuples), including a preceding space character.

Attributes

Source
TagFormatter.scala
def comment(content: String): String

Renders an HTML/XML comment.

Renders an HTML/XML comment.

Attributes

Source
TagFormatter.scala
def element(tagName: String, container: ElementContainer[_ <: Element], attrs: (String, String)*): String

Renders an element with the specified tag name, attributes derived from the container options and nested content consisting of the children of the container, all rendered on the same line.

Renders an element with the specified tag name, attributes derived from the container options and nested content consisting of the children of the container, all rendered on the same line.

Attributes

Source
TagFormatter.scala
def emptyElement(tagName: String, styleHint: Element, attrs: (String, String)*): String

Renders an empty element with the specified tag name and attributes derived from the style hint.

Renders an empty element with the specified tag name and attributes derived from the style hint.

Attributes

Source
TagFormatter.scala
def indentedElement(tagName: String, container: ElementContainer[_ <: Element], attrs: (String, String)*): String

Renders an element with the specified tag name, attributes derived from the container options and indented content consisting of the children of the container.

Renders an element with the specified tag name, attributes derived from the container options and indented content consisting of the children of the container.

Attributes

Source
TagFormatter.scala
def optAttributes(attrs: (String, Option[String])*): Seq[(String, String)]

Renders the specified attributes (passed as name-value tuples), filtering empty values from the provided list of name-value pairs.

Renders the specified attributes (passed as name-value tuples), filtering empty values from the provided list of name-value pairs.

Attributes

Source
TagFormatter.scala
def rawElement(tagName: String, styleHint: Element, content: String, attrs: (String, String)*): String

Renders an element with the specified tag name, attributes derived from the style hint and content based on the provided string that is interpreted as already rendered in the target format.

Renders an element with the specified tag name, attributes derived from the style hint and content based on the provided string that is interpreted as already rendered in the target format. That means that no character escaping will be performed on the provided content.

Attributes

Source
TagFormatter.scala
def text(str: String): String

Renders the specified string on the same line, with all special XML/HTML characters converted to entities.

Renders the specified string on the same line, with all special XML/HTML characters converted to entities.

Attributes

Source
TagFormatter.scala
def textElement(tagName: String, container: TextContainer, attrs: (String, String)*): String

Renders a text element with the specified tag name, attributes derived from the container options and content based on the container's content that gets rendered with all special XML/HTML characters converted to entities.

Renders a text element with the specified tag name, attributes derived from the container options and content based on the container's content that gets rendered with all special XML/HTML characters converted to entities.

Attributes

Source
TagFormatter.scala

Inherited methods

def child(element: Element): String

Renders the specified element on the current line.

Renders the specified element on the current line.

Attributes

Inherited from:
Formatter
Source
Formatter.scala
def childPerLine(elements: Seq[Element]): String

Renders the specified elements, each of them on a new line using the current level of indentation.

Renders the specified elements, each of them on a new line using the current level of indentation.

Attributes

Inherited from:
Formatter
Source
Formatter.scala
def children(elements: Seq[Element]): String

Renders the specified elements, all on the same line, without any separators.

Renders the specified elements, all on the same line, without any separators.

Attributes

Inherited from:
Formatter
Source
Formatter.scala

The active element currently being rendered.

The active element currently being rendered.

Attributes

Inherited from:
Formatter
Source
Formatter.scala
def forMessage(message: RuntimeMessage)(whenEnabled: String): String

Renders the specified string only when the given message has at least the minimum message level defined for this formatter instance.

Renders the specified string only when the given message has at least the minimum message level defined for this formatter instance.

Attributes

Inherited from:
Formatter
Source
Formatter.scala
def indented(f: Rep => String): String

Invokes the specified render function with a new formatter that is indented one level to the right of this formatter.

Invokes the specified render function with a new formatter that is indented one level to the right of this formatter.

Attributes

Inherited from:
Formatter
Source
Formatter.scala
def indentedChildren(elements: Seq[Element]): String

Renders the specified elements, each of them on a new line with the indentation increased one level to the right.

Renders the specified elements, each of them on a new line with the indentation increased one level to the right.

Attributes

Inherited from:
Formatter
Source
Formatter.scala
def parents: List[Element]

The stack of parent elements of this formatter in recursive rendering, with the root element being the last in the list.

The stack of parent elements of this formatter in recursive rendering, with the root element being the last in the list. Does not include the current element.

Attributes

Inherited from:
Formatter
Source
Formatter.scala
def path: Path

The target path of the currently rendered document.

The target path of the currently rendered document.

Attributes

Inherited from:
Formatter
Source
Formatter.scala

Translates paths of input documents to the corresponding output path.

Translates paths of input documents to the corresponding output path.

This API needs to be used for rendering all internal links.

Attributes

Inherited from:
Formatter
Source
Formatter.scala

The styles the new renderer should apply to the rendered elements.

The styles the new renderer should apply to the rendered elements.

Only used for some special render formats like XSL-FO. In case of HTML, for example, styles are only copied over to the output directory and not processed by the formatter at all. For all those formats this set is always empty.

Attributes

Inherited from:
Formatter
Source
Formatter.scala
def withMinIndentation(minIndent: Int)(f: Rep => String): String

Invokes the specified render function with a formatter that has at least the specified minimum level of indentation.

Invokes the specified render function with a formatter that has at least the specified minimum level of indentation. If this instance already has an indentation equal or greater to this value, the current level of indentation will be kept.

Attributes

Inherited from:
Formatter
Source
Formatter.scala
def withoutIndentation(f: Rep => String): String

Invokes the specified render function with a new formatter that has all indentation disabled.

Invokes the specified render function with a new formatter that has all indentation disabled.

This is usually only required when rendering literal elements or source code where rendered whitespace would be significant.

Attributes

Inherited from:
Formatter
Source
Formatter.scala

Inherited fields

val newLine: String

A newline character followed by whitespace matching the indentation level of this instance.

A newline character followed by whitespace matching the indentation level of this instance.

Attributes

Inherited from:
Formatter
Source
Formatter.scala