let disk_build = require('@ndcode/disk_build')
let fs = require('fs')
let path = require('path')
+let slugify = require('slugify')
let util = require('util')
let fs_readFile = util.promisify(fs.readFile)
let fs_writeFile = util.promisify(fs.writeFile)
-let svgo = new SVGO(
- {
- plugins: [
- {cleanupAttrs: true},
- {removeDoctype: true},
- {removeXMLProcInst: true},
- {removeComments: true},
- {removeMetadata: true},
- {removeTitle: true},
- {removeDesc: true},
- {removeUselessDefs: true},
- {removeEditorsNSData: true},
- {removeEmptyAttrs: true},
- {removeHiddenElems: true},
- {removeEmptyText: true},
- {removeEmptyContainers: true},
- {removeViewBox: false},
- {cleanupEnableBackground: true},
- {convertStyleToAttrs: true},
- {convertColors: true},
- {convertPathData: true},
- {convertTransform: true},
- {removeUnknownsAndDefaults: true},
- {removeNonInheritableGroupAttrs: true},
- {removeUselessStrokeAndFill: true},
- {removeUnusedNS: true},
- {cleanupIDs: true},
- {cleanupNumericValues: true},
- {moveElemsAttrsToGroup: true},
- {moveGroupAttrsToElems: true},
- {collapseGroups: true},
- {removeRasterImages: false},
- {mergePaths: true},
- {convertShapeToPath: true},
- {sortAttrs: true},
- {removeDimensions: true}//,
- //{removeAttrs: {attrs: '(stroke|fill)'}}
- ]
- }
-)
let MinSVGCache = function(diag1, diag) {
if (!this instanceof MinSVGCache)
MinSVGCache.prototype = Object.create(BuildCache.prototype)
MinSVGCache.prototype.build = async function(key, result) {
+ let svgo = new SVGO(
+ {
+ plugins: [
+ {cleanupAttrs: true},
+ {removeDoctype: true},
+ {removeXMLProcInst: true},
+ {removeComments: true},
+ {removeMetadata: true},
+ {removeTitle: true},
+ {removeDesc: true},
+ {removeUselessDefs: true},
+ {removeEditorsNSData: true},
+ {removeEmptyAttrs: true},
+ {removeHiddenElems: true},
+ {removeEmptyText: true},
+ {removeEmptyContainers: true},
+ {removeViewBox: false},
+ {cleanupEnableBackground: true},
+ {convertStyleToAttrs: true},
+ {convertColors: true},
+ {convertPathData: true},
+ {convertTransform: true},
+ {removeUnknownsAndDefaults: true},
+ {removeNonInheritableGroupAttrs: true},
+ {removeUselessStrokeAndFill: true},
+ {removeUnusedNS: true},
+ {cleanupIDs: {prefix: slugify(key) + '_'}},
+ {cleanupNumericValues: true},
+ {moveElemsAttrsToGroup: true},
+ {moveGroupAttrsToElems: true},
+ {collapseGroups: true},
+ {removeRasterImages: false},
+ {mergePaths: true},
+ {convertShapeToPath: true},
+ {sortAttrs: true} //,
+ //{removeDimensions: true}//,
+ //{removeAttrs: {attrs: '(stroke|fill)'}}
+ ]
+ }
+ )
let render = await disk_build(
key,
async temp_pathname => {