From 02ddae113b4de08247d180488f0a18534d61d7a5 Mon Sep 17 00:00:00 2001 From: lowlighter <22963968+lowlighter@users.noreply.github.com> Date: Thu, 4 Mar 2021 21:40:59 +0100 Subject: [PATCH] Add option "experimental_features" --- source/app/metrics/index.mjs | 8 +++++--- source/plugins/core/metadata.yml | 9 +++++++++ 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/source/app/metrics/index.mjs b/source/app/metrics/index.mjs index 750251fa..cf9f06ce 100644 --- a/source/app/metrics/index.mjs +++ b/source/app/metrics/index.mjs @@ -26,6 +26,7 @@ const {queries} = conf const data = {animated:true, base:{}, config:{}, errors:[], plugins:{}, computed:{}} const imports = {plugins:Plugins, templates:Templates, metadata:conf.metadata, ...utils} + const experimental = new Set(decodeURIComponent(q["experimental.features"] ?? "").split(" ").map(x => x.trim().toLocaleLowerCase()).filter(x => x)) //Partial parts { @@ -64,9 +65,7 @@ //Optimize rendering if ((conf.settings?.optimize)&&(!q.raw)) { console.debug(`metrics/compute/${login} > optimize`) - console.debug(`metrics/compute/${login} > optimize > this feature is currently disabled due to display issues`) - const disabled = false - if (disabled) { + if (experimental.has("--optimize")) { const {error, data:optimized} = await SVGO.optimize(rendered, {multipass:true, plugins:SVGO.extendDefaultPlugins([ //Additional cleanup {name:"cleanupListOfValues"}, @@ -79,7 +78,10 @@ if (error) throw new Error(`Could not optimize SVG: \n${error}`) rendered = optimized + console.debug(`metrics/compute/${login} > optimize > success`) } + else + console.debug(`metrics/compute/${login} > optimize > this feature is currently disabled due to display issues (use --optimize flag in experimental features to force enable it)`) } //Verify svg if (verify) { diff --git a/source/plugins/core/metadata.yml b/source/plugins/core/metadata.yml index 8c4a72fd..2655dbb5 100644 --- a/source/plugins/core/metadata.yml +++ b/source/plugins/core/metadata.yml @@ -178,6 +178,15 @@ inputs: type: boolean default: no + # Experimental features + experimental_features: + description: Experimental features + type: array + format: space-separated + default: "" + values: + - --optimize + # Use mocked data to bypass external APIs use_mocked_data: description: Use mocked data instead of live APIs