Fix prefix-setting bug causing SVGs not to display, make the prefix shorter master
authorNick Downing <nick@ndcode.org>
Fri, 14 Jan 2022 13:12:09 +0000 (00:12 +1100)
committerNick Downing <nick@ndcode.org>
Fri, 14 Jan 2022 13:12:16 +0000 (00:12 +1100)
MinSVGCache.js
package.json

index 414f5e4..296dc59 100644 (file)
@@ -27,7 +27,6 @@ let assert = require('assert')
 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)
@@ -46,6 +45,11 @@ MinSVGCache.prototype.build = async function(key, result) {
   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'}),
         {
@@ -75,7 +79,7 @@ MinSVGCache.prototype.build = async function(key, result) {
             {name: 'removeNonInheritableGroupAttrs'},
             {name: 'removeUselessStrokeAndFill'},
             {name: 'removeUnusedNS'},
-            {name: 'cleanupIDs', prefix: slugify(key) + '_'},
+            {name: 'cleanupIDs', params: {prefix: slug + '_'}},
             {name: 'cleanupNumericValues'},
             {name: 'moveElemsAttrsToGroup'},
             {name: 'moveGroupAttrsToElems'},
@@ -85,12 +89,13 @@ MinSVGCache.prototype.build = async function(key, result) {
             {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,
index ab68f24..64e4eba 100644 (file)
@@ -30,7 +30,6 @@
     "@ndcode/build_cache": "^0.1.0",
     "@ndcode/disk_build": "^0.1.1",
     "assert": "^1.4.1",
-    "slugify": "^1.0.0",
     "svgo": "^2.8.0"
   }
 }