Donner
C++20 SVG rendering library
Loading...
Searching...
No Matches
donner::svg::parser::SVGParser::Options Struct Reference

Options to modify the parsing behavior. More...

#include "donner/svg/parser/SVGParser.h"

Public Member Functions

constexpr Options ()
 Default options.
 

Public Attributes

bool disableUserAttributes = true
 By default, the parser will ignore user-defined attributes (only presentation attributes will be parsed), to optimize for performance.
 
bool enableExperimental = false
 Enable experimental or incomplete features.
 
bool parseAsInlineSVG = false
 Parse as inlined SVG content.
 

Detailed Description

Options to modify the parsing behavior.

Examples
svg_to_png.cc.

Member Data Documentation

◆ disableUserAttributes

bool donner::svg::parser::SVGParser::Options::disableUserAttributes = true

By default, the parser will ignore user-defined attributes (only presentation attributes will be parsed), to optimize for performance.

This behavior breaks some CSS matchers, which may use user-defined attributes to control styling.

For example:

<svg>
<style>
rect[fill="red"] { fill: green; }
rect[my-custom-attribute="value"] { stroke: green; }
</style>
<rect x="10" y="20" width="30" height="40"
my-custom-attribute="value"
fill="red" stroke="red" />
</svg>

If user attributes are disabled (disableUserAttributes is true), the above example will only match the first rule, because my-custom-attribute will be ignored during parsing.

To support rendering documents that use user-defined attributes, set this to false.

Examples
svg_to_png.cc.

◆ enableExperimental

bool donner::svg::parser::SVGParser::Options::enableExperimental = false

Enable experimental or incomplete features.

This gates features which are not yet fully implemented and do not meet the quality and stability bar of the rest of the project.

This currently gates "<filter>", which has very limited support.

Examples
svg_to_png.cc.

◆ parseAsInlineSVG

bool donner::svg::parser::SVGParser::Options::parseAsInlineSVG = false

Parse as inlined SVG content.

This will treat the input as a fragment of SVG content, rather than a full SVG document. This is useful for parsing SVG content embedded in HTML or other XML documents.

This enables the following shorthand without the xmlns attribute:

<svg><rect /></svg>

Instead of the full document:

<svg xmlns="http://www.w3.org/2000/svg"><rect /></svg>

The documentation for this struct was generated from the following file: