| 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;
 |