pygments.formatters.svg

Formatter for SVG output.

copyright:Copyright 2006-2013 by the Pygments team, see AUTHORS.
license:BSD, see LICENSE for details.
class pygments.formatters.svg.SvgFormatter(**options)[source]

Format tokens as an SVG graphics file. This formatter is still experimental. Each line of code is a <text> element with explicit x and y coordinates containing <tspan> elements with the individual token styles.

By default, this formatter outputs a full SVG document including doctype declaration and the <svg> root element.

New in Pygments 0.9.

Additional options accepted:

nowrap
Don’t wrap the SVG <text> elements in <svg><g> elements and don’t add a XML declaration and a doctype. If true, the fontfamily and fontsize options are ignored. Defaults to False.
fontfamily
The value to give the wrapping <g> element’s font-family attribute, defaults to "monospace".
fontsize
The value to give the wrapping <g> element’s font-size attribute, defaults to "14px".
xoffset
Starting offset in X direction, defaults to 0.
yoffset
Starting offset in Y direction, defaults to the font size if it is given in pixels, or 20 else. (This is necessary since text coordinates refer to the text baseline, not the top edge.)
ystep
Offset to add to the Y coordinate for each subsequent line. This should roughly be the text size plus 5. It defaults to that value if the text size is given in pixels, or 25 else.
spacehack
Convert spaces in the source to &#160;, which are non-breaking spaces. SVG provides the xml:space attribute to control how whitespace inside tags is handled, in theory, the preserve value could be used to keep all whitespace as-is. However, many current SVG viewers don’t obey that rule, so this option is provided as a workaround and defaults to True.
format_unencoded(tokensource, outfile)[source]

Format tokensource, an iterable of (tokentype, tokenstring) tuples and write it into outfile.

For our implementation we put all lines in their own ‘line group’.

Project Versions

This Page