*/
let BuildCache = require('@ndcode/build_cache')
-let SVGO = require('svgo')
+let svgo = require('svgo')
let assert = require('assert')
let disk_build = require('@ndcode/disk_build')
let fs = require('fs')
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 => {
let render = await svgo.optimize(
await fs_readFile(key, {encoding: 'utf-8'}),
- {path: key}
+ {
+ path: key,
+ multipass: true,
+ plugins: [
+ {name: 'cleanupAttrs'},
+ {name: 'removeDoctype'},
+ {name: 'removeXMLProcInst'},
+ {name: 'removeComments'},
+ {name: 'removeMetadata'},
+ {name: 'removeTitle'},
+ {name: 'removeDesc'},
+ {name: 'removeUselessDefs'},
+ {name: 'removeEditorsNSData'},
+ {name: 'removeEmptyAttrs'},
+ {name: 'removeHiddenElems'},
+ {name: 'removeEmptyText'},
+ {name: 'removeEmptyContainers'},
+ //{name: 'removeViewBox'},
+ {name: 'cleanupEnableBackground'},
+ {name: 'convertStyleToAttrs'},
+ {name: 'convertColors'},
+ {name: 'convertPathData'},
+ {name: 'convertTransform'},
+ {name: 'removeUnknownsAndDefaults'},
+ {name: 'removeNonInheritableGroupAttrs'},
+ {name: 'removeUselessStrokeAndFill'},
+ {name: 'removeUnusedNS'},
+ {name: 'cleanupIDs', prefix: slugify(key) + '_'},
+ {name: 'cleanupNumericValues'},
+ {name: 'moveElemsAttrsToGroup'},
+ {name: 'moveGroupAttrsToElems'},
+ {name: 'collapseGroups'},
+ //{name: 'removeRasterImages'},
+ {name: 'mergePaths'},
+ {name: 'convertShapeToPath'},
+ {name: 'sortAttrs'} //,
+ //{name: 'removeDimensions'}//,
+ //{name: 'removeAttrs', attrs: '(stroke|fill)'}
+ ]
+ }
)
return /*await*/ fs_writeFile(
temp_pathname,