From 5e06d38cbd3bfdd612023d0d5e627038edde3855 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Stephan=20B=C3=B6sch-Plepelits?= <skunk@xover.mud.at>
Date: Wed, 18 Oct 2017 22:37:25 +0200
Subject: [PATCH 1/7] Railway Infrastructure: include light_rail

---
 railway-infrastructure.json | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/railway-infrastructure.json b/railway-infrastructure.json
index 8246e45..3abec53 100644
--- a/railway-infrastructure.json
+++ b/railway-infrastructure.json
@@ -12,12 +12,12 @@
     "feature": {
         "style:casing": {
             "weight": "{% if tags.service == 'yard' or tags.service == 'siding' or tags.service == 'spur' or tags.service == 'crossover' %}5{% else %}{% if tags.railway == 'rail' %}{% if tags.usage == 'main' or tags.usage == 'branch' %}7{% else %}6{% endif %}{% elseif tags.railway == 'platform' %}5{% else %}6{% endif %}{% endif %}",
-            "color": "{% if tags.railway == 'rail' or tags.railway == 'narrow_gauge' or tags.railway == 'disused' %}{% if tags.usage == 'main' %}#ff8100{% elseif tags.usage == 'branch' %}#daca00{% else %}#000000{% endif %}{% elseif tags.railway == 'subway' %}#0000ff{% elseif tags.railway == 'tram' %}#ff00ff{% elseif tags.railway == 'platform' %}#3f3f3f{% else %}#000000{% endif %}",
+            "color": "{% if tags.railway == 'rail' or tags.railway == 'narrow_gauge' or tags.railway == 'disused' %}{% if tags.usage == 'main' %}#ff8100{% elseif tags.usage == 'branch' %}#daca00{% else %}#000000{% endif %}{% elseif tags.railway == 'subway' %}#0000ff{% elseif tags.railway == 'tram' %}#ff00ff{% elseif tags.railway == 'light_rail' %}#00BD14{% elseif tags.railway == 'platform' %}#3f3f3f{% else %}#000000{% endif %}",
             "dashArray": "2,4",
             "lineCap": "butt"
         },
         "style": {
-            "color": "{% if tags.railway == 'rail' or tags.railway == 'narrow_gauge' or tags.railway == 'disused' %}{% if tags.usage == 'main' %}#ff8100{% elseif tags.usage == 'branch' %}#daca00{% else %}#000000{% endif %}{% elseif tags.railway == 'subway' %}#0000ff{% elseif tags.railway == 'tram' %}#ff00ff{% elseif tags.railway == 'platform' %}#3f3f3f{% else %}#000000{% endif %}",
+            "color": "{% if tags.railway == 'rail' or tags.railway == 'narrow_gauge' or tags.railway == 'disused' %}{% if tags.usage == 'main' %}#ff8100{% elseif tags.usage == 'branch' %}#daca00{% else %}#000000{% endif %}{% elseif tags.railway == 'subway' %}#0000ff{% elseif tags.railway == 'tram' %}#ff00ff{% elseif tags.railway == 'light_rail' %}#00BD14{% elseif tags.railway == 'platform' %}#3f3f3f{% else %}#000000{% endif %}",
             "weight": "{% if tags.service == 'yard' or tags.service == 'siding' or tags.service == 'spur' or tags.service == 'crossover' %}1{% else %}{% if tags.railway == 'rail' %}{% if tags.usage == 'main' or tags.usage == 'branch' %}3{% else %}2{% endif %}{% elseif tags.railway == 'platform' %}1{% else %}2{% endif %}{% endif %}",
             "dashArray": "{% if tags.railway == 'rail' %}{% elseif tags.railway == 'disused' %}1,5{% elseif tags.railway == 'abandoned' %}1,7{% endif %}",
             "fillColor": "{% if tags.railway == 'platform' %}\n#3f3f3f\n{% elseif type == 'node' %}\n#ffffff\n{% endif %}",

From 0cff620d325cc33392c1eb8149514bac070f9c50 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Stephan=20B=C3=B6sch-Plepelits?= <skunk@xover.mud.at>
Date: Wed, 25 Oct 2017 20:57:04 +0200
Subject: [PATCH 2/7] unfinished

---
 culture.json                 | 25 +++++++++++++------------
 railway-electrification.json |  8 +++++---
 railway-infrastructure.json  |  6 ++++--
 3 files changed, 22 insertions(+), 17 deletions(-)

diff --git a/culture.json b/culture.json
index 95c723d..1b4b79c 100644
--- a/culture.json
+++ b/culture.json
@@ -25,18 +25,19 @@
     "feature": {
         "pre": "{% if tags.amenity in [ 'arts_centre', 'cinema', 'community_centre', 'fountain', 'studio', 'theatre' ] %}\n{% set key = 'amenity' %}\n{% set value = tags.amenity %}\n{% elseif tags.tourism %}\n{% set key = 'tourism' %}\n{% set value = tags.tourism %}\n{% endif %}",
         "description": "{{ tagTrans(key, value) }}",
-        "markerSign": "{{ const[value] }}"
+        "markerSign": "{{ attribute(const, key ~ '=' ~ value) }}"
     },
     "const": {
-        "arts_centre": "🎨",
-        "cinema": "🎦",
-        "community_centre": "",
-        "fountain": "⛲",
-        "studio": "",
-        "theatre": "🎭",
-        "artwork": "🎨 ",
-        "gallery": "🖼",
-        "museum": "🏛 ",
-        "theme_park": ""
-    }
+        "amenity=arts_centre": "🎨",
+        "amenity=cinema": "🎦",
+        "amenity=community_centre": "",
+        "amenity=fountain": "⛲",
+        "amenity=studio": "",
+        "amenity=theatre": "🎭",
+        "tourism=artwork": "🎨 ",
+        "tourism=gallery": "🖼",
+        "tourism=museum": "🏛 ",
+        "tourism=theme_park": ""
+    },
+    "info": "<table>\n{% for value, sign in const %}\n  <tr>\n    <td>{{ markerCircle({})|raw }}<div class='sign'>{{ sign }}</div></td>\n    <td>{{ tagTrans(value|split('=')[0], value|split('=')[1]) }}</td>\n  </tr>\n{% endfor %}\n</table>"
 }
diff --git a/railway-electrification.json b/railway-electrification.json
index 77efc25..9caee08 100644
--- a/railway-electrification.json
+++ b/railway-electrification.json
@@ -9,7 +9,7 @@
         "14": "way[railway][railway!~'^(platform|abandoned|disused|station|proposed)$'];"
     },
     "feature": {
-        "pre": "{% if tags.electrified and tags.electrified != 'no' %}\n  {% if tags.voltage < 5000 %}\n    {% set color = colorInterpolate([ 'green', 'red' ], tags.voltage / 1000) %}\n  {% else %}\n    {% set color = colorInterpolate([ 'red', 'blue' ], (tags.voltage - 1000) / 24000) %}\n  {% endif %}\n{% else %}\n  {% set color='black' %}\n{%endif %}\n\n{% if tags.service == 'yard' or tags.service == 'siding' or tags.service == 'spur' or tags.service == 'crossover' %}\n    {% set weight=2 %}\n  {% else %}\n    {% if tags.railway == 'rail' %}\n      {% if tags.usage == 'main' or tags.usage == 'branch' %}\n        {% set weight=3 %}\n      {% else %}\n        {% set weight=2.5 %}\n      {% endif %}\n    {% else %}\n      {% set weight=2 %}\n  {% endif %}\n{% endif %}",
+        "pre": "{% if tags.electrified and tags.electrified != 'no' %}\n  {% if tags.voltage < 1000 %}\n    {% set color = colorInterpolate([ '#00ff00', 'blue' ], tags.voltage / 1000) %}\n  {% else %}\n    {% set color = colorInterpolate([ 'blue', 'red' ], (tags.voltage - 1000) / 24000) %}\n  {% endif %}\n{% else %}\n  {% set color='black' %}\n{%endif %}\n\n{% if tags.service == 'yard' or tags.service == 'siding' or tags.service == 'spur' or tags.service == 'crossover' %}\n    {% set weight=2 %}\n  {% else %}\n    {% if tags.railway == 'rail' %}\n      {% if tags.usage == 'main' or tags.usage == 'branch' %}\n        {% set weight=3 %}\n      {% else %}\n        {% set weight=2.5 %}\n      {% endif %}\n    {% else %}\n      {% set weight=2 %}\n  {% endif %}\n{% endif %}",
         "style:casing": {
             "weight": "{{ weight + 2 }}",
             "color": "{{ color }}",
@@ -36,6 +36,8 @@
         "body": "{{ tagTrans('railway', tags.railway) }}<br/>\n{% if tags.operator %}{{ keyTrans('operator') }}: {{ localizedTag(tags, 'operator') }}<br>{% endif %}\n{% if tags.usage %}{{ keyTrans('usage') }}: {{ tagTrans('usage', tags.usage)|default(trans('unknown')) }}<br/>{% endif %}\n{% if tags.service %}{{ keyTrans('service') }}: {{ tagTrans('service', tags.service ) }}<br/>{% endif %}\n{{ keyTrans('gauge') }}: {{ tags.gauge|default(trans('unknown')) }}<br/>\n{% if tags.electrified == 'no' %}{{ keyTrans('electrified') }}: {{ tagTrans('electrified', 'no') }}{% elseif tags.electrified %}{{ keyTrans('electrified') }}: {{ tagTrans('electrified', tags.electrified) }}, {{ keyTrans('voltage') }}: {{ tags.voltage|default(trans('unknown')) }}, {{ keyTrans('frequency') }}: {{ tags.frequency|default(trans('unknown')) }}<br/>{% endif %}\n",
         "description": "{{ tagTrans('railway', tags.railway) }} -\n\n{% if tags.electrified == 'no' %}\n  {{ trans('not electrified') }}\n{% elseif tags.electrified %}\n  {{ tags.voltage|default(trans('unknown')) }}V, {{ tags.frequency|default(trans('unknown')) }}Hz\n{% endif %}",
         "priority": "{% if tags.railway == 'station' %}0{% elseif tags.railway in [ 'halt', 'tram_stop' ] %}1{% else %}5{% endif %}",
-        "title": "{% if tags.ref %}{{ localizedTag(tags, 'ref') }} - {% endif %}{{ localizedTag(tags, 'name')|default(localizedTag(tags, 'operator'))|default(trans('unnamed')) }}"
-    }
+        "title": "{% if tags.ref %}{{ localizedTag(tags, 'ref') }} - {% endif %}{{ localizedTag(tags, 'name')|default(localizedTag(tags, 'operator'))|default(trans('unnamed')) }}",
+        "listMarkerSymbol": "{{ markerLine({ 'weight': 3, 'color': color })|raw }}"
+    },
+    "info": "<table>\n{% for i in range(0, 1000, 200) %}\n  {% set color = colorInterpolate([ '#00ff00', 'blue' ], i / 1000) %}\n  <tr>\n    <td>{{ markerLine({ 'weight': 3, 'color': color })|raw }}</td>\n    <td>{{ i }}V</td>\n  </tr>\n{% endfor %}\n\n{% for i in range(3000, 25000, 2000) %}\n  {% set color = colorInterpolate([ 'blue', 'red' ], (i - 1000) / 24000) %}\n  <tr>\n    <td>{{ markerLine({ 'weight': 3, 'color': color })|raw }}</td>\n    <td>{{ i }}V</td>\n  </tr>\n{% endfor %}\n</table>"
 }
diff --git a/railway-infrastructure.json b/railway-infrastructure.json
index 3abec53..eedc6b8 100644
--- a/railway-infrastructure.json
+++ b/railway-infrastructure.json
@@ -30,6 +30,8 @@
         "body": "{% if tags.operator %}{{ keyTrans('operator') }}: {{ localizedTag(tags, 'operator') }}<br>{% endif %}\n{% if tags.usage %}{{ keyTrans('usage') }}: {{ tagTrans('usage', tags.usage)|default(trans('unknown')) }}<br/>{% endif %}\n{% if tags.service %}{{ keyTrans('service') }}: {{ tagTrans('service', tags.service ) }}<br/>{% endif %}\n{{ keyTrans('gauge') }}: {{ tags.gauge|default(trans('unknown')) }}<br/>\n{% if tags.electrified == 'no' %}{{ keyTrans('electrified') }}: {{ tagTrans('electrified', 'no') }}{% elseif tags.electrified %}{{ keyTrans('electrified') }}: {{ tagTrans('electrified', tags.electrified) }}, {{ keyTrans('voltage') }}: {{ tags.voltage|default(trans('unknown')) }}, {{ keyTrans('frequency') }}: {{ tags.frequency|default(trans('unknown')) }}<br/>{% endif %}\n",
         "description": "{{ tagTrans('railway', tags.railway) }}",
         "priority": "{% if tags.railway == 'station' %}0{% elseif tags.railway in [ 'halt', 'tram_stop' ] %}1{% else %}5{% endif %}",
-        "title": "{% if tags.ref %}{{ localizedTag(tags, 'ref') }} - {% endif %}{{ localizedTag(tags, 'name')|default(localizedTag(tags, 'operator'))|default(trans('unnamed')) }}"
-    }
+        "title": "{% if tags.ref %}{{ localizedTag(tags, 'ref') }} - {% endif %}{{ localizedTag(tags, 'name')|default(localizedTag(tags, 'operator'))|default(trans('unnamed')) }}",
+        "listMarkerSymbol": "{% if tags.railway == 'station' %}\narea\n{% else %}\nline\n{% endif %}"
+    },
+    "info": "<table>\n  <tr>\n    <td>{{ markerLine(evaluate({ \"railway\": \"rail\", \"usage\": \"main\" }))|raw }}</td>\n    <td>{{ tagTrans('railway', 'rail') }}, {{ keyTrans('usage') }}: {{ tagTrans('usage', 'main') }}</td>\n  </tr>\n  <tr>\n    <td>{{ markerLine(evaluate({ \"railway\": \"rail\" }))|raw }}</td>\n    <td>{{ tagTrans('railway', 'rail') }}</td>\n  </tr>\n  <tr>\n    <td>{{ markerLine(evaluate({ \"railway\": \"narrow_gauge\" }))|raw }}</td>\n    <td>{{ tagTrans('railway', 'narrow_gauge') }}</td>\n  </tr>\n  <tr>\n    <td>{{ markerLine(evaluate({ \"railway\": \"light_rail\" }))|raw }}</td>\n    <td>{{ tagTrans('railway', 'light_rail') }}</td>\n  </tr>\n  <tr>\n    <td>{{ markerLine(evaluate({ \"railway\": \"subway\" }))|raw }}</td>\n    <td>{{ tagTrans('railway', 'subway') }}</td>\n  </tr>\n{{ console_log(map) }}\n{% if map.zoom >= 14 %}\n  <tr>\n    <td>{{ markerLine(evaluate({ \"railway\": \"tram\" }))|raw }}</td>\n    <td>{{ tagTrans('railway', 'tram') }}</td>\n  </tr>\n{% endif %}\n</table>"
 }

From 5b030465452d33cefe6c77de1119c93e899ae601 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Stephan=20B=C3=B6sch-Plepelits?= <skunk@xover.mud.at>
Date: Fri, 3 Nov 2017 22:10:36 +0100
Subject: [PATCH 3/7] improvements

---
 railway-electrification.json | 20 ++++++--------------
 railway-infrastructure.json  |  7 ++++---
 2 files changed, 10 insertions(+), 17 deletions(-)

diff --git a/railway-electrification.json b/railway-electrification.json
index 9caee08..5535f8d 100644
--- a/railway-electrification.json
+++ b/railway-electrification.json
@@ -5,39 +5,31 @@
         "en": "Railway electrification"
     },
     "query": {
-        "11": "way[railway=rail][railway!~'^(platform|abandoned|disused|station|proposed)$'][usage~'^(main|branch)$'];",
-        "14": "way[railway][railway!~'^(platform|abandoned|disused|station|proposed)$'];"
+        "11": "way[railway=rail][railway!~'^(platform|abandoned|disused|station|proposed|subway_entrance)$'][usage~'^(main|branch)$'];",
+        "14": "way[railway][railway!~'^(platform|abandoned|disused|station|proposed|subway_entrance)$'];"
     },
     "feature": {
         "pre": "{% if tags.electrified and tags.electrified != 'no' %}\n  {% if tags.voltage < 1000 %}\n    {% set color = colorInterpolate([ '#00ff00', 'blue' ], tags.voltage / 1000) %}\n  {% else %}\n    {% set color = colorInterpolate([ 'blue', 'red' ], (tags.voltage - 1000) / 24000) %}\n  {% endif %}\n{% else %}\n  {% set color='black' %}\n{%endif %}\n\n{% if tags.service == 'yard' or tags.service == 'siding' or tags.service == 'spur' or tags.service == 'crossover' %}\n    {% set weight=2 %}\n  {% else %}\n    {% if tags.railway == 'rail' %}\n      {% if tags.usage == 'main' or tags.usage == 'branch' %}\n        {% set weight=3 %}\n      {% else %}\n        {% set weight=2.5 %}\n      {% endif %}\n    {% else %}\n      {% set weight=2 %}\n  {% endif %}\n{% endif %}",
         "style:casing": {
-            "weight": "{{ weight + 2 }}",
-            "color": "{{ color }}",
-            "dashArray": "2,4",
-            "lineCap": "butt"
-        },
-        "style": {
             "color": "white",
             "weight": "{{ weight }}",
             "fill": null,
             "opacity": "1"
         },
-        "style:highlight": {
+        "style": {
             "color": "{{ color }}",
             "weight": "{{ weight }}",
             "dashArray": "{% if not tags.electrified or tags.electrified == 'no' %}\n{% elseif tags.frequency == 0 %}\n{% else %}\n5,2\n{% endif %}",
-            "fillColor": "{% if tags.railway == 'platform' %}#3f3f3f{% endif %}",
-            "fill": "{% if tags.railway == 'platform' %}1{% else %}{% endif %}",
             "opacity": "1",
             "lineCap": "butt"
         },
-        "styles": "{% if tags.railway == 'narrow_gauge' %}default,casing,highlight{% else %}default,highlight{% endif %}",
+        "styles": "casing,default",
         "markerSign": null,
         "body": "{{ tagTrans('railway', tags.railway) }}<br/>\n{% if tags.operator %}{{ keyTrans('operator') }}: {{ localizedTag(tags, 'operator') }}<br>{% endif %}\n{% if tags.usage %}{{ keyTrans('usage') }}: {{ tagTrans('usage', tags.usage)|default(trans('unknown')) }}<br/>{% endif %}\n{% if tags.service %}{{ keyTrans('service') }}: {{ tagTrans('service', tags.service ) }}<br/>{% endif %}\n{{ keyTrans('gauge') }}: {{ tags.gauge|default(trans('unknown')) }}<br/>\n{% if tags.electrified == 'no' %}{{ keyTrans('electrified') }}: {{ tagTrans('electrified', 'no') }}{% elseif tags.electrified %}{{ keyTrans('electrified') }}: {{ tagTrans('electrified', tags.electrified) }}, {{ keyTrans('voltage') }}: {{ tags.voltage|default(trans('unknown')) }}, {{ keyTrans('frequency') }}: {{ tags.frequency|default(trans('unknown')) }}<br/>{% endif %}\n",
         "description": "{{ tagTrans('railway', tags.railway) }} -\n\n{% if tags.electrified == 'no' %}\n  {{ trans('not electrified') }}\n{% elseif tags.electrified %}\n  {{ tags.voltage|default(trans('unknown')) }}V, {{ tags.frequency|default(trans('unknown')) }}Hz\n{% endif %}",
         "priority": "{% if tags.railway == 'station' %}0{% elseif tags.railway in [ 'halt', 'tram_stop' ] %}1{% else %}5{% endif %}",
         "title": "{% if tags.ref %}{{ localizedTag(tags, 'ref') }} - {% endif %}{{ localizedTag(tags, 'name')|default(localizedTag(tags, 'operator'))|default(trans('unnamed')) }}",
-        "listMarkerSymbol": "{{ markerLine({ 'weight': 3, 'color': color })|raw }}"
+        "listMarkerSymbol": "line"
     },
-    "info": "<table>\n{% for i in range(0, 1000, 200) %}\n  {% set color = colorInterpolate([ '#00ff00', 'blue' ], i / 1000) %}\n  <tr>\n    <td>{{ markerLine({ 'weight': 3, 'color': color })|raw }}</td>\n    <td>{{ i }}V</td>\n  </tr>\n{% endfor %}\n\n{% for i in range(3000, 25000, 2000) %}\n  {% set color = colorInterpolate([ 'blue', 'red' ], (i - 1000) / 24000) %}\n  <tr>\n    <td>{{ markerLine({ 'weight': 3, 'color': color })|raw }}</td>\n    <td>{{ i }}V</td>\n  </tr>\n{% endfor %}\n</table>"
+    "info": "<table>\n  {% set color = '#000000' %}\n  <tr>\n    <td>{{ markerLine({ 'weight': 3, 'color': color })|raw }}</td>\n    <td>{{ trans('not electrified') }}</td>\n  </tr>\n{% for i in range(0, 1000, 200) %}\n  {% set color = colorInterpolate([ '#00ff00', 'blue' ], i / 1000) %}\n  <tr>\n    <td>{{ markerLine({ 'weight': 3, 'color': color })|raw }}</td>\n    <td>{{ i }}V</td>\n  </tr>\n{% endfor %}\n\n{% for i in range(3000, 25000, 2000) %}\n  {% set color = colorInterpolate([ 'blue', 'red' ], (i - 1000) / 24000) %}\n  <tr>\n    <td>{{ markerLine({ 'weight': 3, 'color': color })|raw }}</td>\n    <td>{{ i }}V</td>\n  </tr>\n{% endfor %}\n\n  <tr>\n    <td>{{ markerLine({ 'weight': 3, 'color': color })|raw }}</td>\n    <td>{{ trans('direct current') }}</td>\n  </tr>\n\n  <tr>\n    <td>{{ markerLine({ 'styles': [ 'casing', 'default' ], 'style:casing': { 'weight': 3, 'color': 'white' }, 'style': { 'weight': '3', 'dashArray': '5,2', 'lineCap': 'butt', 'color': color } })|raw }}</td>\n    <td>{{ trans('alternating current') }}</td>\n  </tr>\n</table>"
 }
diff --git a/railway-infrastructure.json b/railway-infrastructure.json
index eedc6b8..e0dc819 100644
--- a/railway-infrastructure.json
+++ b/railway-infrastructure.json
@@ -26,12 +26,13 @@
             "fillOpacity": "{% if tags.railway == 'platform' %}\n0.2\n{% elseif type == 'node' %}\n0\n{% endif %}"
         },
         "styles": "{% if tags.railway == 'narrow_gauge' %}default,casing{% else %}default{% endif %}",
-        "markerSign": null,
+        "markerSign": "{% if tags.railway in [ 'halt', 'tram_stop', 'station', 'stop', 'subway_entrance' ] %}X{% endif %}",
         "body": "{% if tags.operator %}{{ keyTrans('operator') }}: {{ localizedTag(tags, 'operator') }}<br>{% endif %}\n{% if tags.usage %}{{ keyTrans('usage') }}: {{ tagTrans('usage', tags.usage)|default(trans('unknown')) }}<br/>{% endif %}\n{% if tags.service %}{{ keyTrans('service') }}: {{ tagTrans('service', tags.service ) }}<br/>{% endif %}\n{{ keyTrans('gauge') }}: {{ tags.gauge|default(trans('unknown')) }}<br/>\n{% if tags.electrified == 'no' %}{{ keyTrans('electrified') }}: {{ tagTrans('electrified', 'no') }}{% elseif tags.electrified %}{{ keyTrans('electrified') }}: {{ tagTrans('electrified', tags.electrified) }}, {{ keyTrans('voltage') }}: {{ tags.voltage|default(trans('unknown')) }}, {{ keyTrans('frequency') }}: {{ tags.frequency|default(trans('unknown')) }}<br/>{% endif %}\n",
         "description": "{{ tagTrans('railway', tags.railway) }}",
-        "priority": "{% if tags.railway == 'station' %}0{% elseif tags.railway in [ 'halt', 'tram_stop' ] %}1{% else %}5{% endif %}",
+        "priority": "{% if tags.railway == 'station' %}0\n{% elseif tags.railway in [ 'halt' ] %}1\n{% elseif tags.railway in [ 'tram_stop', 'stop' ] %}2\n{% elseif tags.railway in [ 'subway_entrance' ] %}3\n{% else %}5\n{% endif %}",
         "title": "{% if tags.ref %}{{ localizedTag(tags, 'ref') }} - {% endif %}{{ localizedTag(tags, 'name')|default(localizedTag(tags, 'operator'))|default(trans('unnamed')) }}",
-        "listMarkerSymbol": "{% if tags.railway == 'station' %}\narea\n{% else %}\nline\n{% endif %}"
+        "listMarkerSymbol": "{% if tags.railway in [ 'station', 'halt', 'tram_stop', 'stop', 'subway_entrance', 'signal' ] %}\n{% else %}\nline\n{% endif %}",
+        "markerSymbol": "{% if tags.railway == 'signal' %}\n<svg width='10' height='10'>\n  <circle cx='4.5' cy='4.5' r='3' style='stroke-width: 3; stroke: #000000; fill: #ffffff'>\n</svg>\n{% else %}\n{{ markerPointer({})|raw }}\n{% endif %}"
     },
     "info": "<table>\n  <tr>\n    <td>{{ markerLine(evaluate({ \"railway\": \"rail\", \"usage\": \"main\" }))|raw }}</td>\n    <td>{{ tagTrans('railway', 'rail') }}, {{ keyTrans('usage') }}: {{ tagTrans('usage', 'main') }}</td>\n  </tr>\n  <tr>\n    <td>{{ markerLine(evaluate({ \"railway\": \"rail\" }))|raw }}</td>\n    <td>{{ tagTrans('railway', 'rail') }}</td>\n  </tr>\n  <tr>\n    <td>{{ markerLine(evaluate({ \"railway\": \"narrow_gauge\" }))|raw }}</td>\n    <td>{{ tagTrans('railway', 'narrow_gauge') }}</td>\n  </tr>\n  <tr>\n    <td>{{ markerLine(evaluate({ \"railway\": \"light_rail\" }))|raw }}</td>\n    <td>{{ tagTrans('railway', 'light_rail') }}</td>\n  </tr>\n  <tr>\n    <td>{{ markerLine(evaluate({ \"railway\": \"subway\" }))|raw }}</td>\n    <td>{{ tagTrans('railway', 'subway') }}</td>\n  </tr>\n{{ console_log(map) }}\n{% if map.zoom >= 14 %}\n  <tr>\n    <td>{{ markerLine(evaluate({ \"railway\": \"tram\" }))|raw }}</td>\n    <td>{{ tagTrans('railway', 'tram') }}</td>\n  </tr>\n{% endif %}\n</table>"
 }

From 6f2c1f601b7be0b1928bea38cd481195e1d2d45e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Stephan=20B=C3=B6sch-Plepelits?= <skunk@xover.mud.at>
Date: Thu, 9 Nov 2017 12:05:19 +0100
Subject: [PATCH 4/7] Split multiline strings into string arrays

---
 administrative.json          | 42 +++++++++++++---
 agriculture.json             |  8 +++-
 car_amenities.json           | 21 ++++++--
 car_maxspeed.json            | 38 ++++++++++++++-
 construction.json            | 21 +++++++-
 culture.json                 | 32 +++++++++++--
 cycle_amenities.json         | 73 +++++++++++++++++++++++++---
 emergency.json               | 19 ++++++--
 financial.json               | 16 ++++++-
 gastro.json                  | 10 +++-
 health.json                  | 45 ++++++++++++++++--
 hiking_routes.json           |  7 ++-
 historic.json                | 16 ++++++-
 leisure.json                 | 15 +++++-
 military.json                | 32 +++++++++++--
 natural.json                 | 27 +++++++++--
 package.json                 | 42 ++++++++--------
 places.json                  |  5 +-
 power.json                   |  6 ++-
 pt_amenities.json            | 21 +++++++-
 pt_routes.json               |  6 ++-
 pt_stops.json                | 25 +++++++++-
 railway-electrification.json | 89 ++++++++++++++++++++++++++++++++--
 railway-infrastructure.json  | 92 ++++++++++++++++++++++++++++++++----
 religion.json                | 40 ++++++++++++++--
 residential.json             | 16 ++++++-
 resources.json               | 21 +++++++-
 sport.json                   |  5 +-
 tourism_attractions.json     |  8 +++-
 tourism_services.json        |  8 +++-
 walk_amenities.json          | 45 ++++++++++++++++--
 waste.json                   | 47 ++++++++++++++++--
 wikipedia.json               | 49 +++++++++++++++++--
 33 files changed, 839 insertions(+), 108 deletions(-)

diff --git a/administrative.json b/administrative.json
index c167402..c248b19 100644
--- a/administrative.json
+++ b/administrative.json
@@ -15,12 +15,42 @@
         "ru": "Административные границы"
     },
     "query": {
-        "3": "(\nway[admin_level=2];\nrelation[admin_level=2];\n)",
-        "6": "(\nway[admin_level~\"^(2|3)$\"];\nrelation[admin_level~\"^(2|3)$\"];\n)",
-        "11": "(\nway[admin_level~\"^(2|3|4|5)$\"];\nrelation[admin_level~\"^(2|3|4|5)$\"];\n)",
-        "13": "(\nway[admin_level~\"^(2|3|4|5|6|7)$\"];\nrelation[admin_level~\"^(2|3|4|5|6|7)$\"];\n)",
-        "15": "(\nway[admin_level~\"^(2|3|4|5|6|7|8|9)$\"];\nrelation[admin_level~\"^(2|3|4|5|6|7|8|9)$\"];\n)",
-        "16": "(\nway[admin_level~\"^(2|3|4|5|6|7|8|9|10|11)$\"];\nrelation[admin_level~\"^(2|3|4|5|6|7|8|9|10|11)$\"];\n)"
+        "3": [
+            "(",
+            "way[admin_level=2];",
+            "relation[admin_level=2];",
+            ")"
+        ],
+        "6": [
+            "(",
+            "way[admin_level~\"^(2|3)$\"];",
+            "relation[admin_level~\"^(2|3)$\"];",
+            ")"
+        ],
+        "11": [
+            "(",
+            "way[admin_level~\"^(2|3|4|5)$\"];",
+            "relation[admin_level~\"^(2|3|4|5)$\"];",
+            ")"
+        ],
+        "13": [
+            "(",
+            "way[admin_level~\"^(2|3|4|5|6|7)$\"];",
+            "relation[admin_level~\"^(2|3|4|5|6|7)$\"];",
+            ")"
+        ],
+        "15": [
+            "(",
+            "way[admin_level~\"^(2|3|4|5|6|7|8|9)$\"];",
+            "relation[admin_level~\"^(2|3|4|5|6|7|8|9)$\"];",
+            ")"
+        ],
+        "16": [
+            "(",
+            "way[admin_level~\"^(2|3|4|5|6|7|8|9|10|11)$\"];",
+            "relation[admin_level~\"^(2|3|4|5|6|7|8|9|10|11)$\"];",
+            ")"
+        ]
     },
     "feature": {
         "description": "{{ tagTrans('admin_level', tags.admin_level) }}",
diff --git a/agriculture.json b/agriculture.json
index dbeb6c3..ea8177c 100644
--- a/agriculture.json
+++ b/agriculture.json
@@ -16,7 +16,13 @@
         "ru": "Сельское хозяйство"
     },
     "query": {
-        "13": "(\nnode[landuse~\"^(allotments|farm|farmland|farmyard|greenhouse_horticulture|orchard|vineyard)$\"];\nway[landuse~\"^(allotments|farm|farmland|farmyard|greenhouse_horticulture|orchard|vineyard)$\"];\nrelation[landuse~\"^(allotments|farm|farmland|farmyard|greenhouse_horticulture|orchard|vineyard)$\"];\n)"
+        "13": [
+            "(",
+            "node[landuse~\"^(allotments|farm|farmland|farmyard|greenhouse_horticulture|orchard|vineyard)$\"];",
+            "way[landuse~\"^(allotments|farm|farmland|farmyard|greenhouse_horticulture|orchard|vineyard)$\"];",
+            "relation[landuse~\"^(allotments|farm|farmland|farmyard|greenhouse_horticulture|orchard|vineyard)$\"];",
+            ")"
+        ]
     },
     "feature": {
         "description": "{{ tagTrans('landuse', tags.landuse) }}"
diff --git a/car_amenities.json b/car_amenities.json
index b59113c..88efd27 100644
--- a/car_amenities.json
+++ b/car_amenities.json
@@ -13,11 +13,26 @@
         "uk": "Amenities"
     },
     "query": {
-        "13": "(\nnode[amenity~\"^(car_rental|car_sharing|fuel)$\"];\nway[amenity~\"^(car_rental|car_sharing|fuel)$\"];\nrelation[amenity~\"^(car_rental|car_sharing|fuel)$\"];\n)",
-        "16": "(\nnode[amenity~\"^(car_rental|car_sharing|car_wash|charging_station|fuel|motorcycle_parking|parking)$\"];\nway[amenity~\"^(car_rental|car_sharing|car_wash|charging_station|fuel|motorcycle_parking|parking)$\"];\nrelation[amenity~\"^(car_rental|car_sharing|car_wash|charging_station|fuel|motorcycle_parking|parking)$\"];\n)"
+        "13": [
+            "(",
+            "node[amenity~\"^(car_rental|car_sharing|fuel)$\"];",
+            "way[amenity~\"^(car_rental|car_sharing|fuel)$\"];",
+            "relation[amenity~\"^(car_rental|car_sharing|fuel)$\"];",
+            ")"
+        ],
+        "16": [
+            "(",
+            "node[amenity~\"^(car_rental|car_sharing|car_wash|charging_station|fuel|motorcycle_parking|parking)$\"];",
+            "way[amenity~\"^(car_rental|car_sharing|car_wash|charging_station|fuel|motorcycle_parking|parking)$\"];",
+            "relation[amenity~\"^(car_rental|car_sharing|car_wash|charging_station|fuel|motorcycle_parking|parking)$\"];",
+            ")"
+        ]
     },
     "feature": {
-        "pre": "{% set key = 'amenity' %}\n{% set value = tags.amenity %}",
+        "pre": [
+            "{% set key = 'amenity' %}",
+            "{% set value = tags.amenity %}"
+        ],
         "description": "{{ tagTrans(key, value) }}",
         "markerSign": "{{ const[value] }}"
     },
diff --git a/car_maxspeed.json b/car_maxspeed.json
index 2dc4d2d..4d1c3ca 100644
--- a/car_maxspeed.json
+++ b/car_maxspeed.json
@@ -10,8 +10,42 @@
         "17": "way[highway~\"^(motorway|motorway_link|trunk|trunk_link|primary|primary_link|secondary|secondary_link|tertiary|tertiary_link|residential|unclassified|service|living_street|pedestrian|track|road)$\"];"
     },
     "feature": {
-        "pre": "{% if tags.maxspeed is not defined %}\n{% set maxspeedKmh = null %}\n{% set maxspeed = null %}\n{% set unit = null %}\n{% else %}\n\n{% if tags.maxspeed|matches(\"^[0-9]+$\") %}\n{% set maxspeedKmh = tags.maxspeed %}\n{% set maxspeed = tags.maxspeed %}\n{% set unit = \"km/h\" %}\n{% endif %}\n\n\n{% set m = tags.maxspeed|matches(\"(^[0-9]+) mph$\") %}\n{% if m %}\n{% set maxspeedKmh = m[1] * 1.60934 %}\n{% set maxspeed = m[1] %}\n{% set unit = \"mph\" %}\n{% endif %}\n\n{% endif %}\n\n{% if not maxspeedKmh %}\n{% set color = \"#404040\" %}\n{% else %}\n{% set color = colorInterpolate([ 'green', 'orange', 'red' ], maxspeedKmh / 150) %}\n{% endif %}",
-        "description": "{% if maxspeed %}\n<span style='color: {{ color }}'>{{ maxspeed }} {{ unit }}</span>\n{% else %}\n{{ trans('unknown') }}\n{% endif %}",
+        "pre": [
+            "{% if tags.maxspeed is not defined %}",
+            "{% set maxspeedKmh = null %}",
+            "{% set maxspeed = null %}",
+            "{% set unit = null %}",
+            "{% else %}",
+            "",
+            "{% if tags.maxspeed|matches(\"^[0-9]+$\") %}",
+            "{% set maxspeedKmh = tags.maxspeed %}",
+            "{% set maxspeed = tags.maxspeed %}",
+            "{% set unit = \"km/h\" %}",
+            "{% endif %}",
+            "",
+            "",
+            "{% set m = tags.maxspeed|matches(\"(^[0-9]+) mph$\") %}",
+            "{% if m %}",
+            "{% set maxspeedKmh = m[1] * 1.60934 %}",
+            "{% set maxspeed = m[1] %}",
+            "{% set unit = \"mph\" %}",
+            "{% endif %}",
+            "",
+            "{% endif %}",
+            "",
+            "{% if not maxspeedKmh %}",
+            "{% set color = \"#404040\" %}",
+            "{% else %}",
+            "{% set color = colorInterpolate([ 'green', 'orange', 'red' ], maxspeedKmh / 150) %}",
+            "{% endif %}"
+        ],
+        "description": [
+            "{% if maxspeed %}",
+            "<span style='color: {{ color }}'>{{ maxspeed }} {{ unit }}</span>",
+            "{% else %}",
+            "{{ trans('unknown') }}",
+            "{% endif %}"
+        ],
         "style": {
             "color": "{{ color }}"
         },
diff --git a/construction.json b/construction.json
index 37d1abe..60b6785 100644
--- a/construction.json
+++ b/construction.json
@@ -12,10 +12,27 @@
         "ru": "Места строительства"
     },
     "query": {
-        "13": "(\nnode[landuse~\"^(brownfield|greenfield|construction|)$\"];\nway[landuse~\"^(brownfield|greenfield|construction|)$\"];\nrelation[landuse~\"^(brownfield|greenfield|construction|)$\"];\nnode[highway~\"^(construction)$\"];\nway[highway~\"^(construction)$\"];\nrelation[highway~\"^(construction)$\"];\n)"
+        "13": [
+            "(",
+            "node[landuse~\"^(brownfield|greenfield|construction|)$\"];",
+            "way[landuse~\"^(brownfield|greenfield|construction|)$\"];",
+            "relation[landuse~\"^(brownfield|greenfield|construction|)$\"];",
+            "node[highway~\"^(construction)$\"];",
+            "way[highway~\"^(construction)$\"];",
+            "relation[highway~\"^(construction)$\"];",
+            ")"
+        ]
     },
     "feature": {
-        "pre": "{% if tags.highway == 'construction' %}\n{% set key = 'highway' %}\n{% set value = tags.highway %}\n{% else %}\n{% set key = 'landuse' %}\n{% set value = tags.landuse %}\n{% endif %}",
+        "pre": [
+            "{% if tags.highway == 'construction' %}",
+            "{% set key = 'highway' %}",
+            "{% set value = tags.highway %}",
+            "{% else %}",
+            "{% set key = 'landuse' %}",
+            "{% set value = tags.landuse %}",
+            "{% endif %}"
+        ],
         "description": "{{ tagTrans(key, value) }}"
     }
 }
diff --git a/culture.json b/culture.json
index 1b4b79c..d44f689 100644
--- a/culture.json
+++ b/culture.json
@@ -20,10 +20,27 @@
         "uk": "Культура "
     },
     "query": {
-        "13": "(\nnode[amenity~\"^(arts_centre|cinema|community_centre|fountain|studio|theatre)$\"];\nway[amenity~\"^(arts_centre|cinema|community_centre|fountain|studio|theatre)$\"];\nrelation[amenity~\"^(arts_centre|cinema|community_centre|fountain|studio|theatre)$\"];\nnode[tourism~\"^(artwork|gallery|museum|theme_park)$\"];\nway[tourism~\"^(artwork|gallery|museum|theme_park)$\"];\nrelation[tourism~\"^(artwork|gallery|museum|theme_park)$\"];\n)"
+        "13": [
+            "(",
+            "node[amenity~\"^(arts_centre|cinema|community_centre|fountain|studio|theatre)$\"];",
+            "way[amenity~\"^(arts_centre|cinema|community_centre|fountain|studio|theatre)$\"];",
+            "relation[amenity~\"^(arts_centre|cinema|community_centre|fountain|studio|theatre)$\"];",
+            "node[tourism~\"^(artwork|gallery|museum|theme_park)$\"];",
+            "way[tourism~\"^(artwork|gallery|museum|theme_park)$\"];",
+            "relation[tourism~\"^(artwork|gallery|museum|theme_park)$\"];",
+            ")"
+        ]
     },
     "feature": {
-        "pre": "{% if tags.amenity in [ 'arts_centre', 'cinema', 'community_centre', 'fountain', 'studio', 'theatre' ] %}\n{% set key = 'amenity' %}\n{% set value = tags.amenity %}\n{% elseif tags.tourism %}\n{% set key = 'tourism' %}\n{% set value = tags.tourism %}\n{% endif %}",
+        "pre": [
+            "{% if tags.amenity in [ 'arts_centre', 'cinema', 'community_centre', 'fountain', 'studio', 'theatre' ] %}",
+            "{% set key = 'amenity' %}",
+            "{% set value = tags.amenity %}",
+            "{% elseif tags.tourism %}",
+            "{% set key = 'tourism' %}",
+            "{% set value = tags.tourism %}",
+            "{% endif %}"
+        ],
         "description": "{{ tagTrans(key, value) }}",
         "markerSign": "{{ attribute(const, key ~ '=' ~ value) }}"
     },
@@ -39,5 +56,14 @@
         "tourism=museum": "🏛 ",
         "tourism=theme_park": ""
     },
-    "info": "<table>\n{% for value, sign in const %}\n  <tr>\n    <td>{{ markerCircle({})|raw }}<div class='sign'>{{ sign }}</div></td>\n    <td>{{ tagTrans(value|split('=')[0], value|split('=')[1]) }}</td>\n  </tr>\n{% endfor %}\n</table>"
+    "info": [
+        "<table>",
+        "{% for value, sign in const %}",
+        "  <tr>",
+        "    <td>{{ markerCircle({})|raw }}<div class='sign'>{{ sign }}</div></td>",
+        "    <td>{{ tagTrans(value|split('=')[0], value|split('=')[1]) }}</td>",
+        "  </tr>",
+        "{% endfor %}",
+        "</table>"
+    ]
 }
diff --git a/cycle_amenities.json b/cycle_amenities.json
index b1c874c..edbb0cd 100644
--- a/cycle_amenities.json
+++ b/cycle_amenities.json
@@ -5,16 +5,77 @@
         "de": "Einrichtungen"
     },
     "query": {
-        "13": "(\nnode[amenity~\"^(bicycle_rental)$\"];\nway[amenity~\"^(bicycle_rental)$\"];\nrelation[amenity~\"^(bicycle_rental)$\"];\nnode[shop~\"^(bicycle)$\"];\nway[shop~\"^(bicycle)$\"];\nrelation[shop~\"^(bicycle)$\"];\n)",
-        "16": "(\nnode[amenity~\"^(bicycle_.*|compressed_air)$\"];\nway[amenity~\"^(bicycle_.*|compressed_air)$\"];\nrelation[amenity~\"^(bicycle_.*|compressed_air)$\"];\nnode[shop~\"^(bicycle)$\"];\nway[shop~\"^(bicycle)$\"];\nrelation[shop~\"^(bicycle)$\"];\nnode[\"monitoring:bicycle\"];\nway[\"monitoring:bicycle\"];\nrelation[\"monitoring:bicycle\"];\nnode[vending~\"^(bicycle_tube)$\"];\nway[vending~\"^(bicycle_tube)$\"];\nrelation[vending~\"^(bicycle_tube)$\"];\n)\n"
+        "13": [
+            "(",
+            "node[amenity~\"^(bicycle_rental)$\"];",
+            "way[amenity~\"^(bicycle_rental)$\"];",
+            "relation[amenity~\"^(bicycle_rental)$\"];",
+            "node[shop~\"^(bicycle)$\"];",
+            "way[shop~\"^(bicycle)$\"];",
+            "relation[shop~\"^(bicycle)$\"];",
+            ")"
+        ],
+        "16": [
+            "(",
+            "node[amenity~\"^(bicycle_.*|compressed_air)$\"];",
+            "way[amenity~\"^(bicycle_.*|compressed_air)$\"];",
+            "relation[amenity~\"^(bicycle_.*|compressed_air)$\"];",
+            "node[shop~\"^(bicycle)$\"];",
+            "way[shop~\"^(bicycle)$\"];",
+            "relation[shop~\"^(bicycle)$\"];",
+            "node[\"monitoring:bicycle\"];",
+            "way[\"monitoring:bicycle\"];",
+            "relation[\"monitoring:bicycle\"];",
+            "node[vending~\"^(bicycle_tube)$\"];",
+            "way[vending~\"^(bicycle_tube)$\"];",
+            "relation[vending~\"^(bicycle_tube)$\"];",
+            ")",
+            ""
+        ]
     },
     "feature": {
-        "pre": "{% if tags.shop in [ 'bicycle' ] %}\n  {% set key = 'shop' %}\n  {% set value = tags.shop %}\n{% elseif attribute(tags, \"monitoring:bicycle\") %}\n  {% set key = 'man_made' %}\n  {% set value = 'monitoring_station' %}\n{% elseif tags.vending in [ 'bicycle_tube' ] %}\n  {% set key = 'vending' %}\n  {% set value = tags.vending %}\n{% else %}\n  {% set key = 'amenity' %}\n  {% set value = tags.amenity %}\n{% endif %}\n\n{% set constIndex = (key ~ \"=\" ~ value) %}",
+        "pre": [
+            "{% if tags.shop in [ 'bicycle' ] %}",
+            "  {% set key = 'shop' %}",
+            "  {% set value = tags.shop %}",
+            "{% elseif attribute(tags, \"monitoring:bicycle\") %}",
+            "  {% set key = 'man_made' %}",
+            "  {% set value = 'monitoring_station' %}",
+            "{% elseif tags.vending in [ 'bicycle_tube' ] %}",
+            "  {% set key = 'vending' %}",
+            "  {% set value = tags.vending %}",
+            "{% else %}",
+            "  {% set key = 'amenity' %}",
+            "  {% set value = tags.amenity %}",
+            "{% endif %}",
+            "",
+            "{% set constIndex = (key ~ \"=\" ~ value) %}"
+        ],
         "description": "{{ tagTrans(key, value) }}",
-        "body": "{% if tags.capacity %}\n  {{ keyTrans('capacity') }}: {{ tags.capacity }}\n{% endif %}",
+        "body": [
+            "{% if tags.capacity %}",
+            "  {{ keyTrans('capacity') }}: {{ tags.capacity }}",
+            "{% endif %}"
+        ],
         "markerSign": "{{ const[constIndex]['sign'] }}",
-        "title": "{{ localizedTag(tags, 'name') |default(localizedTag(tags, 'operator')) | default(localizedTag(tags, 'ref')) | default(trans('unnamed')) }}\n\n{% if tags.capacity %}({{ tags.capacity }}){% endif %}",
-        "priority": "{% if const[constIndex] and const[constIndex]['priority']['capacity'] %}\n  {% set max=const[constIndex]['priority']['default'] %}\n  {% for v in const[constIndex]['priority']['capacity'] %}\n    {% if tags.capacity >= v[0] %}{% set max=v[1] %}{% endif %}\n  {% endfor %}\n  {{ max }}\n{% elseif const[constIndex] is defined %}\n{{ const[constIndex]['priority'] }}\n{% else %}\n10\n{% endif %}"
+        "title": [
+            "{{ localizedTag(tags, 'name') |default(localizedTag(tags, 'operator')) | default(localizedTag(tags, 'ref')) | default(trans('unnamed')) }}",
+            "",
+            "{% if tags.capacity %}({{ tags.capacity }}){% endif %}"
+        ],
+        "priority": [
+            "{% if const[constIndex] and const[constIndex]['priority']['capacity'] %}",
+            "  {% set max=const[constIndex]['priority']['default'] %}",
+            "  {% for v in const[constIndex]['priority']['capacity'] %}",
+            "    {% if tags.capacity >= v[0] %}{% set max=v[1] %}{% endif %}",
+            "  {% endfor %}",
+            "  {{ max }}",
+            "{% elseif const[constIndex] is defined %}",
+            "{{ const[constIndex]['priority'] }}",
+            "{% else %}",
+            "10",
+            "{% endif %}"
+        ]
     },
     "const": {
         "shop=bicycle": {
diff --git a/emergency.json b/emergency.json
index 6bbb3b6..1d82e0b 100644
--- a/emergency.json
+++ b/emergency.json
@@ -18,12 +18,25 @@
         "uk": "Швидка допомога"
     },
     "query": {
-        "11": "(node[amenity~\"^(fire_station|hospital)$\"];\nway[amenity~\"^(fire_station|hospital)$\"];\nrelation[amenity~\"^(fire_station|hospital)$\"])",
-        "13": "(node[amenity~\"^(fire_station|hospital|police|emergency_phone)$\"];\nway[amenity~\"^(fire_station|hospital|police|emergency_phone)$\"];\nrelation[amenity~\"^(fire_station|hospital|police|emergency_phone)$\"])"
+        "11": [
+            "(node[amenity~\"^(fire_station|hospital)$\"];",
+            "way[amenity~\"^(fire_station|hospital)$\"];",
+            "relation[amenity~\"^(fire_station|hospital)$\"])"
+        ],
+        "13": [
+            "(node[amenity~\"^(fire_station|hospital|police|emergency_phone)$\"];",
+            "way[amenity~\"^(fire_station|hospital|police|emergency_phone)$\"];",
+            "relation[amenity~\"^(fire_station|hospital|police|emergency_phone)$\"])"
+        ]
     },
     "feature": {
         "description": "{{ tagTrans('amenity', tags.amenity) }}",
-        "markerSign": "{% set data = const[tags.amenity] %}\n{% if data %}\n{{ data.sign }}\n{% endif %}"
+        "markerSign": [
+            "{% set data = const[tags.amenity] %}",
+            "{% if data %}",
+            "{{ data.sign }}",
+            "{% endif %}"
+        ]
     },
     "const": {
         "fire_station": {
diff --git a/financial.json b/financial.json
index c2c683f..61f6a1c 100644
--- a/financial.json
+++ b/financial.json
@@ -16,8 +16,20 @@
         "uk": "Фінанси"
     },
     "query": {
-        "14": "(\nnode[amenity~\"^(bank)$\"];\nway[amenity~\"^(bank)$\"];\nrelation[amenity~\"^(bank)$\"]\n)",
-        "15": "(\nnode[amenity~\"^(bank|bureau_de_change|atm)$\"];\nway[amenity~\"^(bank|bureau_de_change|atm)$\"];\nrelation[amenity~\"^(bank|bureau_de_change|atm)$\"]\n)"
+        "14": [
+            "(",
+            "node[amenity~\"^(bank)$\"];",
+            "way[amenity~\"^(bank)$\"];",
+            "relation[amenity~\"^(bank)$\"]",
+            ")"
+        ],
+        "15": [
+            "(",
+            "node[amenity~\"^(bank|bureau_de_change|atm)$\"];",
+            "way[amenity~\"^(bank|bureau_de_change|atm)$\"];",
+            "relation[amenity~\"^(bank|bureau_de_change|atm)$\"]",
+            ")"
+        ]
     },
     "feature": {
         "description": "{{ tagTrans('amenity', tags.amenity) }}",
diff --git a/gastro.json b/gastro.json
index 739287d..e31e3a2 100644
--- a/gastro.json
+++ b/gastro.json
@@ -21,7 +21,15 @@
     },
     "feature": {
         "markerSign": "{% if tags.amenity=='bar' %}&#127864;{% elseif tags.amenity=='biergarten'%}&#127867;{% elseif tags.amenity=='cafe' %}&#9749;{% elseif tags.amenity=='fast_food' %}&#127828;{% elseif tags.amenity=='ice_cream' %}&#127848;{% elseif tags.amenity=='pub' %}&#127866;{% else %}&#127860;{% endif %}",
-        "body": "<ul>\n  <li class='hasSymbol'>\n   <i class=\"fa fa-cutlery\" aria-hidden=\"true\"></i>\n   <span class='key'>{{ keyTrans('cuisine') }}:</span>\n   <span class='value'>{{ tagTransList('cuisine', tags.cuisine)|default(trans('unknown')) }}</span>\n  </li>\n</ul>",
+        "body": [
+            "<ul>",
+            "  <li class='hasSymbol'>",
+            "   <i class=\"fa fa-cutlery\" aria-hidden=\"true\"></i>",
+            "   <span class='key'>{{ keyTrans('cuisine') }}:</span>",
+            "   <span class='value'>{{ tagTransList('cuisine', tags.cuisine)|default(trans('unknown')) }}</span>",
+            "  </li>",
+            "</ul>"
+        ],
         "description": "{{ tagTrans('amenity', tags.amenity) }}"
     }
 }
diff --git a/health.json b/health.json
index ea16882..ab52d8d 100644
--- a/health.json
+++ b/health.json
@@ -16,12 +16,49 @@
         "uk": "Здоров'я"
     },
     "query": {
-        "11": "(\nnode[amenity~\"^(hospital)$\"];\nway[amenity~\"^(hospital)$\"];\nrelation[amenity~\"^(hospital)$\"];\nnode[healthcare~\"^(hospital|clinic)$\"];\nway[healthcare~\"^(hospital|clinic)$\"];\nrelation[healthcare~\"^(hospital|clinic)$\"];\n)",
-        "14": "(\nnode[amenity~\"^(baby_hatch|clinic|dentist|doctors|hospital|nursing_home|pharmacy|social_facility|veterinary)$\"];\nnode[emergency=defibrillator];\nway[amenity~\"^(baby_hatch|clinic|dentist|doctors|hospital|nursing_home|pharmacy|social_facility|veterinary)$\"];\nrelation[amenity~\"^(baby_hatch|clinic|dentist|doctors|hospital|nursing_home|pharmacy|social_facility|veterinary)$\"];\nnode[healthcare];\nway[healthcare];\nrelation[healthcare];\n)"
+        "11": [
+            "(",
+            "node[amenity~\"^(hospital)$\"];",
+            "way[amenity~\"^(hospital)$\"];",
+            "relation[amenity~\"^(hospital)$\"];",
+            "node[healthcare~\"^(hospital|clinic)$\"];",
+            "way[healthcare~\"^(hospital|clinic)$\"];",
+            "relation[healthcare~\"^(hospital|clinic)$\"];",
+            ")"
+        ],
+        "14": [
+            "(",
+            "node[amenity~\"^(baby_hatch|clinic|dentist|doctors|hospital|nursing_home|pharmacy|social_facility|veterinary)$\"];",
+            "node[emergency=defibrillator];",
+            "way[amenity~\"^(baby_hatch|clinic|dentist|doctors|hospital|nursing_home|pharmacy|social_facility|veterinary)$\"];",
+            "relation[amenity~\"^(baby_hatch|clinic|dentist|doctors|hospital|nursing_home|pharmacy|social_facility|veterinary)$\"];",
+            "node[healthcare];",
+            "way[healthcare];",
+            "relation[healthcare];",
+            ")"
+        ]
     },
     "feature": {
-        "pre": "{% if tags.emergency in [ 'defibrillator' ] %}\n  {% set key = 'emergency' %}\n  {% set value = tags.emergency %}\n{% elseif tags.healthcare %}\n  {% set key = 'healthcare' %}\n  {% set value = tags.healthcare %}\n{% else %}\n  {% set key = 'amenity' %}\n  {% set value = tags.amenity %}\n{% endif %}\n",
-        "description": "{{ tagTrans(key, value) }}\n{% if attribute(tags, 'healthcare:speciality') %}\n-\n{{ tagTransList('healthcare:speciality', attribute(tags, 'healthcare:speciality')) }}\n{% endif %}",
+        "pre": [
+            "{% if tags.emergency in [ 'defibrillator' ] %}",
+            "  {% set key = 'emergency' %}",
+            "  {% set value = tags.emergency %}",
+            "{% elseif tags.healthcare %}",
+            "  {% set key = 'healthcare' %}",
+            "  {% set value = tags.healthcare %}",
+            "{% else %}",
+            "  {% set key = 'amenity' %}",
+            "  {% set value = tags.amenity %}",
+            "{% endif %}",
+            ""
+        ],
+        "description": [
+            "{{ tagTrans(key, value) }}",
+            "{% if attribute(tags, 'healthcare:speciality') %}",
+            "-",
+            "{{ tagTransList('healthcare:speciality', attribute(tags, 'healthcare:speciality')) }}",
+            "{% endif %}"
+        ],
         "markerSign": "{{ const[value] }}"
     },
     "const": {
diff --git a/hiking_routes.json b/hiking_routes.json
index 7e04e78..3c21642 100644
--- a/hiking_routes.json
+++ b/hiking_routes.json
@@ -12,7 +12,12 @@
     },
     "feature": {
         "description": "{{ tagTrans('network', tags.network) }}",
-        "priority": "{% set network_data = const[tags.network] %}\n{% if network_data %}\n{{ network_data.priority }}\n{% endif %}"
+        "priority": [
+            "{% set network_data = const[tags.network] %}",
+            "{% if network_data %}",
+            "{{ network_data.priority }}",
+            "{% endif %}"
+        ]
     },
     "const": {
         "iwn": {
diff --git a/historic.json b/historic.json
index 463636c..efe9e1c 100644
--- a/historic.json
+++ b/historic.json
@@ -18,8 +18,20 @@
         "uk": "Історія"
     },
     "query": {
-        "11": "(\nnode[historic~\"^(castle|archaeological_site|battlefield|monument)$\"];\nway[historic~\"^(castle|archaeological_site|battlefield|monument)$\"];\nrelation[historic~\"^(castle|archaeological_site|battlefield|monument)$\"];\n)",
-        "14": "(\nnode[historic];\nway[historic];\nrelation[historic];\n)"
+        "11": [
+            "(",
+            "node[historic~\"^(castle|archaeological_site|battlefield|monument)$\"];",
+            "way[historic~\"^(castle|archaeological_site|battlefield|monument)$\"];",
+            "relation[historic~\"^(castle|archaeological_site|battlefield|monument)$\"];",
+            ")"
+        ],
+        "14": [
+            "(",
+            "node[historic];",
+            "way[historic];",
+            "relation[historic];",
+            ")"
+        ]
     },
     "feature": {
         "description": "{{ tagTransList('historic', tags.historic) }}",
diff --git a/leisure.json b/leisure.json
index dd15a7f..f719e1a 100644
--- a/leisure.json
+++ b/leisure.json
@@ -15,9 +15,20 @@
         "uk": "Дозвілля"
     },
     "query": {
-        "15": "(\nnode[leisure];\nway[leisure];\nrelation[leisure];\n)"
+        "15": [
+            "(",
+            "node[leisure];",
+            "way[leisure];",
+            "relation[leisure];",
+            ")"
+        ]
     },
     "feature": {
-        "description": "{{ tagTrans('leisure', tags.leisure) }}\n{% if tags.leisure == 'pitch' and tags.sport %}\n- {{ tagTransList('sport', tags.sport) }}\n{% endif %}"
+        "description": [
+            "{{ tagTrans('leisure', tags.leisure) }}",
+            "{% if tags.leisure == 'pitch' and tags.sport %}",
+            "- {{ tagTransList('sport', tags.sport) }}",
+            "{% endif %}"
+        ]
     }
 }
