From 293064f9dc44189ed135ab1e388f63dbd01d0efe Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Stephan=20B=C3=B6sch-Plepelits?= <skunk@xover.mud.at>
Date: Sat, 14 Sep 2024 18:59:12 +0200
Subject: [PATCH] default body: if name:etymology:wikidata is defined, link
 etymology to wikidata

---
 detailsBody.html | 18 ++++++++++++++++--
 popupBody.html   | 18 ++++++++++++++++--
 2 files changed, 32 insertions(+), 4 deletions(-)

diff --git a/detailsBody.html b/detailsBody.html
index 9c43f94..494fff5 100644
--- a/detailsBody.html
+++ b/detailsBody.html
@@ -35,11 +35,25 @@
 </li>
 {% endif %}
 
-{% if attribute(tags, 'name:etymology') %}
+{% if attribute(tags, 'name:etymology') or attribute(tags, 'name:etymology:wikidata') %}
 <li class='hasSymbol'>
   <i class="fa fa-book" aria-hidden="true"></i>
   <span class='key'>{{ keyTrans('name:etymology') }}:</span>
-  <span class='value'>{{ enumerate(attribute(tags, "name:etymology")) }}</span>
+  <span class='value'>
+  {% set etymWikidata = attribute(tags, 'name:etymology:wikidata') %}
+  {% if etymWikidata %}
+    {% set etymWikidata = etymWikidata|split(';') %}
+    {% set etymName = attribute(tags, 'name:etymology')|split(';') %}
+
+    {% set result = [] %}
+    {% for i in 0..max(etymName|length - 1, etymWikidata|length - 1) %}
+      {% set result = result|merge([ etymWikidata[i] ? '<a target="_blank" href="https://wikidata.org/wiki/' ~ etymWikidata[i]|url_encode ~ '">' ~ (etymName[i]|default(etymWikidata[i]))|e ~ '</a>' : etymName[i]|e ]) %}
+    {% endfor %}
+    {{ result|enumerate|raw }}
+  {% else %}
+    {{ attribute(tags, "name:etymology")|enumerate }}
+  {% endif %}
+  </span>
 </li>
 {% endif %}
 
diff --git a/popupBody.html b/popupBody.html
index 1aa1344..caf7579 100644
--- a/popupBody.html
+++ b/popupBody.html
@@ -35,11 +35,25 @@
 </li>
 {% endif %}
 
-{% if attribute(tags, 'name:etymology') %}
+{% if attribute(tags, 'name:etymology') or attribute(tags, 'name:etymology:wikidata') %}
 <li class='hasSymbol'>
   <i class="fa fa-book" aria-hidden="true"></i>
   <span class='key'>{{ keyTrans('name:etymology') }}:</span>
-  <span class='value'>{{ enumerate(attribute(tags, "name:etymology")) }}</span>
+  <span class='value'>
+  {% set etymWikidata = attribute(tags, 'name:etymology:wikidata') %}
+  {% if etymWikidata %}
+    {% set etymWikidata = etymWikidata|split(';') %}
+    {% set etymName = attribute(tags, 'name:etymology')|split(';') %}
+
+    {% set result = [] %}
+    {% for i in 0..max(etymName|length - 1, etymWikidata|length - 1) %}
+      {% set result = result|merge([ etymWikidata[i] ? '<a target="_blank" href="https://wikidata.org/wiki/' ~ etymWikidata[i]|url_encode ~ '">' ~ (etymName[i]|default(etymWikidata[i]))|e ~ '</a>' : etymName[i]|e ]) %}
+    {% endfor %}
+    {{ result|enumerate|raw }}
+  {% else %}
+    {{ enumerate(attribute(tags, "name:etymology")) }}
+  {% endif %}
+  </span>
 </li>
 {% endif %}