Vorlagenprogrammierung Diskussionen Lua Unterseiten
Modul Deutsch English

Modul: Dokumentation

Coordinates – Modul mit Funktionen für Koordinaten (Geo-, Himmelskörper, GeoHack).

In der deutschsprachigen Wikipedia ist zurzeit keine Version dieses Moduls en:Module:Coordinates (d:Q7348344) angelegt.

Das sollte erst in dem Moment erfolgen, indem es auch produktiv eingesetzt wird, und dann in der frischesten Version.

Funktionen für Vorlagen Bearbeiten

kmlTitle
Ersetze Zeichen, die im kmlexport Probleme machen (etwa Halbgeviertstrich, typografische Anführungszeichen), durch möglichst ähnliche vereinfachte Darstellungen.
Entferne anschließend alle sonstigen nicht abbildbaren Zeichen, die Probleme machen.
Parameter:
1
Beschriftungstext
Ergebnis: bereinigter Beschriftungstext – würde dieser leer, bleibt es beim ursprünglichen Beschriftungstext
Im Wesentlichen ist das ein Anpassung für den Parameter name von {{Coordinate}}.
Versehentliche Mehrfachaufrufe der Funktion kosten Effizienz, ändern aber nichts am Ergebnis.

Hack für kmlexport 2017/18 Bearbeiten

Dieses Werkzeug hat Probleme bei Dekodieren der URL, wenn in UTF-8 kodierte Zeichen auftreten, die mehr als drei Oktetts benötigen. Das ist ab U+0800 (204810) der Fall.

Die Funktion kmlTitle beseitigt die Problematik übergangsweise.

Andere Wikiprojekte können das folgende Modul direkt kopieren:

oder die enthaltenen drei Funktionen in ein örtliches Module:Coordinates (d:Q7348344) kopieren.

Der Aufruf durch Vorlagen lautet dementsprechend in integrierter Fassung

  • {{#invoke:Coordinates|kmlTitle|Some title for geohack}}

oder gesondert

  • {{#invoke:Coordinates/kml|kmlTitle|Some title for geohack}}

Um problematische Zeichen nicht ersatzlos zu eliminieren, sondern hilfsweise darzustellen, sollten die folgenden beiden Module ebenfalls angelegt werden:

Fehlen diese, dann funktioniert die Reparaturfunktion trotzdem, kann jedoch keine Ersatzdarstellungen erzeugen.

Testfall: „ỹ—jajaja“ „ỹ—jajaja“ → "y-jajaja""y-jajaja"

Funktionen für Lua-Module Bearbeiten

Einbindung über require() für eine Zeichenkette show:

local lucky, kmlHack = pcall( require, "Module:Coordinates/kml" )
if type( kmlHack ) == "table" then
    show = kmlHack._kmlTitle( show )
end