highlight (version 0.4.7.2)

renderer: highlight renderer

Description

The function builds a renderer, suitable for the renderer argument of the highlight function. In the highlight process, renderers are responsible to render the information in the target markup language.

Usage

renderer(translator, formatter, space, newline, header, footer, ...)

Arguments

translator

This argument should be a function with one argument. The translator needs to work token characters so that they display nicely in the target markup language.

formatter

The formatter should be a function with at least two arguments: the tokens and the styles. These two arguments are supplied to the formatter by the highlight function. The formatter should wrap tokens and styles into the target markup language. For example, the formatter used by the html renderer makes a <span> tag of class given by the styles and content given by the token.

space

This should be a function with no argument. The output of this function should be a character vector of length one giving the representation of a space character in the target language. For example, in the latex renderer, the function returns "{\ }".

newline

This should be a function with no argument. The output of the function is a character vector of length one giving the representation of a newline character in the target language.

header

This should be a function with no argument. The output of this function is a character vector of arbitrary length. The elements of the output are written before the highlighted content. headers and footers are used to embed the highlighted tokens into some markup. For example, the header used in the html renderer starts a <pre> tag that is closed by the footer. headers and footer might also be used to write style definitions such as CSS, STY, ...

footer

This should be a function with no argument. The output of this function is written after all tokens.

Additional arguments. This might be used to store additional renderer specific objects.

Value

A renderer object. Renderer objects define the interface expected by the highlight function. At the moment, a renderer object is a list of class renderer containing elements: translator, formatter, space, newline, header and footer.

Details

Implementations of renderers should call this function to ensure that a proper renderer is created. At the moment, no checking is performed to ensure that the built object complies with the expected interface, but this is very likely to change.

See Also

The renderer_html implements a renderer using html markup, <span> tags and CSS.

The renderer_latex implements a latex renderer.