diff --git a/military.json b/military.json
index 6758142..c1207f6 100644
--- a/military.json
+++ b/military.json
@@ -15,11 +15,37 @@
         "ru": "Вооружённые силы"
     },
     "query": {
-        "11": "(\nnode[military~\"^(airfield|danger_area)$\"];\nnode[landuse=military];\nway[military~\"^(airfield|danger_area)$\"];\nway[landuse=military];\nrelation[military~\"^(airfield|danger_area)$\"];\nrelation[landuse=military];\n)",
-        "14": "(\nnode[military];\nnode[landuse=military];\nway[military];\nway[landuse=military];\nrelation[military];\nrelation[landuse=military];\n)"
+        "11": [
+            "(",
+            "node[military~\"^(airfield|danger_area)$\"];",
+            "node[landuse=military];",
+            "way[military~\"^(airfield|danger_area)$\"];",
+            "way[landuse=military];",
+            "relation[military~\"^(airfield|danger_area)$\"];",
+            "relation[landuse=military];",
+            ")"
+        ],
+        "14": [
+            "(",
+            "node[military];",
+            "node[landuse=military];",
+            "way[military];",
+            "way[landuse=military];",
+            "relation[military];",
+            "relation[landuse=military];",
+            ")"
+        ]
     },
     "feature": {
-        "pre": "{% if tags.military %}\n  {% set key = 'military' %}\n  {% set value = tags.military %}\n{% else %}\n  {% set key = 'landuse' %}\n  {% set value = tags.landuse %}\n{% endif %}",
+        "pre": [
+            "{% if tags.military %}",
+            "  {% set key = 'military' %}",
+            "  {% set value = tags.military %}",
+            "{% else %}",
+            "  {% set key = 'landuse' %}",
+            "  {% set value = tags.landuse %}",
+            "{% endif %}"
+        ],
         "description": "{{ tagTrans(key, value) }}"
     }
 }
diff --git a/natural.json b/natural.json
index 925034b..fec35a4 100644
--- a/natural.json
+++ b/natural.json
@@ -15,12 +15,31 @@
         "uk": "Природне середовище"
     },
     "query": {
-        "9": "(\nnode[natural~\"^(peak|volcano)$\"];\n)",
-        "16": "(\nnode[natural];\nway[natural];\nrelation[natural];\n)",
-        "13": "(\nnode[natural~\"^(peak|volcano|wood|scrub|heath|grassland|fell|bare_rock|scree|shingle|sand|mud|water|wetland|glacier|bay|cape|beach|coastline|spring|hot_spring|geyser|valley|ridge|arete|cliff|saddle|rock|stone|sinkhole|cave_entrance)$\"];\nway[natural~\"^(peak|volcano|wood|scrub|heath|grassland|fell|bare_rock|scree|shingle|sand|mud|water|wetland|glacier|bay|cape|beach|coastline|spring|hot_spring|geyser|valley|ridge|arete|cliff|saddle|rock|stone|sinkhole|cave_entrance)$\"];\nrelation[natural~\"^(peak|volcano|wood|scrub|heath|grassland|fell|bare_rock|scree|shingle|sand|mud|water|wetland|glacier|bay|cape|beach|coastline|spring|hot_spring|geyser|valley|ridge|arete|cliff|saddle|rock|stone|sinkhole|cave_entrance)$\"];\n)"
+        "9": [
+            "(",
+            "node[natural~\"^(peak|volcano)$\"];",
+            ")"
+        ],
+        "16": [
+            "(",
+            "node[natural];",
+            "way[natural];",
+            "relation[natural];",
+            ")"
+        ],
+        "13": [
+            "(",
+            "node[natural~\"^(peak|volcano|wood|scrub|heath|grassland|fell|bare_rock|scree|shingle|sand|mud|water|wetland|glacier|bay|cape|beach|coastline|spring|hot_spring|geyser|valley|ridge|arete|cliff|saddle|rock|stone|sinkhole|cave_entrance)$\"];",
+            "way[natural~\"^(peak|volcano|wood|scrub|heath|grassland|fell|bare_rock|scree|shingle|sand|mud|water|wetland|glacier|bay|cape|beach|coastline|spring|hot_spring|geyser|valley|ridge|arete|cliff|saddle|rock|stone|sinkhole|cave_entrance)$\"];",
+            "relation[natural~\"^(peak|volcano|wood|scrub|heath|grassland|fell|bare_rock|scree|shingle|sand|mud|water|wetland|glacier|bay|cape|beach|coastline|spring|hot_spring|geyser|valley|ridge|arete|cliff|saddle|rock|stone|sinkhole|cave_entrance)$\"];",
+            ")"
+        ]
     },
     "feature": {
-        "title": "{{ localizedTag(tags, 'name') | default(trans('unnamed')) }}\n{% if tags.natural == 'peak' and tags.ele %}({{ tags.ele }}m){% endif %}",
+        "title": [
+            "{{ localizedTag(tags, 'name') | default(trans('unnamed')) }}",
+            "{% if tags.natural == 'peak' and tags.ele %}({{ tags.ele }}m){% endif %}"
+        ],
         "description": "{{ tagTrans('natural', tags.natural) }}"
     }
 }
diff --git a/package.json b/package.json
index 6f6115d..98688ec 100644
--- a/package.json
+++ b/package.json
@@ -1,23 +1,23 @@
 {
-  "name": "openstreetbrowser-categories-main",
-  "version": "0.0.1",
-  "description": "Categories for OpenStreetBrowser",
-  "scripts": {
-    "test": "echo \"Error: no test specified\" && exit 1"
-  },
-  "repository": {
-    "type": "git",
-    "url": "git+https://github.com/plepe/openstreetbrowser-categories-main.git"
-  },
-  "keywords": [
-    "openstreetbrowser",
-    "openstreetmap",
-    "osm"
-  ],
-  "author": "Stephan Bösch-Plepelits <skunk@xover.mud.at>",
-  "license": "CC-BY-SA-2.0",
-  "bugs": {
-    "url": "https://github.com/plepe/openstreetbrowser-categories-main/issues"
-  },
-  "homepage": "https://github.com/plepe/openstreetbrowser-categories-main#readme"
+    "name": "openstreetbrowser-categories-main",
+    "version": "0.0.1",
+    "description": "Categories for OpenStreetBrowser",
+    "scripts": {
+        "test": "echo \"Error: no test specified\" && exit 1"
+    },
+    "repository": {
+        "type": "git",
+        "url": "git+https://github.com/plepe/openstreetbrowser-categories-main.git"
+    },
+    "keywords": [
+        "openstreetbrowser",
+        "openstreetmap",
+        "osm"
+    ],
+    "author": "Stephan Bösch-Plepelits <skunk@xover.mud.at>",
+    "license": "CC-BY-SA-2.0",
+    "bugs": {
+        "url": "https://github.com/plepe/openstreetbrowser-categories-main/issues"
+    },
+    "homepage": "https://github.com/plepe/openstreetbrowser-categories-main#readme"
 }
diff --git a/places.json b/places.json
index 27d9fdb..612faa4 100644
--- a/places.json
+++ b/places.json
@@ -29,7 +29,10 @@
     },
     "feature": {
         "title": "{% set loc_name = localizedTag(tags, 'name') %}{{ loc_name }}{% if loc_name != tags.name %} ({{ tags.name }}){% endif %}",
-        "body": "{% if tags.population %}{{ keyTrans('population') }}: {{ tags.population }}{% endif %} \n",
+        "body": [
+            "{% if tags.population %}{{ keyTrans('population') }}: {{ tags.population }}{% endif %} ",
+            ""
+        ],
         "description": "{{ tagTrans('place', tags.place) }}",
         "priority": "{% set priorities = { 'continent': 0, 'country': 1, 'state': 2, 'region': 3, 'city': 4, 'town': 5, 'village': 6, 'suburb': 7, 'hamlet': 8, 'quarter': 9, neighbourhood: 10, 'isolated_dwelling': 11, 'farm': 12 } %}{{ priorities[tags.place] }}"
     }
diff --git a/power.json b/power.json
index 5ce1bc3..f0e353e 100644
--- a/power.json
+++ b/power.json
@@ -22,7 +22,11 @@
     },
     "feature": {
         "markerSign": null,
-        "body": "{% set x='generator:source' %}{% if tags[x] %}<br/>{{ keyTrans('generator:source') }}: {{ tagTransList('generator:source', tags[x]) }}{% endif %}\n{% set x='generator:method' %}{% if tags[x] %}<br/>{{ keyTrans('generator:method') }}: {{ tagTransList('generator:method', tags[x]) }}{% endif %}\n{% set x='generator:type' %}{% if tags[x] %}<br/>{{ tagTransList('generator:type') }}: {{ tagTrans('generator:type', tags[x]) }}{% endif %}",
+        "body": [
+            "{% set x='generator:source' %}{% if tags[x] %}<br/>{{ keyTrans('generator:source') }}: {{ tagTransList('generator:source', tags[x]) }}{% endif %}",
+            "{% set x='generator:method' %}{% if tags[x] %}<br/>{{ keyTrans('generator:method') }}: {{ tagTransList('generator:method', tags[x]) }}{% endif %}",
+            "{% set x='generator:type' %}{% if tags[x] %}<br/>{{ tagTransList('generator:type') }}: {{ tagTrans('generator:type', tags[x]) }}{% endif %}"
+        ],
         "description": "{{ tagTrans('power', tags.power) }}{% set x='generator:source' %}{% if tags[x] %}, {{ tagTransList('generator:source', tags[x]) }}{% endif %}",
         "priority": "{% if tags.power == 'plant' %}0{% elseif tags.power == 'generator' or tags.power == 'line' %}1{% elseif tags.power == 'substation' %}2{% else %}3{% endif %}",
         "popupDescription": "{{ tagTrans('power', tags.power) }}"
diff --git a/pt_amenities.json b/pt_amenities.json
index 861b69c..72a500b 100644
--- a/pt_amenities.json
+++ b/pt_amenities.json
@@ -13,10 +13,27 @@
         "uk": "Amenities"
     },
     "query": {
-        "14": "(\nnode[amenity~\"^(taxi|ticket_counter)$\"];\nway[amenity~\"^(taxi|ticket_counter)$\"];\nrelation[amenity~\"^(taxi|ticket_counter)$\"];\nnode[railway~\"^(subway_entrance)$\"];\nway[railway~\"^(subway_entrance)$\"];\nrelation[railway~\"^(subway_entrance)$\"];\n)"
+        "14": [
+            "(",
+            "node[amenity~\"^(taxi|ticket_counter)$\"];",
+            "way[amenity~\"^(taxi|ticket_counter)$\"];",
+            "relation[amenity~\"^(taxi|ticket_counter)$\"];",
+            "node[railway~\"^(subway_entrance)$\"];",
+            "way[railway~\"^(subway_entrance)$\"];",
+            "relation[railway~\"^(subway_entrance)$\"];",
+            ")"
+        ]
     },
     "feature": {
-        "pre": "{% if tags.railway == 'subway_entrance' %}\n  {% set key = 'railway' %}\n  {% set value = tags.railway %}\n{% else %}\n  {% set key = 'amenity' %}\n  {% set value = tags.amenity %}\n{% endif %}",
+        "pre": [
+            "{% if tags.railway == 'subway_entrance' %}",
+            "  {% set key = 'railway' %}",
+            "  {% set value = tags.railway %}",
+            "{% else %}",
+            "  {% set key = 'amenity' %}",
+            "  {% set value = tags.amenity %}",
+            "{% endif %}"
+        ],
         "description": "{{ tagTrans(key, value) }}",
         "markerSign": "{{ const[value] }}"
     },
diff --git a/pt_routes.json b/pt_routes.json
index 77fc687..d296878 100644
--- a/pt_routes.json
+++ b/pt_routes.json
@@ -9,6 +9,10 @@
     },
     "feature": {
         "description": "{{ tagTrans('route', tags.route) }}",
-        "title": "{% if tags.ref %}{{ tags.ref }} - {% endif %}\n\n{{ localizedTag(tags, 'name') |default(localizedTag(tags, 'operator')) | default(localizedTag(tags, 'ref')) | default(trans('unnamed')) }}"
+        "title": [
+            "{% if tags.ref %}{{ tags.ref }} - {% endif %}",
+            "",
+            "{{ localizedTag(tags, 'name') |default(localizedTag(tags, 'operator')) | default(localizedTag(tags, 'ref')) | default(trans('unnamed')) }}"
+        ]
     }
 }
diff --git a/pt_stops.json b/pt_stops.json
index e328115..bdb63ed 100644
--- a/pt_stops.json
+++ b/pt_stops.json
@@ -17,10 +17,31 @@
         "uk": "Зупинки та станції"
     },
     "query": {
-        "14": "(\nnode[railway~\"^(station|halt|tram_stop|platform)$\"];\nway[railway~\"^(station|platform)$\"];\nnode[highway~\"^(bus_stop|platform)$\"];\nway[highway~\"^(platform)$\"];\nnode[public_transport~\"^(stop_position|platform)$\"];\nway[public_transport~\"^(platform)$\"];\nnode[amenity~\"^(ferry_terminal|bus_station)$\"];\n)"
+        "14": [
+            "(",
+            "node[railway~\"^(station|halt|tram_stop|platform)$\"];",
+            "way[railway~\"^(station|platform)$\"];",
+            "node[highway~\"^(bus_stop|platform)$\"];",
+            "way[highway~\"^(platform)$\"];",
+            "node[public_transport~\"^(stop_position|platform)$\"];",
+            "way[public_transport~\"^(platform)$\"];",
+            "node[amenity~\"^(ferry_terminal|bus_station)$\"];",
+            ")"
+        ]
     },
     "feature": {
-        "pre": "{% if tags.amenity in [ 'ferry_terminal', 'bus_station' ] %}\n  {% set key = 'amenity' %}\n  {% set value = tags.amenity %}\n{% elseif tags.railway == 'platform' or tags.highway == 'platform' or tags.public_transport == 'platform' %}\n  {% set key = 'public_transport' %}\n  {% set value = 'platform' %}\n{% else %}\n  {% set key = 'public_transport' %}\n  {% set value = 'stop_position' %}\n{% endif %}",
+        "pre": [
+            "{% if tags.amenity in [ 'ferry_terminal', 'bus_station' ] %}",
+            "  {% set key = 'amenity' %}",
+            "  {% set value = tags.amenity %}",
+            "{% elseif tags.railway == 'platform' or tags.highway == 'platform' or tags.public_transport == 'platform' %}",
+            "  {% set key = 'public_transport' %}",
+            "  {% set value = 'platform' %}",
+            "{% else %}",
+            "  {% set key = 'public_transport' %}",
+            "  {% set value = 'stop_position' %}",
+            "{% endif %}"
+        ],
         "description": "{{ tagTrans(key, value) }}"
     }
 }
