simplesvg
Version:
A very simple svg wrapper, inspired by original vivagraph
27 lines (22 loc) • 684 B
JavaScript
var parser = require('./domParser.js');
var svg = require('../');
module.exports = compile;
function compile(svgText) {
try {
svgText = addNamespaces(svgText);
return svg(parser.parseFromString(svgText, "text/xml").documentElement);
} catch (e) {
throw e;
}
}
function addNamespaces(text) {
if (!text) return;
var namespaces = 'xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg"';
var match = text.match(/^<\w+/);
if (match) {
var tagLength = match[0].length;
return text.substr(0, tagLength) + ' ' + namespaces + ' ' + text.substr(tagLength);
} else {
throw new Error('Cannot parse input text: invalid xml?');
}
}