TagFormatter

laika.render.TagFormatter
See theTagFormatter companion object
abstract class TagFormatter[Rep <: BaseFormatter[Rep]](renderChild: (Rep, Element) => String, currentElement: Element, parents: List[Element], pathTranslator: PathTranslator, indentation: Indentation, messageFilter: MessageFilter) extends BaseFormatter[Rep]

Base type for formatters that produce tag-based output formats like XML or HTML. Extends the BaseFormatter and adds methods for writing text with special characters as entities and for conveniently writing tags with attributes.

Value parameters

currentElement

the active element currently being rendered

indentation

the indentation mechanism for this formatter

messageFilter

the filter to apply before rendering runtime messages

parents

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

pathTranslator

translates paths of input documents to the corresponding output path

renderChild

the function to use for rendering child elements

Attributes

Companion
object
Graph
Supertypes
class BaseFormatter[Rep]
class Object
trait Matchable
class Any
Known subtypes
Self type
Rep

Members list

Type members

Types

type StyleHint

Value members

Abstract methods

def attributes(tag: String, styleHint: StyleHint, 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

Concrete methods

def attribute(name: String, value: String): String

Renders the specified attribute including a preceding space character.

Renders the specified attribute including a preceding space character.

Attributes

def attributes(attrs: Seq[(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

def comment(content: String): String

Renders an HTML/XML comment.

Renders an HTML/XML comment.

Attributes

def element(tagName: String, styleHint: StyleHint, content: Seq[Element], attrs: (String, String)*): String

Renders an element with the specified tag name, attributes derived from the style hint and content consisting of the provided child elements, all rendered on the same line.

Renders an element with the specified tag name, attributes derived from the style hint and content consisting of the provided child elements, all rendered on the same line.

Attributes

def emptyElement(tagName: String, styleHint: StyleHint, 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

def emptyElement(tagName: String): String

Renders an empty element with the specified tag name.

Renders an empty element with the specified tag name.

Attributes

def indentedElement(tagName: String, styleHint: StyleHint, content: Seq[Element], attrs: (String, String)*): String

Renders an element with the specified tag name, attributes derived from the style hint and indented content consisting of the provided child elements.

Renders an element with the specified tag name, attributes derived from the style hint and indented content consisting of the provided child elements.

Attributes

def optAttributes(attrs: (String, Option[String])*): Seq[(String, String)]

Filters empty values from the provided list of name-value pairs.

Filters empty values from the provided list of name-value pairs.

Attributes

def rawElement(tagName: String, styleHint: StyleHint, 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. That means that no character escaping will be performed on the provided content.

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

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

def textElement(tagName: String, styleHint: StyleHint, txt: String, attrs: (String, String)*): String

Renders a text element with the specified tag name, attributes derived from the style hint and content based on the provided text 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 style hint and content based on the provided text content that gets rendered with all special XML/HTML characters converted to entities.

Attributes

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:
BaseFormatter
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:
BaseFormatter
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:
BaseFormatter
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:
BaseFormatter
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:
BaseFormatter
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:
BaseFormatter
protected def withChild(element: Element): Rep

Attributes

Inherited from:
BaseFormatter
protected def withIndentation(newIndentation: Indentation): Rep

Attributes

Inherited from:
BaseFormatter
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. If this instance already has an indentation equal or greater to this value, the current level of indentation will be kept.

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:
BaseFormatter
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:
BaseFormatter

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:
BaseFormatter