diff --git a/railway-electrification.json b/railway-electrification.json
index 5535f8d..6eac778 100644
--- a/railway-electrification.json
+++ b/railway-electrification.json
@@ -9,7 +9,31 @@
         "14": "way[railway][railway!~'^(platform|abandoned|disused|station|proposed|subway_entrance)$'];"
     },
     "feature": {
-        "pre": "{% if tags.electrified and tags.electrified != 'no' %}\n  {% if tags.voltage < 1000 %}\n    {% set color = colorInterpolate([ '#00ff00', 'blue' ], tags.voltage / 1000) %}\n  {% else %}\n    {% set color = colorInterpolate([ 'blue', 'red' ], (tags.voltage - 1000) / 24000) %}\n  {% endif %}\n{% else %}\n  {% set color='black' %}\n{%endif %}\n\n{% if tags.service == 'yard' or tags.service == 'siding' or tags.service == 'spur' or tags.service == 'crossover' %}\n    {% set weight=2 %}\n  {% else %}\n    {% if tags.railway == 'rail' %}\n      {% if tags.usage == 'main' or tags.usage == 'branch' %}\n        {% set weight=3 %}\n      {% else %}\n        {% set weight=2.5 %}\n      {% endif %}\n    {% else %}\n      {% set weight=2 %}\n  {% endif %}\n{% endif %}",
+        "pre": [
+            "{% if tags.electrified and tags.electrified != 'no' %}",
+            "  {% if tags.voltage < 1000 %}",
+            "    {% set color = colorInterpolate([ '#00ff00', 'blue' ], tags.voltage / 1000) %}",
+            "  {% else %}",
+            "    {% set color = colorInterpolate([ 'blue', 'red' ], (tags.voltage - 1000) / 24000) %}",
+            "  {% endif %}",
+            "{% else %}",
+            "  {% set color='black' %}",
+            "{%endif %}",
+            "",
+            "{% if tags.service == 'yard' or tags.service == 'siding' or tags.service == 'spur' or tags.service == 'crossover' %}",
+            "    {% set weight=2 %}",
+            "  {% else %}",
+            "    {% if tags.railway == 'rail' %}",
+            "      {% if tags.usage == 'main' or tags.usage == 'branch' %}",
+            "        {% set weight=3 %}",
+            "      {% else %}",
+            "        {% set weight=2.5 %}",
+            "      {% endif %}",
+            "    {% else %}",
+            "      {% set weight=2 %}",
+            "  {% endif %}",
+            "{% endif %}"
+        ],
         "style:casing": {
             "color": "white",
             "weight": "{{ weight }}",
@@ -19,17 +43,72 @@
         "style": {
             "color": "{{ color }}",
             "weight": "{{ weight }}",
-            "dashArray": "{% if not tags.electrified or tags.electrified == 'no' %}\n{% elseif tags.frequency == 0 %}\n{% else %}\n5,2\n{% endif %}",
+            "dashArray": [
+                "{% if not tags.electrified or tags.electrified == 'no' %}",
+                "{% elseif tags.frequency == 0 %}",
+                "{% else %}",
+                "5,2",
+                "{% endif %}"
+            ],
             "opacity": "1",
             "lineCap": "butt"
         },
         "styles": "casing,default",
         "markerSign": null,
-        "body": "{{ tagTrans('railway', tags.railway) }}<br/>\n{% if tags.operator %}{{ keyTrans('operator') }}: {{ localizedTag(tags, 'operator') }}<br>{% endif %}\n{% if tags.usage %}{{ keyTrans('usage') }}: {{ tagTrans('usage', tags.usage)|default(trans('unknown')) }}<br/>{% endif %}\n{% if tags.service %}{{ keyTrans('service') }}: {{ tagTrans('service', tags.service ) }}<br/>{% endif %}\n{{ keyTrans('gauge') }}: {{ tags.gauge|default(trans('unknown')) }}<br/>\n{% if tags.electrified == 'no' %}{{ keyTrans('electrified') }}: {{ tagTrans('electrified', 'no') }}{% elseif tags.electrified %}{{ keyTrans('electrified') }}: {{ tagTrans('electrified', tags.electrified) }}, {{ keyTrans('voltage') }}: {{ tags.voltage|default(trans('unknown')) }}, {{ keyTrans('frequency') }}: {{ tags.frequency|default(trans('unknown')) }}<br/>{% endif %}\n",
-        "description": "{{ tagTrans('railway', tags.railway) }} -\n\n{% if tags.electrified == 'no' %}\n  {{ trans('not electrified') }}\n{% elseif tags.electrified %}\n  {{ tags.voltage|default(trans('unknown')) }}V, {{ tags.frequency|default(trans('unknown')) }}Hz\n{% endif %}",
+        "body": [
+            "{{ tagTrans('railway', tags.railway) }}<br/>",
+            "{% if tags.operator %}{{ keyTrans('operator') }}: {{ localizedTag(tags, 'operator') }}<br>{% endif %}",
+            "{% if tags.usage %}{{ keyTrans('usage') }}: {{ tagTrans('usage', tags.usage)|default(trans('unknown')) }}<br/>{% endif %}",
+            "{% if tags.service %}{{ keyTrans('service') }}: {{ tagTrans('service', tags.service ) }}<br/>{% endif %}",
+            "{{ keyTrans('gauge') }}: {{ tags.gauge|default(trans('unknown')) }}<br/>",
+            "{% if tags.electrified == 'no' %}{{ keyTrans('electrified') }}: {{ tagTrans('electrified', 'no') }}{% elseif tags.electrified %}{{ keyTrans('electrified') }}: {{ tagTrans('electrified', tags.electrified) }}, {{ keyTrans('voltage') }}: {{ tags.voltage|default(trans('unknown')) }}, {{ keyTrans('frequency') }}: {{ tags.frequency|default(trans('unknown')) }}<br/>{% endif %}",
+            ""
+        ],
+        "description": [
+            "{{ tagTrans('railway', tags.railway) }} -",
+            "",
+            "{% if tags.electrified == 'no' %}",
+            "  {{ trans('not electrified') }}",
+            "{% elseif tags.electrified %}",
+            "  {{ tags.voltage|default(trans('unknown')) }}V, {{ tags.frequency|default(trans('unknown')) }}Hz",
+            "{% endif %}"
+        ],
         "priority": "{% if tags.railway == 'station' %}0{% elseif tags.railway in [ 'halt', 'tram_stop' ] %}1{% else %}5{% endif %}",
         "title": "{% if tags.ref %}{{ localizedTag(tags, 'ref') }} - {% endif %}{{ localizedTag(tags, 'name')|default(localizedTag(tags, 'operator'))|default(trans('unnamed')) }}",
         "listMarkerSymbol": "line"
     },
-    "info": "<table>\n  {% set color = '#000000' %}\n  <tr>\n    <td>{{ markerLine({ 'weight': 3, 'color': color })|raw }}</td>\n    <td>{{ trans('not electrified') }}</td>\n  </tr>\n{% for i in range(0, 1000, 200) %}\n  {% set color = colorInterpolate([ '#00ff00', 'blue' ], i / 1000) %}\n  <tr>\n    <td>{{ markerLine({ 'weight': 3, 'color': color })|raw }}</td>\n    <td>{{ i }}V</td>\n  </tr>\n{% endfor %}\n\n{% for i in range(3000, 25000, 2000) %}\n  {% set color = colorInterpolate([ 'blue', 'red' ], (i - 1000) / 24000) %}\n  <tr>\n    <td>{{ markerLine({ 'weight': 3, 'color': color })|raw }}</td>\n    <td>{{ i }}V</td>\n  </tr>\n{% endfor %}\n\n  <tr>\n    <td>{{ markerLine({ 'weight': 3, 'color': color })|raw }}</td>\n    <td>{{ trans('direct current') }}</td>\n  </tr>\n\n  <tr>\n    <td>{{ markerLine({ 'styles': [ 'casing', 'default' ], 'style:casing': { 'weight': 3, 'color': 'white' }, 'style': { 'weight': '3', 'dashArray': '5,2', 'lineCap': 'butt', 'color': color } })|raw }}</td>\n    <td>{{ trans('alternating current') }}</td>\n  </tr>\n</table>"
+    "info": [
+        "<table>",
+        "  {% set color = '#000000' %}",
+        "  <tr>",
+        "    <td>{{ markerLine({ 'weight': 3, 'color': color })|raw }}</td>",
+        "    <td>{{ trans('not electrified') }}</td>",
+        "  </tr>",
+        "{% for i in range(0, 1000, 200) %}",
+        "  {% set color = colorInterpolate([ '#00ff00', 'blue' ], i / 1000) %}",
+        "  <tr>",
+        "    <td>{{ markerLine({ 'weight': 3, 'color': color })|raw }}</td>",
+        "    <td>{{ i }}V</td>",
+        "  </tr>",
+        "{% endfor %}",
+        "",
+        "{% for i in range(3000, 25000, 2000) %}",
+        "  {% set color = colorInterpolate([ 'blue', 'red' ], (i - 1000) / 24000) %}",
+        "  <tr>",
+        "    <td>{{ markerLine({ 'weight': 3, 'color': color })|raw }}</td>",
+        "    <td>{{ i }}V</td>",
+        "  </tr>",
+        "{% endfor %}",
+        "",
+        "  <tr>",
+        "    <td>{{ markerLine({ 'weight': 3, 'color': color })|raw }}</td>",
+        "    <td>{{ trans('direct current') }}</td>",
+        "  </tr>",
+        "",
+        "  <tr>",
+        "    <td>{{ markerLine({ 'styles': [ 'casing', 'default' ], 'style:casing': { 'weight': 3, 'color': 'white' }, 'style': { 'weight': '3', 'dashArray': '5,2', 'lineCap': 'butt', 'color': color } })|raw }}</td>",
+        "    <td>{{ trans('alternating current') }}</td>",
+        "  </tr>",
+        "</table>"
+    ]
 }
diff --git a/railway-infrastructure.json b/railway-infrastructure.json
index e0dc819..621bb2f 100644
--- a/railway-infrastructure.json
+++ b/railway-infrastructure.json
@@ -20,19 +20,95 @@
             "color": "{% if tags.railway == 'rail' or tags.railway == 'narrow_gauge' or tags.railway == 'disused' %}{% if tags.usage == 'main' %}#ff8100{% elseif tags.usage == 'branch' %}#daca00{% else %}#000000{% endif %}{% elseif tags.railway == 'subway' %}#0000ff{% elseif tags.railway == 'tram' %}#ff00ff{% elseif tags.railway == 'light_rail' %}#00BD14{% elseif tags.railway == 'platform' %}#3f3f3f{% else %}#000000{% endif %}",
             "weight": "{% if tags.service == 'yard' or tags.service == 'siding' or tags.service == 'spur' or tags.service == 'crossover' %}1{% else %}{% if tags.railway == 'rail' %}{% if tags.usage == 'main' or tags.usage == 'branch' %}3{% else %}2{% endif %}{% elseif tags.railway == 'platform' %}1{% else %}2{% endif %}{% endif %}",
             "dashArray": "{% if tags.railway == 'rail' %}{% elseif tags.railway == 'disused' %}1,5{% elseif tags.railway == 'abandoned' %}1,7{% endif %}",
-            "fillColor": "{% if tags.railway == 'platform' %}\n#3f3f3f\n{% elseif type == 'node' %}\n#ffffff\n{% endif %}",
-            "fill": "{% if tags.railway == 'platform' %}\n1\n{% elseif type == 'node' %}\n1\n{% else %}\n{% endif %}",
+            "fillColor": [
+                "{% if tags.railway == 'platform' %}",
+                "#3f3f3f",
+                "{% elseif type == 'node' %}",
+                "#ffffff",
+                "{% endif %}"
+            ],
+            "fill": [
+                "{% if tags.railway == 'platform' %}",
+                "1",
+                "{% elseif type == 'node' %}",
+                "1",
+                "{% else %}",
+                "{% endif %}"
+            ],
             "opacity": "1",
-            "fillOpacity": "{% if tags.railway == 'platform' %}\n0.2\n{% elseif type == 'node' %}\n0\n{% endif %}"
+            "fillOpacity": [
+                "{% if tags.railway == 'platform' %}",
+                "0.2",
+                "{% elseif type == 'node' %}",
+                "0",
+                "{% endif %}"
+            ]
         },
         "styles": "{% if tags.railway == 'narrow_gauge' %}default,casing{% else %}default{% endif %}",
         "markerSign": "{% if tags.railway in [ 'halt', 'tram_stop', 'station', 'stop', 'subway_entrance' ] %}X{% endif %}",
-        "body": "{% if tags.operator %}{{ keyTrans('operator') }}: {{ localizedTag(tags, 'operator') }}<br>{% endif %}\n{% if tags.usage %}{{ keyTrans('usage') }}: {{ tagTrans('usage', tags.usage)|default(trans('unknown')) }}<br/>{% endif %}\n{% if tags.service %}{{ keyTrans('service') }}: {{ tagTrans('service', tags.service ) }}<br/>{% endif %}\n{{ keyTrans('gauge') }}: {{ tags.gauge|default(trans('unknown')) }}<br/>\n{% if tags.electrified == 'no' %}{{ keyTrans('electrified') }}: {{ tagTrans('electrified', 'no') }}{% elseif tags.electrified %}{{ keyTrans('electrified') }}: {{ tagTrans('electrified', tags.electrified) }}, {{ keyTrans('voltage') }}: {{ tags.voltage|default(trans('unknown')) }}, {{ keyTrans('frequency') }}: {{ tags.frequency|default(trans('unknown')) }}<br/>{% endif %}\n",
+        "body": [
+            "{% if tags.operator %}{{ keyTrans('operator') }}: {{ localizedTag(tags, 'operator') }}<br>{% endif %}",
+            "{% if tags.usage %}{{ keyTrans('usage') }}: {{ tagTrans('usage', tags.usage)|default(trans('unknown')) }}<br/>{% endif %}",
+            "{% if tags.service %}{{ keyTrans('service') }}: {{ tagTrans('service', tags.service ) }}<br/>{% endif %}",
+            "{{ keyTrans('gauge') }}: {{ tags.gauge|default(trans('unknown')) }}<br/>",
+            "{% if tags.electrified == 'no' %}{{ keyTrans('electrified') }}: {{ tagTrans('electrified', 'no') }}{% elseif tags.electrified %}{{ keyTrans('electrified') }}: {{ tagTrans('electrified', tags.electrified) }}, {{ keyTrans('voltage') }}: {{ tags.voltage|default(trans('unknown')) }}, {{ keyTrans('frequency') }}: {{ tags.frequency|default(trans('unknown')) }}<br/>{% endif %}",
+            ""
+        ],
         "description": "{{ tagTrans('railway', tags.railway) }}",
-        "priority": "{% if tags.railway == 'station' %}0\n{% elseif tags.railway in [ 'halt' ] %}1\n{% elseif tags.railway in [ 'tram_stop', 'stop' ] %}2\n{% elseif tags.railway in [ 'subway_entrance' ] %}3\n{% else %}5\n{% endif %}",
+        "priority": [
+            "{% if tags.railway == 'station' %}0",
+            "{% elseif tags.railway in [ 'halt' ] %}1",
+            "{% elseif tags.railway in [ 'tram_stop', 'stop' ] %}2",
+            "{% elseif tags.railway in [ 'subway_entrance' ] %}3",
+            "{% else %}5",
+            "{% endif %}"
+        ],
         "title": "{% if tags.ref %}{{ localizedTag(tags, 'ref') }} - {% endif %}{{ localizedTag(tags, 'name')|default(localizedTag(tags, 'operator'))|default(trans('unnamed')) }}",
-        "listMarkerSymbol": "{% if tags.railway in [ 'station', 'halt', 'tram_stop', 'stop', 'subway_entrance', 'signal' ] %}\n{% else %}\nline\n{% endif %}",
-        "markerSymbol": "{% if tags.railway == 'signal' %}\n<svg width='10' height='10'>\n  <circle cx='4.5' cy='4.5' r='3' style='stroke-width: 3; stroke: #000000; fill: #ffffff'>\n</svg>\n{% else %}\n{{ markerPointer({})|raw }}\n{% endif %}"
+        "listMarkerSymbol": [
+            "{% if tags.railway in [ 'station', 'halt', 'tram_stop', 'stop', 'subway_entrance', 'signal' ] %}",
+            "{% else %}",
+            "line",
+            "{% endif %}"
+        ],
+        "markerSymbol": [
+            "{% if tags.railway == 'signal' %}",
+            "<svg width='10' height='10'>",
+            "  <circle cx='4.5' cy='4.5' r='3' style='stroke-width: 3; stroke: #000000; fill: #ffffff'>",
+            "</svg>",
+            "{% else %}",
+            "{{ markerPointer({})|raw }}",
+            "{% endif %}"
+        ]
     },
-    "info": "<table>\n  <tr>\n    <td>{{ markerLine(evaluate({ \"railway\": \"rail\", \"usage\": \"main\" }))|raw }}</td>\n    <td>{{ tagTrans('railway', 'rail') }}, {{ keyTrans('usage') }}: {{ tagTrans('usage', 'main') }}</td>\n  </tr>\n  <tr>\n    <td>{{ markerLine(evaluate({ \"railway\": \"rail\" }))|raw }}</td>\n    <td>{{ tagTrans('railway', 'rail') }}</td>\n  </tr>\n  <tr>\n    <td>{{ markerLine(evaluate({ \"railway\": \"narrow_gauge\" }))|raw }}</td>\n    <td>{{ tagTrans('railway', 'narrow_gauge') }}</td>\n  </tr>\n  <tr>\n    <td>{{ markerLine(evaluate({ \"railway\": \"light_rail\" }))|raw }}</td>\n    <td>{{ tagTrans('railway', 'light_rail') }}</td>\n  </tr>\n  <tr>\n    <td>{{ markerLine(evaluate({ \"railway\": \"subway\" }))|raw }}</td>\n    <td>{{ tagTrans('railway', 'subway') }}</td>\n  </tr>\n{{ console_log(map) }}\n{% if map.zoom >= 14 %}\n  <tr>\n    <td>{{ markerLine(evaluate({ \"railway\": \"tram\" }))|raw }}</td>\n    <td>{{ tagTrans('railway', 'tram') }}</td>\n  </tr>\n{% endif %}\n</table>"
+    "info": [
+        "<table>",
+        "  <tr>",
+        "    <td>{{ markerLine(evaluate({ \"railway\": \"rail\", \"usage\": \"main\" }))|raw }}</td>",
+        "    <td>{{ tagTrans('railway', 'rail') }}, {{ keyTrans('usage') }}: {{ tagTrans('usage', 'main') }}</td>",
+        "  </tr>",
+        "  <tr>",
+        "    <td>{{ markerLine(evaluate({ \"railway\": \"rail\" }))|raw }}</td>",
+        "    <td>{{ tagTrans('railway', 'rail') }}</td>",
+        "  </tr>",
+        "  <tr>",
+        "    <td>{{ markerLine(evaluate({ \"railway\": \"narrow_gauge\" }))|raw }}</td>",
+        "    <td>{{ tagTrans('railway', 'narrow_gauge') }}</td>",
+        "  </tr>",
+        "  <tr>",
+        "    <td>{{ markerLine(evaluate({ \"railway\": \"light_rail\" }))|raw }}</td>",
+        "    <td>{{ tagTrans('railway', 'light_rail') }}</td>",
+        "  </tr>",
+        "  <tr>",
+        "    <td>{{ markerLine(evaluate({ \"railway\": \"subway\" }))|raw }}</td>",
+        "    <td>{{ tagTrans('railway', 'subway') }}</td>",
+        "  </tr>",
+        "{{ console_log(map) }}",
+        "{% if map.zoom >= 14 %}",
+        "  <tr>",
+        "    <td>{{ markerLine(evaluate({ \"railway\": \"tram\" }))|raw }}</td>",
+        "    <td>{{ tagTrans('railway', 'tram') }}</td>",
+        "  </tr>",
+        "{% endif %}",
+        "</table>"
+    ]
 }
diff --git a/religion.json b/religion.json
index a91b536..c002e8c 100644
--- a/religion.json
+++ b/religion.json
@@ -17,13 +17,45 @@
         "uk": "Релігія"
     },
     "query": {
-        "13": "(\nnode[amenity~\"^(place_of_worship|grave_yard|crematorium)$\"];\nway[amenity~\"^(place_of_worship|grave_yard|crematorium)$\"];\nrelation[amenity~\"^(place_of_worship|grave_yard|crematorium)$\"];\nway[landuse~\"^(cemetery)$\"];\nrelation[landuse~\"^(cemetery)$\"];\n)"
+        "13": [
+            "(",
+            "node[amenity~\"^(place_of_worship|grave_yard|crematorium)$\"];",
+            "way[amenity~\"^(place_of_worship|grave_yard|crematorium)$\"];",
+            "relation[amenity~\"^(place_of_worship|grave_yard|crematorium)$\"];",
+            "way[landuse~\"^(cemetery)$\"];",
+            "relation[landuse~\"^(cemetery)$\"];",
+            ")"
+        ]
     },
     "feature": {
-        "pre": "{% if tags.landuse == 'cemetery' %}\n{% set key = 'landuse' %}\n{% set value = tags.landuse %}\n{% else %}\n{% set key = 'amenity' %}\n{% set value = tags.amenity %}\n{% endif %}",
+        "pre": [
+            "{% if tags.landuse == 'cemetery' %}",
+            "{% set key = 'landuse' %}",
+            "{% set value = tags.landuse %}",
+            "{% else %}",
+            "{% set key = 'amenity' %}",
+            "{% set value = tags.amenity %}",
+            "{% endif %}"
+        ],
         "description": "{{ tagTrans(key, value) }}{% if tags.religion %}: {{ tagTransList('religion', tags.religion) }}{% endif %}",
-        "body": "{% if tags.religion %}\n  {{ keyTrans('religion') }}: {{ tagTransList('religion', tags.religion) }}\n{% endif %}\n{% if tags.denomination %}\n  <br/>\n  {{ keyTrans('denomination') }}: {{ tagTransList('denomination', tags.denomination) }}\n{% endif %}",
-        "markerSign": "{% if tags.religion == 'christian' %}✝\n{% elseif tags.religion == 'muslim' %}☪\n{% elseif tags.religion == 'buddhist' %}☸\n{% elseif tags.religion == 'hindu' %}ॐ\n{% elseif tags.religion == 'jewish' %}✡\n{% elseif tags.religion == 'pagan' %}☆\n{% endif %}",
+        "body": [
+            "{% if tags.religion %}",
+            "  {{ keyTrans('religion') }}: {{ tagTransList('religion', tags.religion) }}",
+            "{% endif %}",
+            "{% if tags.denomination %}",
+            "  <br/>",
+            "  {{ keyTrans('denomination') }}: {{ tagTransList('denomination', tags.denomination) }}",
+            "{% endif %}"
+        ],
+        "markerSign": [
+            "{% if tags.religion == 'christian' %}✝",
+            "{% elseif tags.religion == 'muslim' %}☪",
+            "{% elseif tags.religion == 'buddhist' %}☸",
+            "{% elseif tags.religion == 'hindu' %}ॐ",
+            "{% elseif tags.religion == 'jewish' %}✡",
+            "{% elseif tags.religion == 'pagan' %}☆",
+            "{% endif %}"
+        ],
         "popupDescription": "{{ tagTrans(key, value) }}"
     }
 }
