From 576d7aa33768b12255afe891b6524833cc8fffea Mon Sep 17 00:00:00 2001 From: lowlighter <22963968+lowlighter@users.noreply.github.com> Date: Tue, 30 Mar 2021 13:24:16 +0200 Subject: [PATCH] Format SVG after generation to remove empty spaces and fix indentations --- package-lock.json | 35 ++++++++++++++++++++++++++++++++++- package.json | 3 ++- source/app/metrics/index.mjs | 2 ++ 3 files changed, 38 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index c8129efb..13a83a6f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -33,7 +33,8 @@ "svgo": "^2.2.0", "twemoji-parser": "^13.0.0", "vue": "^2.6.12", - "vue-prism-component": "^1.2.0" + "vue-prism-component": "^1.2.0", + "xml-formatter": "^2.4.0" }, "devDependencies": { "eslint": "^7.21.0", @@ -11998,6 +11999,17 @@ "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": { "version": "3.0.0", "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", "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": { "version": "0.4.23", "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", @@ -22051,6 +22071,14 @@ "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": { "version": "3.0.0", "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", "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": { "version": "0.4.23", "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", diff --git a/package.json b/package.json index 11649580..62c5e8cf 100644 --- a/package.json +++ b/package.json @@ -47,7 +47,8 @@ "svgo": "^2.2.0", "twemoji-parser": "^13.0.0", "vue": "^2.6.12", - "vue-prism-component": "^1.2.0" + "vue-prism-component": "^1.2.0", + "xml-formatter": "^2.4.0" }, "devDependencies": { "eslint": "^7.21.0", diff --git a/source/app/metrics/index.mjs b/source/app/metrics/index.mjs index 7b5c4321..ea5eb1a3 100644 --- a/source/app/metrics/index.mjs +++ b/source/app/metrics/index.mjs @@ -3,6 +3,7 @@ import ejs from "ejs" import util from "util" import SVGO from "svgo" + import xmlformat from "xml-formatter" //Setup 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"]) rendered = await imports.svg.gemojis(rendered, {rest}) //Optimize rendering + rendered = xmlformat(rendered, {lineSeparator:"\n"}) if ((conf.settings?.optimize)&&(!q.raw)) { console.debug(`metrics/compute/${login} > optimize`) if (experimental.has("--optimize")) {