A tiny wrapper over posthtml with the same API optimized for working with SVG.
- Content is parsed in xml mode.
- Properly renders SVG self-closing tags (
<path />
,<line />
etc). - Processing result is instance of Tree class which is wrapper around Array and backward compatible with posthtml parser.
PostSVG tree has several useful methods for work with AST:
const { parse } = require('postsvg');
const tree = parse('<svg><path /><path class="qwe" /></svg>');
/**
* `root` getter returns <svg> node
* @return {Node}
*/
tree.root;
/**
* Find all <path/> nodes
* @return {Array<Node>}
*/
tree.select('path');
/**
* Select only nodes with class="qwe"
* @return {Array<Node>}
*/
tree.select('.qwe');
/**
* Fill each <path/> node with red color
*/
tree.each('path', node => node.attrs.fill = 'red');
Node has following structure:
Node<{
tag: string,
attrs?: Object,
content?: Array<Node>
}>