diff --git a/residential.json b/residential.json
index d322a62..b243618 100644
--- a/residential.json
+++ b/residential.json
@@ -17,8 +17,20 @@
         "uk": "Житлова зона"
     },
     "query": {
-        "13": "(\nnode[landuse~\"^(residential)$\"];\nway[landuse~\"^(residential)$\"];\nrelation[landuse~\"^(residential)$\"];\n)",
-        "15": "(\nnode[landuse~\"^(residential|allotments)$\"];\nway[landuse~\"^(residential|allotments)$\"];\nrelation[landuse~\"^(residential|allotments)$\"];\n)"
+        "13": [
+            "(",
+            "node[landuse~\"^(residential)$\"];",
+            "way[landuse~\"^(residential)$\"];",
+            "relation[landuse~\"^(residential)$\"];",
+            ")"
+        ],
+        "15": [
+            "(",
+            "node[landuse~\"^(residential|allotments)$\"];",
+            "way[landuse~\"^(residential|allotments)$\"];",
+            "relation[landuse~\"^(residential|allotments)$\"];",
+            ")"
+        ]
     },
     "feature": {
         "description": "{{ tagTrans('landuse', tags.landuse) }}"
diff --git a/resources.json b/resources.json
index 215f07a..2c2a243 100644
--- a/resources.json
+++ b/resources.json
@@ -11,10 +11,27 @@
         "ru": "Добыча ресурсов"
     },
     "query": {
-        "11": "(\nnode[landuse~\"^(quarry|salt_pond)$\"];\nnode[man_made~\"^(mineshaft)$\"];\nway[landuse~\"^(quarry|salt_pond)$\"];\nway[man_made~\"^(mineshaft)$\"];\nrelation[landuse~\"^(quarry|salt_pond)$\"];\nrelation[man_made~\"^(mineshaft)$\"];\n)"
+        "11": [
+            "(",
+            "node[landuse~\"^(quarry|salt_pond)$\"];",
+            "node[man_made~\"^(mineshaft)$\"];",
+            "way[landuse~\"^(quarry|salt_pond)$\"];",
+            "way[man_made~\"^(mineshaft)$\"];",
+            "relation[landuse~\"^(quarry|salt_pond)$\"];",
+            "relation[man_made~\"^(mineshaft)$\"];",
+            ")"
+        ]
     },
     "feature": {
-        "pre": "{% if tags.landuse in [ 'quarry', 'salt_pond' ] %}\n  {% set key = 'landuse' %}\n  {% set value = tags.landuse %}\n{% else %}\n  {% set key = 'man_made' %}\n  {% set value = tags.man_made %}\n{% endif %}",
+        "pre": [
+            "{% if tags.landuse in [ 'quarry', 'salt_pond' ] %}",
+            "  {% set key = 'landuse' %}",
+            "  {% set value = tags.landuse %}",
+            "{% else %}",
+            "  {% set key = 'man_made' %}",
+            "  {% set value = tags.man_made %}",
+            "{% endif %}"
+        ],
         "description": "{{ tagTrans(key, value) }}"
     }
 }
diff --git a/sport.json b/sport.json
index 0dd15ce..db1dc05 100644
--- a/sport.json
+++ b/sport.json
@@ -19,7 +19,10 @@
     },
     "feature": {
         "description": "{{ tagTransList('sport', tags.sport) }}",
-        "markerSign": "{% set firstSport = tags.sport|split(';')[0] %}\n{{ const[firstSport] }}",
+        "markerSign": [
+            "{% set firstSport = tags.sport|split(';')[0] %}",
+            "{{ const[firstSport] }}"
+        ],
         "title": "{{ localizedTag(tags, 'name') |default(localizedTag(tags, 'operator')) |default(tagTransList('sport', tags.sport)) }}"
     },
     "const": {
diff --git a/tourism_attractions.json b/tourism_attractions.json
index 0afd970..fb1b2bc 100644
--- a/tourism_attractions.json
+++ b/tourism_attractions.json
@@ -18,7 +18,13 @@
         "uk": "Туризм"
     },
     "query": {
-        "13": "(\nnode[tourism][tourism!~\"^(alpine_hut|apartment|camp_site|caravan_site|chalet|guest_house|hostel|hotel|information|motel|wilderness_hut)$\"];\nway[tourism][tourism!~\"^(alpine_hut|apartment|camp_site|caravan_site|chalet|guest_house|hostel|hotel|information|motel|wilderness_hut)$\"];\nrelation[tourism][tourism!~\"^(alpine_hut|apartment|camp_site|caravan_site|chalet|guest_house|hostel|hotel|information|motel|wilderness_hut)$\"]\n)"
+        "13": [
+            "(",
+            "node[tourism][tourism!~\"^(alpine_hut|apartment|camp_site|caravan_site|chalet|guest_house|hostel|hotel|information|motel|wilderness_hut)$\"];",
+            "way[tourism][tourism!~\"^(alpine_hut|apartment|camp_site|caravan_site|chalet|guest_house|hostel|hotel|information|motel|wilderness_hut)$\"];",
+            "relation[tourism][tourism!~\"^(alpine_hut|apartment|camp_site|caravan_site|chalet|guest_house|hostel|hotel|information|motel|wilderness_hut)$\"]",
+            ")"
+        ]
     },
     "feature": {
         "description": "{{ tagTrans('tourism', tags.tourism) }}",
diff --git a/tourism_services.json b/tourism_services.json
index d018ac8..189ca70 100644
--- a/tourism_services.json
+++ b/tourism_services.json
@@ -18,7 +18,13 @@
         "uk": "Туризм"
     },
     "query": {
-        "13": "(\nnode[tourism~\"^(alpine_hut|apartment|camp_site|caravan_site|chalet|guest_house|hostel|hotel|information|motel|wilderness_hut)$\"];\nway[tourism~\"^(alpine_hut|apartment|camp_site|caravan_site|chalet|guest_house|hostel|hotel|information|motel|wilderness_hut)$\"];\nrelation[tourism~\"^(alpine_hut|apartment|camp_site|caravan_site|chalet|guest_house|hostel|hotel|information|motel|wilderness_hut)$\"]\n)"
+        "13": [
+            "(",
+            "node[tourism~\"^(alpine_hut|apartment|camp_site|caravan_site|chalet|guest_house|hostel|hotel|information|motel|wilderness_hut)$\"];",
+            "way[tourism~\"^(alpine_hut|apartment|camp_site|caravan_site|chalet|guest_house|hostel|hotel|information|motel|wilderness_hut)$\"];",
+            "relation[tourism~\"^(alpine_hut|apartment|camp_site|caravan_site|chalet|guest_house|hostel|hotel|information|motel|wilderness_hut)$\"]",
+            ")"
+        ]
     },
     "feature": {
         "description": "{{ tagTrans('tourism', tags.tourism) }}",
diff --git a/walk_amenities.json b/walk_amenities.json
index 194f169..a099acd 100644
--- a/walk_amenities.json
+++ b/walk_amenities.json
@@ -5,11 +5,50 @@
         "de": "Einrichtungen"
     },
     "query": {
-        "13": "(\nnode[highway~\"^(elevator)$\"];\nnode[information];\nnode[tourism~\"^(viewpoint)$\"];\nnode[man_made~\"^(cairn)$\"];\nnode[amenity~\"^(shelter)$\"];\nway[amenity~\"^(shelter)$\"];\nrelation[amenity~\"^(shelter)$\"];\n)",
-        "17": "(\nnode[highway~\"^(crossing|elevator)$\"];\nnode[information];\nnode[tourism~\"^(viewpoint)$\"];\nnode[man_made~\"^(cairn)$\"];\nnode[amenity~\"^(shelter)$\"];\nway[amenity~\"^(shelter)$\"];\nrelation[amenity~\"^(shelter)$\"];\n)"
+        "13": [
+            "(",
+            "node[highway~\"^(elevator)$\"];",
+            "node[information];",
+            "node[tourism~\"^(viewpoint)$\"];",
+            "node[man_made~\"^(cairn)$\"];",
+            "node[amenity~\"^(shelter)$\"];",
+            "way[amenity~\"^(shelter)$\"];",
+            "relation[amenity~\"^(shelter)$\"];",
+            ")"
+        ],
+        "17": [
+            "(",
+            "node[highway~\"^(crossing|elevator)$\"];",
+            "node[information];",
+            "node[tourism~\"^(viewpoint)$\"];",
+            "node[man_made~\"^(cairn)$\"];",
+            "node[amenity~\"^(shelter)$\"];",
+            "way[amenity~\"^(shelter)$\"];",
+            "relation[amenity~\"^(shelter)$\"];",
+            ")"
+        ]
     },
     "feature": {
-        "pre": "{% if tags.information %}\n  {% set key = 'information' %}\n  {% set value = tags.information %}\n{% elseif tags.amenity in [ 'bench', 'shelter' ] %}\n  {% set key = 'amenity' %}\n  {% set value = tags.amenity %}\n{% elseif tags.man_made in [ 'cairn' ] %}\n  {% set key = 'man_made' %}\n  {% set value = tags.man_made %}\n{% elseif tags.tourism in [ 'viewpoint'] %}\n  {% set key = 'tourism' %}\n  {% set value = tags.tourism %}\n{% else %}\n  {% set key = 'highway' %}\n  {% set value = tags.highway %}\n{% endif %}\n\n{% set type_data = const[value] %}",
+        "pre": [
+            "{% if tags.information %}",
+            "  {% set key = 'information' %}",
+            "  {% set value = tags.information %}",
+            "{% elseif tags.amenity in [ 'bench', 'shelter' ] %}",
+            "  {% set key = 'amenity' %}",
+            "  {% set value = tags.amenity %}",
+            "{% elseif tags.man_made in [ 'cairn' ] %}",
+            "  {% set key = 'man_made' %}",
+            "  {% set value = tags.man_made %}",
+            "{% elseif tags.tourism in [ 'viewpoint'] %}",
+            "  {% set key = 'tourism' %}",
+            "  {% set value = tags.tourism %}",
+            "{% else %}",
+            "  {% set key = 'highway' %}",
+            "  {% set value = tags.highway %}",
+            "{% endif %}",
+            "",
+            "{% set type_data = const[value] %}"
+        ],
         "description": "{{ tagTrans(key, value) }}",
         "title": "{{ localizedTag(tags, 'name') |default(localizedTag(tags, 'operator')) | default(localizedTag(tags, 'ref')) | default(tagTrans(key, value)) }}",
         "markerSign": "{{ type_data.sign|raw }}",
diff --git a/waste.json b/waste.json
index a608aec..adfb9e4 100644
--- a/waste.json
+++ b/waste.json
@@ -12,12 +12,51 @@
         "ru": "Переработка отходов"
     },
     "query": {
-        "13": "(\nnode[landuse=landfill];\nnode[man_made=wastewater_plant];\nnode[amenity=recycling][recycling_type=centre];\nway[landuse=landfill];\nway[man_made=wastewater_plant];\nway[amenity=recycling][recycling_type=centre];\nrelation[landuse=landfill];\nrelation[man_made=wastewater_plant];\nrelation[amenity=recycling][recycling_type=centre];\n)",
-        "15": "(\nnode[landuse=landfill];\nnode[man_made=wastewater_plant];\nnode[amenity=recycling];\nway[landuse=landfill];\nway[man_made=wastewater_plant];\nway[amenity=recycling];\nrelation[landuse=landfill];\nrelation[man_made=wastewater_plant];\nrelation[amenity=recycling];\n)"
+        "13": [
+            "(",
+            "node[landuse=landfill];",
+            "node[man_made=wastewater_plant];",
+            "node[amenity=recycling][recycling_type=centre];",
+            "way[landuse=landfill];",
+            "way[man_made=wastewater_plant];",
+            "way[amenity=recycling][recycling_type=centre];",
+            "relation[landuse=landfill];",
+            "relation[man_made=wastewater_plant];",
+            "relation[amenity=recycling][recycling_type=centre];",
+            ")"
+        ],
+        "15": [
+            "(",
+            "node[landuse=landfill];",
+            "node[man_made=wastewater_plant];",
+            "node[amenity=recycling];",
+            "way[landuse=landfill];",
+            "way[man_made=wastewater_plant];",
+            "way[amenity=recycling];",
+            "relation[landuse=landfill];",
+            "relation[man_made=wastewater_plant];",
+            "relation[amenity=recycling];",
+            ")"
+        ]
     },
     "feature": {
-        "pre": "{% if tags.landuse == 'landfill' %}\n  {% set key = 'landuse' %}\n  {% set value = tags.landuse %}\n{% elseif tags.man_made == 'wastewater_plant' %}\n  {% set key = 'man_made' %}\n  {% set value = tags.man_made %}\n{% elseif tags.amenity == 'recycling' %}\n  {% set key = 'amenity' %}\n  {% set value = tags.amenity %}\n{% endif %}",
+        "pre": [
+            "{% if tags.landuse == 'landfill' %}",
+            "  {% set key = 'landuse' %}",
+            "  {% set value = tags.landuse %}",
+            "{% elseif tags.man_made == 'wastewater_plant' %}",
+            "  {% set key = 'man_made' %}",
+            "  {% set value = tags.man_made %}",
+            "{% elseif tags.amenity == 'recycling' %}",
+            "  {% set key = 'amenity' %}",
+            "  {% set value = tags.amenity %}",
+            "{% endif %}"
+        ],
         "description": "{{ tagTrans(key, value) }}",
-        "body": "{% if tags.recycling_type %}\n{{ keyTrans('recycling_type') }}: {{ tagTrans('recycling_type', tags.recycling_type) }}\n{% endif %}"
+        "body": [
+            "{% if tags.recycling_type %}",
+            "{{ keyTrans('recycling_type') }}: {{ tagTrans('recycling_type', tags.recycling_type) }}",
+            "{% endif %}"
+        ]
     }
 }
diff --git a/wikipedia.json b/wikipedia.json
index 897d6cf..9dd0cd2 100644
--- a/wikipedia.json
+++ b/wikipedia.json
@@ -4,11 +4,52 @@
         "en": "Wikipedia"
     },
     "query": {
-        "14": "(\nnode[~\"wikipedia\"~\".\"];\nway[~\"wikipedia\"~\".\"];\nrelation[~\"wikipedia\"~\".\"];\n\nnode[~\"wikidata$\"~\".\"];\nway[~\"wikidata$\"~\".\"];\nrelation[~\"wikidata$\"~\".\"];\n\nnode[wikimedia_commons];\nway[wikimedia_commons];\nrelation[wikimedia_commons];\n)"
+        "14": [
+            "(",
+            "node[~\"wikipedia\"~\".\"];",
+            "way[~\"wikipedia\"~\".\"];",
+            "relation[~\"wikipedia\"~\".\"];",
+            "",
+            "node[~\"wikidata$\"~\".\"];",
+            "way[~\"wikidata$\"~\".\"];",
+            "relation[~\"wikidata$\"~\".\"];",
+            "",
+            "node[wikimedia_commons];",
+            "way[wikimedia_commons];",
+            "relation[wikimedia_commons];",
+            ")"
+        ]
     },
     "feature": {
-        "pre": "{% set errors = [] %}\n{% for k, v in tags %}\n\n{% if k|matches(\"^wikipedia:\") %}\n  {% set errors = errors|merge([\"Uses <tt>wikipedia</tt> and old-style <tt>\" ~ k ~ \"</tt> tag\"]) %}\n{% elseif k|matches(\"^wikipedia:\") %}\n  {% set errors = errors|merge([\"Uses old-style <tt>\" ~ k ~ \"</tt> tag\"]) %}\n{% endif %}\n\n{% if k|matches(\":?wikipedia$\") and not v|matches(\"^[a-z-]+:\") %}\n  {% set errors = errors|merge([\"Tag <tt>\" ~ k ~ \"</tt> does not contain language information: \" ~ v ]) %}\n{% endif %}\n\n{% endfor %}",
-        "description": "{% if errors|length %}\n{{ errors|length }} {{ trans('error', errors|length) }}\n{% endif %}",
-        "body": "{% if errors|length %}\n{{ trans('error', errors|length) }}:<ul>\n{% for e in errors %}\n  <li>{{ e|raw }}</li>\n{% endfor %}\n</ul>\n{% endif %}"
+        "pre": [
+            "{% set errors = [] %}",
+            "{% for k, v in tags %}",
+            "",
+            "{% if k|matches(\"^wikipedia:\") %}",
+            "  {% set errors = errors|merge([\"Uses <tt>wikipedia</tt> and old-style <tt>\" ~ k ~ \"</tt> tag\"]) %}",
+            "{% elseif k|matches(\"^wikipedia:\") %}",
+            "  {% set errors = errors|merge([\"Uses old-style <tt>\" ~ k ~ \"</tt> tag\"]) %}",
+            "{% endif %}",
+            "",
+            "{% if k|matches(\":?wikipedia$\") and not v|matches(\"^[a-z-]+:\") %}",
+            "  {% set errors = errors|merge([\"Tag <tt>\" ~ k ~ \"</tt> does not contain language information: \" ~ v ]) %}",
+            "{% endif %}",
+            "",
+            "{% endfor %}"
+        ],
+        "description": [
+            "{% if errors|length %}",
+            "{{ errors|length }} {{ trans('error', errors|length) }}",
+            "{% endif %}"
+        ],
+        "body": [
+            "{% if errors|length %}",
+            "{{ trans('error', errors|length) }}:<ul>",
+            "{% for e in errors %}",
+            "  <li>{{ e|raw }}</li>",
+            "{% endfor %}",
+            "</ul>",
+            "{% endif %}"
+        ]
     }
 }

From fcfa931758274d451e59c66dc47bafc9c2ddb2f9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Stephan=20B=C3=B6sch-Plepelits?= <skunk@xover.mud.at>
Date: Sun, 26 Nov 2017 15:52:12 +0100
Subject: [PATCH 5/7] Sort properties always by the same order

---
 car_maxspeed.json            |   4 +-
 children.json                |   4 +-
 communication.json           |   4 +-
 cycle_amenities.json         |  10 ++--
 cycle_routes.json            |   9 ++--
 education.json               |   4 +-
 gastro.json                  |   4 +-
 index.json                   |  37 +++++++------
 places.json                  |   2 +-
 places_geo.json              |   2 +-
 power.json                   |   8 +--
 pt_routes.json               |   4 +-
 public.json                  |   4 +-
 railway-electrification.json |  63 +++++++++++-----------
 railway-infrastructure.json  | 100 +++++++++++++++++------------------
 religion.json                |   4 +-
 sport.json                   |   4 +-
 walk_amenities.json          |   2 +-
 works.json                   |   5 +-
 19 files changed, 135 insertions(+), 139 deletions(-)

diff --git a/car_maxspeed.json b/car_maxspeed.json
index 4d1c3ca..9e31a5f 100644
--- a/car_maxspeed.json
+++ b/car_maxspeed.json
@@ -46,9 +46,9 @@
             "{{ trans('unknown') }}",
             "{% endif %}"
         ],
+        "markerSign": null,
         "style": {
             "color": "{{ color }}"
-        },
-        "markerSign": null
+        }
     }
 }
