1234567891011121314151617181920212223242526272829303132 |
- const processor = require('posthtml-svg-mode');
- const renameId = require('posthtml-rename-id');
- const normalizeViewBox = require('./transformations/normalize-viewbox');
- const rasterToSVG = require('./transformations/raster-to-svg');
- const prefixStyleSelectors = require('./transformations/prefix-style-selectors');
- const svgToSymbol = require('./transformations/svg-to-symbol');
- /**
- * @param {Object} options
- * @param {string} [options.id]
- * @param {string} options.content
- * @param {FileRequest} options.request
- * @return {Promise<PostHTMLProcessingResult>}
- */
- function symbolFactory(options) {
- const { id } = options;
- const plugins = [];
- // convert raster image to svg
- const content = Buffer.isBuffer(options.content)
- ? rasterToSVG(options.content)
- : options.content;
- plugins.push(normalizeViewBox());
- plugins.push(prefixStyleSelectors(`#${id}`));
- plugins.push(renameId(`${id}_[id]`));
- plugins.push(svgToSymbol({ id }));
- return processor(plugins).process(content);
- }
- module.exports = symbolFactory;
|