Fix: fix sauna theme

This commit is contained in:
Pieter Vander Vennet 2025-07-03 01:47:22 +02:00
parent 01ac1d0944
commit ccbbba5628
3 changed files with 115 additions and 88 deletions

View file

@ -30,8 +30,7 @@
"images", "images",
"reviews", "reviews",
{ {
"builtin": "toilet_at_amenity.toilet-access", "id": "sauna_access",
"override": {
"condition": "leisure!=water_park", "condition": "leisure!=water_park",
"question": { "question": {
"en": "Is this sauna publicly accessible?", "en": "Is this sauna publicly accessible?",
@ -39,16 +38,7 @@
}, },
"render": { "render": {
"en": "Access is {sauna:access}", "en": "Access is {sauna:access}",
"de": "Zugang ist {sauna:access}", "de": "Zugang ist {sauna:access}"
"fr": "{sauna:access}",
"nl": "{sauna:access}",
"it": "{sauna:access}",
"es": "{sauna:access}",
"da": "{sauna:access}",
"ca": "{sauna:access}",
"cs": "{sauna:access}",
"sl": "{sauna:access}",
"uk": "{sauna:access}"
}, },
"freeform": { "freeform": {
"key": "sauna:access" "key": "sauna:access"
@ -113,7 +103,6 @@
"hideInAnswer": true "hideInAnswer": true
} }
] ]
}
}, },
"contact", "contact",
"fixme" "fixme"

View file

@ -6,8 +6,8 @@
"en": "Sauna" "en": "Sauna"
}, },
"layers": [ "layers": [
"./assets/layers/sauna/sauna.json", "sauna",
"./assets/layers/sauna/sauna_at_leisure.json" "sauna_at_leisure"
], ],
"description": { "description": {
"en": "Sauna" "en": "Sauna"

View file

@ -6,6 +6,7 @@ import {
MappingConfigJson, MappingConfigJson,
QuestionableTagRenderingConfigJson, QuestionableTagRenderingConfigJson,
} from "../Json/QuestionableTagRenderingConfigJson" } from "../Json/QuestionableTagRenderingConfigJson"
import { Utils } from "../../../Utils"
export default class AddPrefixToTagRenderingConfig extends DesugaringStep<QuestionableTagRenderingConfigJson> { export default class AddPrefixToTagRenderingConfig extends DesugaringStep<QuestionableTagRenderingConfigJson> {
private readonly _prefix: string private readonly _prefix: string
@ -18,6 +19,40 @@ export default class AddPrefixToTagRenderingConfig extends DesugaringStep<Questi
this._prefix = prefix this._prefix = prefix
} }
/**
*
* new AddPrefixToTagRenderingConfig("PREFIX").rewriteArguments("Some argument with a {key}") // => "Some argument with a {PREFIX:key}"
*
* // Don't rewrite metatags
* new AddPrefixToTagRenderingConfig("PREFIX").rewriteArguments("Some argument with a {_calculated_key}") // => "Some argument with a {_calculated_key}"
*
*/
private rewriteArguments(txt: string) {
const regex = /(.*?){([^}]*)}(.*)/s
let match = txt.match(regex)
if (!match) {
return txt
}
let result = ""
while (match) {
const [_, normal, key, leftover] = match
if (key.startsWith("_")) {
result += normal + "{" + key + "}"
} else {
result += normal + "{" + this._prefix + ":" + key + "}"
}
match = leftover.match(regex)
if (!match) {
result += leftover
}
}
if(txt !== result){
console.log(">>> Rewritten", txt, "into", result)
}
return result
}
/** /**
* *
* const edit = new AddPrefixToTagRenderingConfig("PREFIX") * const edit = new AddPrefixToTagRenderingConfig("PREFIX")
@ -29,6 +64,9 @@ export default class AddPrefixToTagRenderingConfig extends DesugaringStep<Questi
* *
* // Should prefix the default key in a special visualisation * // Should prefix the default key in a special visualisation
* new AddPrefixToTagRenderingConfig("PREFIX").updateString("{opening_hours_table()}") // => "{opening_hours_table(PREFIX:opening_hours,,)}" * new AddPrefixToTagRenderingConfig("PREFIX").updateString("{opening_hours_table()}") // => "{opening_hours_table(PREFIX:opening_hours,,)}"
*
* // Should prefix links, e.g. for 'phone'
* new AddPrefixToTagRenderingConfig("PREFIX").updateString("{link({phone},tel:{phone},,,,)}") // => "{link({PREFIX:phone},tel:{PREFIX:phone},,,,)}"
*/ */
private updateString(str: string): string { private updateString(str: string): string {
const parsed = SpecialVisualizations.constructSpecification(str) const parsed = SpecialVisualizations.constructSpecification(str)
@ -45,7 +83,7 @@ export default class AddPrefixToTagRenderingConfig extends DesugaringStep<Questi
if (argDoc.type === "key") { if (argDoc.type === "key") {
newArgs.push(this._prefix + ":" + (argV ?? argDoc.defaultValue ?? "")) newArgs.push(this._prefix + ":" + (argV ?? argDoc.defaultValue ?? ""))
} else { } else {
newArgs.push(argV ?? "") newArgs.push(this.rewriteArguments(argV ?? ""))
} }
} }
fixedSpec.push("{" + spec.func.funcName + "(" + newArgs.join(",") + ")}") fixedSpec.push("{" + spec.func.funcName + "(" + newArgs.join(",") + ")}")