diff --git a/children.json b/children.json
index 47d4147..57fe560 100644
--- a/children.json
+++ b/children.json
@@ -8,7 +8,7 @@
         "15": "(node[leisure~'^(playground|summer_camp|indoor_play)$'];way[leisure~'^(playground|summer_camp|indoor_play)$'];relation[leisure~'^(playground|summer_camp|indoor_play)$'];node[shop~'^(baby_goods|toys)$'];way[shop~'^(baby_goods|toys)$'];relation[shop~'^(baby_goods|toys)$'];node[amenity=toilets][diaper];way[amenity=toilets][diaper];relation[amenity=toilets][diaper];node[kids_area];way[kids_area];relation[kids_area];);"
     },
     "feature": {
-        "markerSign": "{% if tags.leisure=='playground' %}&#9977;{% elseif tags.leisure=='summer_camp'%}&#127957;{% elseif tags.leisure=='indoor_play' or tags.kids_area %}&#127968;{% elseif tags.shop=='baby_goods' or tags.shop=='toys' %}<i class=\"fa fa-shopping-cart\"></i>{% elseif tags.amenity=='toilets' and tags.diaper %}&#128701;&#128700;{% endif %}",
-        "description": "{% if tags.leisure=='playground' %}{{ tagTrans('leisure', 'playground') }}{% elseif tags.leisure=='summer_camp'%}{{ tagTrans('leisure', 'summer_camp') }}{% elseif tags.leisure=='indoor_play' %}{{ tagTrans('leisure', 'indoor_play') }}{% elseif tags.kids_area %}{{ keyTrans('kids_area') }}{% elseif tags.shop=='baby_goods' or tags.shop=='toys' %}{{ keyTrans('shop') }}: {{ tagTrans('shop', tags.shop) }}{% elseif tags.amenity=='toilets' and tags.diaper %}{{ tagTrans('amenity', 'toilets') }} with diaper changing table{% endif %}"
+        "description": "{% if tags.leisure=='playground' %}{{ tagTrans('leisure', 'playground') }}{% elseif tags.leisure=='summer_camp'%}{{ tagTrans('leisure', 'summer_camp') }}{% elseif tags.leisure=='indoor_play' %}{{ tagTrans('leisure', 'indoor_play') }}{% elseif tags.kids_area %}{{ keyTrans('kids_area') }}{% elseif tags.shop=='baby_goods' or tags.shop=='toys' %}{{ keyTrans('shop') }}: {{ tagTrans('shop', tags.shop) }}{% elseif tags.amenity=='toilets' and tags.diaper %}{{ tagTrans('amenity', 'toilets') }} with diaper changing table{% endif %}",
+        "markerSign": "{% if tags.leisure=='playground' %}&#9977;{% elseif tags.leisure=='summer_camp'%}&#127957;{% elseif tags.leisure=='indoor_play' or tags.kids_area %}&#127968;{% elseif tags.shop=='baby_goods' or tags.shop=='toys' %}<i class=\"fa fa-shopping-cart\"></i>{% elseif tags.amenity=='toilets' and tags.diaper %}&#128701;&#128700;{% endif %}"
     }
 }
diff --git a/communication.json b/communication.json
index 1a7f644..43c3f04 100644
--- a/communication.json
+++ b/communication.json
@@ -23,8 +23,8 @@
     },
     "feature": {
         "title": "{{ localizedTag(tags, 'name') |default(localizedTag(tags, 'operator')) |default(tagTrans('amenity', tags.amenity)) }}",
-        "markerSign": "{% if tags.amenity=='post_office' %}&#127972;{% elseif tags.amenity=='post_box'%}&#128238;{% elseif tags.amenity=='internet_cafe' %}&#128187;{% elseif tags.amenity=='telephone' %}&#9990;{% endif %}",
+        "description": "{{ tagTrans('amenity', tags.amenity) }}",
         "body": "{% if tags.operator %}{{ keyTrans('operator') }}: {{ localizedTag(tags, 'operator') }}<br/>{% endif %}",
-        "description": "{{ tagTrans('amenity', tags.amenity) }}"
+        "markerSign": "{% if tags.amenity=='post_office' %}&#127972;{% elseif tags.amenity=='post_box'%}&#128238;{% elseif tags.amenity=='internet_cafe' %}&#128187;{% elseif tags.amenity=='telephone' %}&#9990;{% endif %}"
     }
 }
diff --git a/cycle_amenities.json b/cycle_amenities.json
index edbb0cd..f6ac9c8 100644
--- a/cycle_amenities.json
+++ b/cycle_amenities.json
@@ -51,6 +51,11 @@
             "",
             "{% set constIndex = (key ~ \"=\" ~ value) %}"
         ],
+        "title": [
+            "{{ localizedTag(tags, 'name') |default(localizedTag(tags, 'operator')) | default(localizedTag(tags, 'ref')) | default(trans('unnamed')) }}",
+            "",
+            "{% if tags.capacity %}({{ tags.capacity }}){% endif %}"
+        ],
         "description": "{{ tagTrans(key, value) }}",
         "body": [
             "{% if tags.capacity %}",
@@ -58,11 +63,6 @@
             "{% endif %}"
         ],
         "markerSign": "{{ const[constIndex]['sign'] }}",
-        "title": [
-            "{{ localizedTag(tags, 'name') |default(localizedTag(tags, 'operator')) | default(localizedTag(tags, 'ref')) | default(trans('unnamed')) }}",
-            "",
-            "{% if tags.capacity %}({{ tags.capacity }}){% endif %}"
-        ],
         "priority": [
             "{% if const[constIndex] and const[constIndex]['priority']['capacity'] %}",
             "  {% set max=const[constIndex]['priority']['default'] %}",
diff --git a/cycle_routes.json b/cycle_routes.json
index ad0be82..a3d96f3 100644
--- a/cycle_routes.json
+++ b/cycle_routes.json
@@ -1,22 +1,21 @@
 {
+    "type": "overpass",
     "name": {
         "de": "Radrouten",
         "en": "Cycle Routes"
     },
-    "type": "overpass",
     "query": {
         "6": "relation[type=route][route=bicycle][network~'^(icn)$']",
         "9": "relation[type=route][route=bicycle][network~'^(icn|ncn)$']",
         "12": "relation[type=route][route=bicycle][network~'^(icn|ncn|rcn)$']",
         "15": "relation[type=route][route=bicycle]"
     },
-    "minZoom": 6,
     "feature": {
+        "priority": "{% if tags.network=='icn' %}0{% elseif tags.network=='ncn' %}1{% elseif tags.network=='rcn' %}2{% else %}3{% endif %}",
         "style": {
-            "color": "{% if tags.network=='icn' %}#ff0000{% elseif tags.network=='ncn' %}#ff007f{% elseif tags.network=='rcn' %}#7f00ff{% else %}#0000ff{% endif %}",
             "weight": 4,
+            "color": "{% if tags.network=='icn' %}#ff0000{% elseif tags.network=='ncn' %}#ff007f{% elseif tags.network=='rcn' %}#7f00ff{% else %}#0000ff{% endif %}",
             "opacity": 1
-        },
-        "priority": "{% if tags.network=='icn' %}0{% elseif tags.network=='ncn' %}1{% elseif tags.network=='rcn' %}2{% else %}3{% endif %}"
+        }
     }
 }
diff --git a/education.json b/education.json
index 9cfbee8..6372d64 100644
--- a/education.json
+++ b/education.json
@@ -22,9 +22,9 @@
         "16": "(node[amenity~'^(college|university|library|school|kindergarten|public_bookcase)$'];way[amenity~'^(college|university|library|school|kindergarten|public_bookcase)$'];relation[amenity~'^(college|university|library|school|kindergarten|public_bookcase)$'];)"
     },
     "feature": {
-        "markerSign": "{% if tags.amenity == 'university' or tags.amenity == 'college' %}🎓{% elseif tags.amenity == 'library' %}🕮{% elseif tags.amenity == 'school' or tags.amenity == 'language_school' %}🏫{% elseif tags.amenity == 'kindergarten' %}⛹{% elseif tags.amenity == 'public_bookcase' %}📚{% endif %}",
-        "body": "{% if tags.operator %}{{ keyTrans('operator') }}: {{ tags.operator }}<br/>{% endif %}",
         "description": "{{ tagTrans('amenity', tags.amenity) }}",
+        "body": "{% if tags.operator %}{{ keyTrans('operator') }}: {{ tags.operator }}<br/>{% endif %}",
+        "markerSign": "{% if tags.amenity == 'university' or tags.amenity == 'college' %}🎓{% elseif tags.amenity == 'library' %}🕮{% elseif tags.amenity == 'school' or tags.amenity == 'language_school' %}🏫{% elseif tags.amenity == 'kindergarten' %}⛹{% elseif tags.amenity == 'public_bookcase' %}📚{% endif %}",
         "priority": "{% if tags.amenity == 'university' %}0{% elseif tags.amenity == 'college' %}1{% elseif tags.amenity == 'library' %}2{% elseif tags.amenity == 'school' or tags.amenity == 'language_school' %}3{% elseif tags.amenity == 'kindergarten' %}4{% elseif tags.amenity == 'public_bookcase' %}5{% endif %}"
     }
 }
diff --git a/gastro.json b/gastro.json
index e31e3a2..44504c5 100644
--- a/gastro.json
+++ b/gastro.json
@@ -20,7 +20,7 @@
         "16": "(node[amenity~'^(bar|biergarten|cafe|fast_food|ice_cream|pub|restaurant)$'];way[amenity~'^(bar|biergarten|cafe|fast_food|ice_cream|pub|restaurant)$'];relation[amenity~'^(bar|biergarten|cafe|fast_food|ice_cream|pub|restaurant)$'];);"
     },
     "feature": {
-        "markerSign": "{% if tags.amenity=='bar' %}&#127864;{% elseif tags.amenity=='biergarten'%}&#127867;{% elseif tags.amenity=='cafe' %}&#9749;{% elseif tags.amenity=='fast_food' %}&#127828;{% elseif tags.amenity=='ice_cream' %}&#127848;{% elseif tags.amenity=='pub' %}&#127866;{% else %}&#127860;{% endif %}",
+        "description": "{{ tagTrans('amenity', tags.amenity) }}",
         "body": [
             "<ul>",
             "  <li class='hasSymbol'>",
@@ -30,6 +30,6 @@
             "  </li>",
             "</ul>"
         ],
-        "description": "{{ tagTrans('amenity', tags.amenity) }}"
+        "markerSign": "{% if tags.amenity=='bar' %}&#127864;{% elseif tags.amenity=='biergarten'%}&#127867;{% elseif tags.amenity=='cafe' %}&#9749;{% elseif tags.amenity=='fast_food' %}&#127828;{% elseif tags.amenity=='ice_cream' %}&#127848;{% elseif tags.amenity=='pub' %}&#127866;{% else %}&#127860;{% endif %}"
     }
 }
