Format SVG after generation to remove empty spaces and fix indentations

This commit is contained in:
lowlighter
2021-03-30 13:24:16 +02:00
parent 190dd397de
commit 576d7aa337
3 changed files with 38 additions and 2 deletions

35
package-lock.json generated
View File

@@ -33,7 +33,8 @@
"svgo": "^2.2.0", "svgo": "^2.2.0",
"twemoji-parser": "^13.0.0", "twemoji-parser": "^13.0.0",
"vue": "^2.6.12", "vue": "^2.6.12",
"vue-prism-component": "^1.2.0" "vue-prism-component": "^1.2.0",
"xml-formatter": "^2.4.0"
}, },
"devDependencies": { "devDependencies": {
"eslint": "^7.21.0", "eslint": "^7.21.0",
@@ -11998,6 +11999,17 @@
"xtend": "^4.0.0" "xtend": "^4.0.0"
} }
}, },
"node_modules/xml-formatter": {
"version": "2.4.0",
"resolved": "https://registry.npmjs.org/xml-formatter/-/xml-formatter-2.4.0.tgz",
"integrity": "sha512-xTQ2IfbkCQKn0DGN5SD5KUgTgVohWiolyOXTLUHKJczIuSeGonN0BPduB9VQR5HOEuT1KOHQsOHSmTpU76zpUA==",
"dependencies": {
"xml-parser-xo": "^3.1.1"
},
"engines": {
"node": ">= 10"
}
},
"node_modules/xml-name-validator": { "node_modules/xml-name-validator": {
"version": "3.0.0", "version": "3.0.0",
"resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz",
@@ -12009,6 +12021,14 @@
"resolved": "https://registry.npmjs.org/xml-parse-from-string/-/xml-parse-from-string-1.0.1.tgz", "resolved": "https://registry.npmjs.org/xml-parse-from-string/-/xml-parse-from-string-1.0.1.tgz",
"integrity": "sha1-qQKekp09vN7RafPG4oI42VpdWig=" "integrity": "sha1-qQKekp09vN7RafPG4oI42VpdWig="
}, },
"node_modules/xml-parser-xo": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/xml-parser-xo/-/xml-parser-xo-3.1.1.tgz",
"integrity": "sha512-gq1nDlJxjKQpPPZUhLbJ52pghtlB4Rz6LAQULm3SF6xzOYVnUloBglNhJR9vtZB3vIxMN/R3nZTf3qmun+6GCg==",
"engines": {
"node": ">= 10"
}
},
"node_modules/xml2js": { "node_modules/xml2js": {
"version": "0.4.23", "version": "0.4.23",
"resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz",
@@ -22051,6 +22071,14 @@
"xtend": "^4.0.0" "xtend": "^4.0.0"
} }
}, },
"xml-formatter": {
"version": "2.4.0",
"resolved": "https://registry.npmjs.org/xml-formatter/-/xml-formatter-2.4.0.tgz",
"integrity": "sha512-xTQ2IfbkCQKn0DGN5SD5KUgTgVohWiolyOXTLUHKJczIuSeGonN0BPduB9VQR5HOEuT1KOHQsOHSmTpU76zpUA==",
"requires": {
"xml-parser-xo": "^3.1.1"
}
},
"xml-name-validator": { "xml-name-validator": {
"version": "3.0.0", "version": "3.0.0",
"resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz",
@@ -22062,6 +22090,11 @@
"resolved": "https://registry.npmjs.org/xml-parse-from-string/-/xml-parse-from-string-1.0.1.tgz", "resolved": "https://registry.npmjs.org/xml-parse-from-string/-/xml-parse-from-string-1.0.1.tgz",
"integrity": "sha1-qQKekp09vN7RafPG4oI42VpdWig=" "integrity": "sha1-qQKekp09vN7RafPG4oI42VpdWig="
}, },
"xml-parser-xo": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/xml-parser-xo/-/xml-parser-xo-3.1.1.tgz",
"integrity": "sha512-gq1nDlJxjKQpPPZUhLbJ52pghtlB4Rz6LAQULm3SF6xzOYVnUloBglNhJR9vtZB3vIxMN/R3nZTf3qmun+6GCg=="
},
"xml2js": { "xml2js": {
"version": "0.4.23", "version": "0.4.23",
"resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz",

View File

@@ -47,7 +47,8 @@
"svgo": "^2.2.0", "svgo": "^2.2.0",
"twemoji-parser": "^13.0.0", "twemoji-parser": "^13.0.0",
"vue": "^2.6.12", "vue": "^2.6.12",
"vue-prism-component": "^1.2.0" "vue-prism-component": "^1.2.0",
"xml-formatter": "^2.4.0"
}, },
"devDependencies": { "devDependencies": {
"eslint": "^7.21.0", "eslint": "^7.21.0",

View File

@@ -3,6 +3,7 @@
import ejs from "ejs" import ejs from "ejs"
import util from "util" import util from "util"
import SVGO from "svgo" import SVGO from "svgo"
import xmlformat from "xml-formatter"
//Setup //Setup
export default async function metrics({login, q}, {graphql, rest, plugins, conf, die = false, verify = false, convert = null}, {Plugins, Templates}) { export default async function metrics({login, q}, {graphql, rest, plugins, conf, die = false, verify = false, convert = null}, {Plugins, Templates}) {
@@ -71,6 +72,7 @@
if (q["config.gemoji"]) if (q["config.gemoji"])
rendered = await imports.svg.gemojis(rendered, {rest}) rendered = await imports.svg.gemojis(rendered, {rest})
//Optimize rendering //Optimize rendering
rendered = xmlformat(rendered, {lineSeparator:"\n"})
if ((conf.settings?.optimize)&&(!q.raw)) { if ((conf.settings?.optimize)&&(!q.raw)) {
console.debug(`metrics/compute/${login} > optimize`) console.debug(`metrics/compute/${login} > optimize`)
if (experimental.has("--optimize")) { if (experimental.has("--optimize")) {