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 render = await disk_build(
key,
async temp_pathname => {
+ // we will assume directory can be stripped from path when slugifying,
+ // it could cause problems with same-named SVGs in different directories
+ // when displayed on same page, but this seems quite unlikely to happen
+ let slug = path.basename(key, '.svg')
+
let render = await svgo.optimize(
await fs_readFile(key, {encoding: 'utf-8'}),
{
{name: 'removeNonInheritableGroupAttrs'},
{name: 'removeUselessStrokeAndFill'},
{name: 'removeUnusedNS'},
- {name: 'cleanupIDs', prefix: slugify(key) + '_'},
+ {name: 'cleanupIDs', params: {prefix: slug + '_'}},
{name: 'cleanupNumericValues'},
{name: 'moveElemsAttrsToGroup'},
{name: 'moveGroupAttrsToElems'},
{name: 'convertShapeToPath'},
{name: 'sortAttrs'} //,
//{name: 'removeDimensions'}//,
- //{name: 'removeAttrs', attrs: '(stroke|fill)'}
+ //{name: 'removeAttrs', params: {attrs: '(stroke|fill)'}}
]
}
)
if (render.error)
throw new Error(render.error)
+
return /*await*/ fs_writeFile(
temp_pathname,
render.data,