diff --git a/index.json b/index.json
index b17c2b8..a91bb32 100644
--- a/index.json
+++ b/index.json
@@ -2,6 +2,8 @@
     "type": "index",
     "subCategories": [
         {
+            "id": "leisure_sport_shopping",
+            "type": "index",
             "name": {
                 "ast": "Recréu, deportes y compres",
                 "ca": "Oci, esport i compres",
@@ -21,8 +23,6 @@
                 "ru": "Досуг",
                 "uk": "Дозвілля"
             },
-            "id": "leisure_sport_shopping",
-            "type": "index",
             "subCategories": [
                 {
                     "id": "gastro"
@@ -42,6 +42,8 @@
             ]
         },
         {
+            "id": "services",
+            "type": "index",
             "name": {
                 "ast": "Servicios",
                 "ca": "Serveis",
@@ -61,8 +63,6 @@
                 "ru": "Услуги",
                 "uk": "Послуги"
             },
-            "id": "services",
-            "type": "index",
             "subCategories": [
                 {
                     "id": "emergency"
@@ -91,6 +91,8 @@
             "id": "culture_religion"
         },
         {
+            "id": "transport",
+            "type": "index",
             "name": {
                 "ast": "Tresporte",
                 "cs": "Doprava",
@@ -106,19 +108,16 @@
                 "pl": "Transport",
                 "ro": "Transport",
                 "ru": "Транспорт",
-                "tr": "Toplu Taşıma",
                 "uk": "Транспорт"
             },
-            "id": "transport",
-            "type": "index",
             "subCategories": [
                 {
+                    "id": "transport_walk",
+                    "type": "index",
                     "name": {
                         "de": "Zu Fuß gehen",
                         "en": "Walking"
                     },
-                    "id": "transport_walk",
-                    "type": "index",
                     "subCategories": [
                         {
                             "id": "walk_amenities"
@@ -129,12 +128,12 @@
                     ]
                 },
                 {
+                    "id": "transport_cycle",
+                    "type": "index",
                     "name": {
                         "de": "Radfahren",
                         "en": "Cycling"
                     },
-                    "id": "transport_cycle",
-                    "type": "index",
                     "subCategories": [
                         {
                             "id": "cycle_amenities"
@@ -145,6 +144,8 @@
                     ]
                 },
                 {
+                    "id": "transport_pt",
+                    "type": "index",
                     "name": {
                         "ast": "Tresporte Públicu",
                         "cs": "Veřejná doprava",
@@ -162,8 +163,6 @@
                         "ru": "Общественный транспорт",
                         "uk": "Громадський транспорт"
                     },
-                    "id": "transport_pt",
-                    "type": "index",
                     "subCategories": [
                         {
                             "id": "pt_amenities"
@@ -177,6 +176,8 @@
                     ]
                 },
                 {
+                    "id": "transport_car",
+                    "type": "index",
                     "name": {
                         "ast": "Tráficu individual",
                         "cs": "Individuální doprava",
@@ -191,8 +192,6 @@
                         "ru": "Частный транспорт",
                         "uk": "Приватний транспорт"
                     },
-                    "id": "transport_car",
-                    "type": "index",
                     "subCategories": [
                         {
                             "id": "car_amenities"
@@ -205,6 +204,8 @@
             ]
         },
         {
+            "id": "agriculture_industry",
+            "type": "index",
             "name": {
                 "ast": "Agricultura ya industria",
                 "cs": "Průmysl a zemědělství",
@@ -222,8 +223,6 @@
                 "ru": "Сельское хозяйство и промышленность",
                 "uk": "Сільське господартво та промисловість"
             },
-            "id": "agriculture_industry",
-            "type": "index",
             "subCategories": [
                 {
                     "id": "agriculture"
@@ -277,12 +276,12 @@
             "id": "places_geo"
         },
         {
+            "id": "special",
+            "type": "index",
             "name": {
                 "en": "Special",
                 "de": "Spezial"
             },
-            "id": "special",
-            "type": "index",
             "subCategories": [
                 {
                     "id": "wikipedia"
diff --git a/places.json b/places.json
index 612faa4..800deaf 100644
--- a/places.json
+++ b/places.json
@@ -29,11 +29,11 @@
     },
     "feature": {
         "title": "{% set loc_name = localizedTag(tags, 'name') %}{{ loc_name }}{% if loc_name != tags.name %} ({{ tags.name }}){% endif %}",
+        "description": "{{ tagTrans('place', tags.place) }}",
         "body": [
             "{% if tags.population %}{{ keyTrans('population') }}: {{ tags.population }}{% endif %} ",
             ""
         ],
-        "description": "{{ tagTrans('place', tags.place) }}",
         "priority": "{% set priorities = { 'continent': 0, 'country': 1, 'state': 2, 'region': 3, 'city': 4, 'town': 5, 'village': 6, 'suburb': 7, 'hamlet': 8, 'quarter': 9, neighbourhood: 10, 'isolated_dwelling': 11, 'farm': 12 } %}{{ priorities[tags.place] }}"
     }
 }
diff --git a/places_geo.json b/places_geo.json
index 3eb7f7c..469ccac 100644
--- a/places_geo.json
+++ b/places_geo.json
@@ -1,4 +1,5 @@
 {
+    "type": "index",
     "name": {
         "ast": "Llugares",
         "cs": "Sídla",
@@ -16,7 +17,6 @@
         "ru": "Места",
         "uk": "Місцевість"
     },
-    "type": "index",
     "subCategories": [
         {
             "id": "places"
diff --git a/power.json b/power.json
index f0e353e..baa3ffb 100644
--- a/power.json
+++ b/power.json
@@ -21,14 +21,14 @@
         "16": "(node[power];way[power];relation[power];)"
     },
     "feature": {
-        "markerSign": null,
+        "description": "{{ tagTrans('power', tags.power) }}{% set x='generator:source' %}{% if tags[x] %}, {{ tagTransList('generator:source', tags[x]) }}{% endif %}",
+        "popupDescription": "{{ tagTrans('power', tags.power) }}",
         "body": [
             "{% set x='generator:source' %}{% if tags[x] %}<br/>{{ keyTrans('generator:source') }}: {{ tagTransList('generator:source', tags[x]) }}{% endif %}",
             "{% set x='generator:method' %}{% if tags[x] %}<br/>{{ keyTrans('generator:method') }}: {{ tagTransList('generator:method', tags[x]) }}{% endif %}",
             "{% set x='generator:type' %}{% if tags[x] %}<br/>{{ tagTransList('generator:type') }}: {{ tagTrans('generator:type', tags[x]) }}{% endif %}"
         ],
-        "description": "{{ tagTrans('power', tags.power) }}{% set x='generator:source' %}{% if tags[x] %}, {{ tagTransList('generator:source', tags[x]) }}{% endif %}",
-        "priority": "{% if tags.power == 'plant' %}0{% elseif tags.power == 'generator' or tags.power == 'line' %}1{% elseif tags.power == 'substation' %}2{% else %}3{% endif %}",
-        "popupDescription": "{{ tagTrans('power', tags.power) }}"
+        "markerSign": null,
+        "priority": "{% if tags.power == 'plant' %}0{% elseif tags.power == 'generator' or tags.power == 'line' %}1{% elseif tags.power == 'substation' %}2{% else %}3{% endif %}"
     }
 }
diff --git a/pt_routes.json b/pt_routes.json
index d296878..57be6f5 100644
--- a/pt_routes.json
+++ b/pt_routes.json
@@ -8,11 +8,11 @@
         "13": "relation[type=route][route~\"^(bus|trolleybus|ferry|train|tram)$\"];"
     },
     "feature": {
-        "description": "{{ tagTrans('route', tags.route) }}",
         "title": [
             "{% if tags.ref %}{{ tags.ref }} - {% endif %}",
             "",
             "{{ localizedTag(tags, 'name') |default(localizedTag(tags, 'operator')) | default(localizedTag(tags, 'ref')) | default(trans('unnamed')) }}"
-        ]
+        ],
+        "description": "{{ tagTrans('route', tags.route) }}"
     }
 }
diff --git a/public.json b/public.json
index 66d9bdb..c7b7ad2 100644
--- a/public.json
+++ b/public.json
@@ -21,8 +21,8 @@
     },
     "feature": {
         "title": "{{ tags.name|default(tags.operator)|default(tagTrans('amenity', tags.amenity)) }}",
-        "markerSign": "{% if tags.amenity=='post_office' %}&#127972;{% elseif tags.amenity=='post_box'%}&#128238;{% elseif tags.amenity=='internet_cafe' %}&#128187;{% elseif tags.amenity=='telephone' %}&#9990;{% endif %}",
+        "description": "{{ tagTrans('amenity', tags.amenity) }}",
         "body": "{% if tags.operator %}{{ keyTrans('operator') }}: {{ tags.operator }}<br/>{% endif %}",
-        "description": "{{ tagTrans('amenity', tags.amenity) }}"
+        "markerSign": "{% if tags.amenity=='post_office' %}&#127972;{% elseif tags.amenity=='post_box'%}&#128238;{% elseif tags.amenity=='internet_cafe' %}&#128187;{% elseif tags.amenity=='telephone' %}&#9990;{% endif %}"
     }
 }
diff --git a/railway-electrification.json b/railway-electrification.json
index 6eac778..07d0018 100644
--- a/railway-electrification.json
+++ b/railway-electrification.json
@@ -34,36 +34,7 @@
             "  {% endif %}",
             "{% endif %}"
         ],
-        "style:casing": {
-            "color": "white",
-            "weight": "{{ weight }}",
-            "fill": null,
-            "opacity": "1"
-        },
-        "style": {
-            "color": "{{ color }}",
-            "weight": "{{ weight }}",
-            "dashArray": [
-                "{% if not tags.electrified or tags.electrified == 'no' %}",
-                "{% elseif tags.frequency == 0 %}",
-                "{% else %}",
-                "5,2",
-                "{% endif %}"
-            ],
-            "opacity": "1",
-            "lineCap": "butt"
-        },
-        "styles": "casing,default",
-        "markerSign": null,
-        "body": [
-            "{{ tagTrans('railway', tags.railway) }}<br/>",
-            "{% if tags.operator %}{{ keyTrans('operator') }}: {{ localizedTag(tags, 'operator') }}<br>{% endif %}",
-            "{% if tags.usage %}{{ keyTrans('usage') }}: {{ tagTrans('usage', tags.usage)|default(trans('unknown')) }}<br/>{% endif %}",
-            "{% if tags.service %}{{ keyTrans('service') }}: {{ tagTrans('service', tags.service ) }}<br/>{% endif %}",
-            "{{ keyTrans('gauge') }}: {{ tags.gauge|default(trans('unknown')) }}<br/>",
-            "{% if tags.electrified == 'no' %}{{ keyTrans('electrified') }}: {{ tagTrans('electrified', 'no') }}{% elseif tags.electrified %}{{ keyTrans('electrified') }}: {{ tagTrans('electrified', tags.electrified) }}, {{ keyTrans('voltage') }}: {{ tags.voltage|default(trans('unknown')) }}, {{ keyTrans('frequency') }}: {{ tags.frequency|default(trans('unknown')) }}<br/>{% endif %}",
-            ""
-        ],
+        "title": "{% if tags.ref %}{{ localizedTag(tags, 'ref') }} - {% endif %}{{ localizedTag(tags, 'name')|default(localizedTag(tags, 'operator'))|default(trans('unnamed')) }}",
         "description": [
             "{{ tagTrans('railway', tags.railway) }} -",
             "",
@@ -73,9 +44,37 @@
             "  {{ tags.voltage|default(trans('unknown')) }}V, {{ tags.frequency|default(trans('unknown')) }}Hz",
             "{% endif %}"
         ],
+        "body": [
+            "{{ tagTrans('railway', tags.railway) }}<br/>",
+            "{% if tags.operator %}{{ keyTrans('operator') }}: {{ localizedTag(tags, 'operator') }}<br>{% endif %}",
+            "{% if tags.usage %}{{ keyTrans('usage') }}: {{ tagTrans('usage', tags.usage)|default(trans('unknown')) }}<br/>{% endif %}",
+            "{% if tags.service %}{{ keyTrans('service') }}: {{ tagTrans('service', tags.service ) }}<br/>{% endif %}",
+            "{{ keyTrans('gauge') }}: {{ tags.gauge|default(trans('unknown')) }}<br/>",
+            "{% if tags.electrified == 'no' %}{{ keyTrans('electrified') }}: {{ tagTrans('electrified', 'no') }}{% elseif tags.electrified %}{{ keyTrans('electrified') }}: {{ tagTrans('electrified', tags.electrified) }}, {{ keyTrans('voltage') }}: {{ tags.voltage|default(trans('unknown')) }}, {{ keyTrans('frequency') }}: {{ tags.frequency|default(trans('unknown')) }}<br/>{% endif %}"
+        ],
+        "markerSign": null,
+        "listMarkerSymbol": "line",
         "priority": "{% if tags.railway == 'station' %}0{% elseif tags.railway in [ 'halt', 'tram_stop' ] %}1{% else %}5{% endif %}",
-        "title": "{% if tags.ref %}{{ localizedTag(tags, 'ref') }} - {% endif %}{{ localizedTag(tags, 'name')|default(localizedTag(tags, 'operator'))|default(trans('unnamed')) }}",
-        "listMarkerSymbol": "line"
+        "styles": "casing,default",
+        "style": {
+            "weight": "{{ weight }}",
+            "color": "{{ color }}",
+            "opacity": "1",
+            "lineCap": "butt",
+            "dashArray": [
+                "{% if not tags.electrified or tags.electrified == 'no' %}",
+                "{% elseif tags.frequency == 0 %}",
+                "{% else %}",
+                "5,2",
+                "{% endif %}"
+            ]
+        },
+        "style:casing": {
+            "weight": "{{ weight }}",
+            "color": "white",
+            "opacity": "1",
+            "fill": null
+        }
     },
     "info": [
         "<table>",
diff --git a/railway-infrastructure.json b/railway-infrastructure.json
index 621bb2f..0b53f8a 100644
--- a/railway-infrastructure.json
+++ b/railway-infrastructure.json
@@ -10,23 +10,46 @@
         "17": "(node[railway];way[railway];)"
     },
     "feature": {
-        "style:casing": {
-            "weight": "{% if tags.service == 'yard' or tags.service == 'siding' or tags.service == 'spur' or tags.service == 'crossover' %}5{% else %}{% if tags.railway == 'rail' %}{% if tags.usage == 'main' or tags.usage == 'branch' %}7{% else %}6{% endif %}{% elseif tags.railway == 'platform' %}5{% else %}6{% endif %}{% endif %}",
-            "color": "{% if tags.railway == 'rail' or tags.railway == 'narrow_gauge' or tags.railway == 'disused' %}{% if tags.usage == 'main' %}#ff8100{% elseif tags.usage == 'branch' %}#daca00{% else %}#000000{% endif %}{% elseif tags.railway == 'subway' %}#0000ff{% elseif tags.railway == 'tram' %}#ff00ff{% elseif tags.railway == 'light_rail' %}#00BD14{% elseif tags.railway == 'platform' %}#3f3f3f{% else %}#000000{% endif %}",
-            "dashArray": "2,4",
-            "lineCap": "butt"
-        },
+        "title": "{% if tags.ref %}{{ localizedTag(tags, 'ref') }} - {% endif %}{{ localizedTag(tags, 'name')|default(localizedTag(tags, 'operator'))|default(trans('unnamed')) }}",
+        "description": "{{ tagTrans('railway', tags.railway) }}",
+        "body": [
+            "{% if tags.operator %}{{ keyTrans('operator') }}: {{ localizedTag(tags, 'operator') }}<br>{% endif %}",
+            "{% if tags.usage %}{{ keyTrans('usage') }}: {{ tagTrans('usage', tags.usage)|default(trans('unknown')) }}<br/>{% endif %}",
+            "{% if tags.service %}{{ keyTrans('service') }}: {{ tagTrans('service', tags.service ) }}<br/>{% endif %}",
+            "{{ keyTrans('gauge') }}: {{ tags.gauge|default(trans('unknown')) }}<br/>",
+            "{% if tags.electrified == 'no' %}{{ keyTrans('electrified') }}: {{ tagTrans('electrified', 'no') }}{% elseif tags.electrified %}{{ keyTrans('electrified') }}: {{ tagTrans('electrified', tags.electrified) }}, {{ keyTrans('voltage') }}: {{ tags.voltage|default(trans('unknown')) }}, {{ keyTrans('frequency') }}: {{ tags.frequency|default(trans('unknown')) }}<br/>{% endif %}",
+            ""
+        ],
+        "markerSign": "{% if tags.railway in [ 'halt', 'tram_stop', 'station', 'stop', 'subway_entrance' ] %}X{% endif %}",
+        "markerSymbol": [
+            "{% if tags.railway == 'signal' %}",
+            "<svg width='10' height='10'>",
+            "  <circle cx='4.5' cy='4.5' r='3' style='stroke-width: 3; stroke: #000000; fill: #ffffff'>",
+            "</svg>",
+            "{% else %}",
+            "{{ markerPointer({})|raw }}",
+            "{% endif %}"
+        ],
+        "listMarkerSymbol": [
+            "{% if tags.railway in [ 'station', 'halt', 'tram_stop', 'stop', 'subway_entrance', 'signal' ] %}",
+            "{% else %}",
+            "line",
+            "{% endif %}"
+        ],
+        "priority": [
+            "{% if tags.railway == 'station' %}0",
+            "{% elseif tags.railway in [ 'halt' ] %}1",
+            "{% elseif tags.railway in [ 'tram_stop', 'stop' ] %}2",
+            "{% elseif tags.railway in [ 'subway_entrance' ] %}3",
+            "{% else %}5",
+            "{% endif %}"
+        ],
+        "styles": "{% if tags.railway == 'narrow_gauge' %}default,casing{% else %}default{% endif %}",
         "style": {
-            "color": "{% if tags.railway == 'rail' or tags.railway == 'narrow_gauge' or tags.railway == 'disused' %}{% if tags.usage == 'main' %}#ff8100{% elseif tags.usage == 'branch' %}#daca00{% else %}#000000{% endif %}{% elseif tags.railway == 'subway' %}#0000ff{% elseif tags.railway == 'tram' %}#ff00ff{% elseif tags.railway == 'light_rail' %}#00BD14{% elseif tags.railway == 'platform' %}#3f3f3f{% else %}#000000{% endif %}",
             "weight": "{% if tags.service == 'yard' or tags.service == 'siding' or tags.service == 'spur' or tags.service == 'crossover' %}1{% else %}{% if tags.railway == 'rail' %}{% if tags.usage == 'main' or tags.usage == 'branch' %}3{% else %}2{% endif %}{% elseif tags.railway == 'platform' %}1{% else %}2{% endif %}{% endif %}",
+            "color": "{% if tags.railway == 'rail' or tags.railway == 'narrow_gauge' or tags.railway == 'disused' %}{% if tags.usage == 'main' %}#ff8100{% elseif tags.usage == 'branch' %}#daca00{% else %}#000000{% endif %}{% elseif tags.railway == 'subway' %}#0000ff{% elseif tags.railway == 'tram' %}#ff00ff{% elseif tags.railway == 'light_rail' %}#00BD14{% elseif tags.railway == 'platform' %}#3f3f3f{% else %}#000000{% endif %}",
+            "opacity": "1",
             "dashArray": "{% if tags.railway == 'rail' %}{% elseif tags.railway == 'disused' %}1,5{% elseif tags.railway == 'abandoned' %}1,7{% endif %}",
-            "fillColor": [
-                "{% if tags.railway == 'platform' %}",
-                "#3f3f3f",
-                "{% elseif type == 'node' %}",
-                "#ffffff",
-                "{% endif %}"
-            ],
             "fill": [
                 "{% if tags.railway == 'platform' %}",
                 "1",
@@ -35,7 +58,13 @@
                 "{% else %}",
                 "{% endif %}"
             ],
-            "opacity": "1",
+            "fillColor": [
+                "{% if tags.railway == 'platform' %}",
+                "#3f3f3f",
+                "{% elseif type == 'node' %}",
+                "#ffffff",
+                "{% endif %}"
+            ],
             "fillOpacity": [
                 "{% if tags.railway == 'platform' %}",
                 "0.2",
@@ -44,41 +73,12 @@
                 "{% endif %}"
             ]
         },
-        "styles": "{% if tags.railway == 'narrow_gauge' %}default,casing{% else %}default{% endif %}",
-        "markerSign": "{% if tags.railway in [ 'halt', 'tram_stop', 'station', 'stop', 'subway_entrance' ] %}X{% endif %}",
-        "body": [
-            "{% if tags.operator %}{{ keyTrans('operator') }}: {{ localizedTag(tags, 'operator') }}<br>{% endif %}",
-            "{% if tags.usage %}{{ keyTrans('usage') }}: {{ tagTrans('usage', tags.usage)|default(trans('unknown')) }}<br/>{% endif %}",
-            "{% if tags.service %}{{ keyTrans('service') }}: {{ tagTrans('service', tags.service ) }}<br/>{% endif %}",
-            "{{ keyTrans('gauge') }}: {{ tags.gauge|default(trans('unknown')) }}<br/>",
-            "{% if tags.electrified == 'no' %}{{ keyTrans('electrified') }}: {{ tagTrans('electrified', 'no') }}{% elseif tags.electrified %}{{ keyTrans('electrified') }}: {{ tagTrans('electrified', tags.electrified) }}, {{ keyTrans('voltage') }}: {{ tags.voltage|default(trans('unknown')) }}, {{ keyTrans('frequency') }}: {{ tags.frequency|default(trans('unknown')) }}<br/>{% endif %}",
-            ""
-        ],
-        "description": "{{ tagTrans('railway', tags.railway) }}",
-        "priority": [
-            "{% if tags.railway == 'station' %}0",
-            "{% elseif tags.railway in [ 'halt' ] %}1",
-            "{% elseif tags.railway in [ 'tram_stop', 'stop' ] %}2",
-            "{% elseif tags.railway in [ 'subway_entrance' ] %}3",
-            "{% else %}5",
-            "{% endif %}"
-        ],
-        "title": "{% if tags.ref %}{{ localizedTag(tags, 'ref') }} - {% endif %}{{ localizedTag(tags, 'name')|default(localizedTag(tags, 'operator'))|default(trans('unnamed')) }}",
-        "listMarkerSymbol": [
-            "{% if tags.railway in [ 'station', 'halt', 'tram_stop', 'stop', 'subway_entrance', 'signal' ] %}",
-            "{% else %}",
-            "line",
-            "{% endif %}"
-        ],
-        "markerSymbol": [
-            "{% if tags.railway == 'signal' %}",
-            "<svg width='10' height='10'>",
-            "  <circle cx='4.5' cy='4.5' r='3' style='stroke-width: 3; stroke: #000000; fill: #ffffff'>",
-            "</svg>",
-            "{% else %}",
-            "{{ markerPointer({})|raw }}",
-            "{% endif %}"
-        ]
+        "style:casing": {
+            "weight": "{% if tags.service == 'yard' or tags.service == 'siding' or tags.service == 'spur' or tags.service == 'crossover' %}5{% else %}{% if tags.railway == 'rail' %}{% if tags.usage == 'main' or tags.usage == 'branch' %}7{% else %}6{% endif %}{% elseif tags.railway == 'platform' %}5{% else %}6{% endif %}{% endif %}",
+            "color": "{% if tags.railway == 'rail' or tags.railway == 'narrow_gauge' or tags.railway == 'disused' %}{% if tags.usage == 'main' %}#ff8100{% elseif tags.usage == 'branch' %}#daca00{% else %}#000000{% endif %}{% elseif tags.railway == 'subway' %}#0000ff{% elseif tags.railway == 'tram' %}#ff00ff{% elseif tags.railway == 'light_rail' %}#00BD14{% elseif tags.railway == 'platform' %}#3f3f3f{% else %}#000000{% endif %}",
+            "lineCap": "butt",
+            "dashArray": "2,4"
+        }
     },
     "info": [
         "<table>",
diff --git a/religion.json b/religion.json
index c002e8c..dd27a2f 100644
--- a/religion.json
+++ b/religion.json
@@ -38,6 +38,7 @@
             "{% endif %}"
         ],
         "description": "{{ tagTrans(key, value) }}{% if tags.religion %}: {{ tagTransList('religion', tags.religion) }}{% endif %}",
+        "popupDescription": "{{ tagTrans(key, value) }}",
         "body": [
             "{% if tags.religion %}",
             "  {{ keyTrans('religion') }}: {{ tagTransList('religion', tags.religion) }}",
@@ -55,7 +56,6 @@
             "{% elseif tags.religion == 'jewish' %}✡",
             "{% elseif tags.religion == 'pagan' %}☆",
             "{% endif %}"
-        ],
-        "popupDescription": "{{ tagTrans(key, value) }}"
+        ]
     }
 }
diff --git a/sport.json b/sport.json
index db1dc05..008c933 100644
--- a/sport.json
+++ b/sport.json
@@ -18,12 +18,12 @@
         "14": "(node[sport];way[sport];relation[sport])"
     },
     "feature": {
+        "title": "{{ localizedTag(tags, 'name') |default(localizedTag(tags, 'operator')) |default(tagTransList('sport', tags.sport)) }}",
         "description": "{{ tagTransList('sport', tags.sport) }}",
         "markerSign": [
             "{% set firstSport = tags.sport|split(';')[0] %}",
             "{{ const[firstSport] }}"
-        ],
-        "title": "{{ localizedTag(tags, 'name') |default(localizedTag(tags, 'operator')) |default(tagTransList('sport', tags.sport)) }}"
+        ]
     },
     "const": {
         "9pin": "🎳",
diff --git a/walk_amenities.json b/walk_amenities.json
index a099acd..2ce5e87 100644
--- a/walk_amenities.json
+++ b/walk_amenities.json
@@ -49,8 +49,8 @@
             "",
             "{% set type_data = const[value] %}"
         ],
-        "description": "{{ tagTrans(key, value) }}",
         "title": "{{ localizedTag(tags, 'name') |default(localizedTag(tags, 'operator')) | default(localizedTag(tags, 'ref')) | default(tagTrans(key, value)) }}",
+        "description": "{{ tagTrans(key, value) }}",
         "markerSign": "{{ type_data.sign|raw }}",
         "priority": "{{ type_data.priority }}"
     },
diff --git a/works.json b/works.json
index 42c47fd..d406a05 100644
--- a/works.json
+++ b/works.json
@@ -1,4 +1,5 @@
 {
+    "type": "overpass",
     "name": {
         "ast": "Fábriques",
         "cs": "Továrny",
@@ -10,12 +11,10 @@
         "nl": "Fabrieken",
         "ru": "Промышленность"
     },
-    "type": "overpass",
     "query": {
         "12": "(node[landuse~'^(industrial)$'];way[landuse~'^(industrial)$'];relation[landuse~'^(industrial)$'];)"
     },
-    "minZoom": 12,
     "feature": {
-        "markerSign": ""
+        "markerSign": null
     }
 }

From 07c18b0d4cc7dbd3c77c2b73faf72dc51034ed10 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Stephan=20B=C3=B6sch-Plepelits?= <skunk@xover.mud.at>
Date: Sun, 26 Nov 2017 15:55:21 +0100
Subject: [PATCH 6/7] Remove debugging info

---
 railway-infrastructure.json | 1 -
 1 file changed, 1 deletion(-)

diff --git a/railway-infrastructure.json b/railway-infrastructure.json
index 0b53f8a..66df64c 100644
--- a/railway-infrastructure.json
+++ b/railway-infrastructure.json
@@ -102,7 +102,6 @@
         "    <td>{{ markerLine(evaluate({ \"railway\": \"subway\" }))|raw }}</td>",
         "    <td>{{ tagTrans('railway', 'subway') }}</td>",
         "  </tr>",
-        "{{ console_log(map) }}",
         "{% if map.zoom >= 14 %}",
         "  <tr>",
         "    <td>{{ markerLine(evaluate({ \"railway\": \"tram\" }))|raw }}</td>",

From b3d721f41141aa69a1caa6c7e1fd9066d458ca9c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Stephan=20B=C3=B6sch-Plepelits?= <skunk@xover.mud.at>
Date: Sun, 26 Nov 2017 16:21:46 +0100
Subject: [PATCH 7/7] Water: info

---
 water.json | 26 +++++++++++++++++++++++++-
 1 file changed, 25 insertions(+), 1 deletion(-)

diff --git a/water.json b/water.json
index e480414..43b57fa 100644
--- a/water.json
+++ b/water.json
@@ -39,5 +39,29 @@
                 "{% endif %}"
             ]
         }
-    }
+    },
+    "info": [
+        "<table>",
+        "  <tr>",
+        "    <td>{{ markerPolygon(evaluate({ \"natural\": \"water\" }))|raw }}</td>",
+        "    <td>{{ tagTrans('natural', 'water') }}</td>",
+        "  </tr>",
+        "  <tr>",
+        "    <td>{{ markerLine(evaluate({ \"waterway\": \"river\" }))|raw }}</td>",
+        "    <td>{{ tagTrans('waterway', 'river') }}</td>",
+        "  </tr>",
+        "  <tr>",
+        "    <td>{{ markerLine(evaluate({ \"waterway\": \"stream\" }))|raw }}</td>",
+        "    <td>{{ tagTrans('waterway', 'stream') }}</td>",
+        "  </tr>",
+        "  <tr>",
+        "    <td>{{ markerLine(evaluate({ \"waterway\": \"dam\" }))|raw }}</td>",
+        "    <td>{{ tagTrans('waterway', 'dam') }}, {{ tagTrans('waterway', 'weir') }}</td>",
+        "  </tr>",
+        "  <tr>",
+        "    <td>{{ markerLine(evaluate({ \"natural\": \"divide\" }))|raw }}</td>",
+        "    <td>{{ tagTrans('natural', 'divide') }}</td>",
+        "  </tr>",
+        "</table>"
+    ]
 }