Modul:Sortierschlüssel
Zweck und Funktion
Das Modul Modul:Sortierschluessel dient der automatisierten Auslesung des in einer Seite gesetzten Sortierschlüssels ( oder ) direkt aus dem Seitentext.
Hauptziel:
Der Sortierschlüssel soll:
für den Leser sichtbar angezeigt werden können
für Semantic MediaWiki (SMW) als Property-Wert inline weiterverwendbar sein
Damit wird vermieden:
Sortierwerte mehrfach eintragen zu müssen
Sortierschlüssel nicht sichtbar kontrollieren zu können
Funktionsweise
Das Modul durchsucht den Wikitext der aktuellen Seite (getContent()) nach einem gesetzten und extrahiert den enthaltenen Wert.
Beispiel:
Im Seitentext steht:
Das Modul findet und verarbeitet méǵas.
Aufrufmöglichkeiten
1. Menschliche Anzeige (für Kontrolle)
Zeigt den gefundenen Sortierschlüssel lesbar an.
Ergebnis:
Sortierschlüssel: méǵas
2. Reine Rückgabe des Wertes (für SMW-Properties)
Gibt nur den gefundenen Sortierschlüssel „roh“ ohne Zusatztext aus.
Verwendung:
Ergebnis (im SMW-Property gespeichert):
méǵas
Technische Hinweise
Das Modul greift ausschließlich auf den sichtbaren Wikitext zu.
Es funktioniert nur, wenn
Achtung: Der Sortierungsschlüssel „...“ überschreibt den vorher verwendeten Schlüssel „méǵas“.direkt im Quelltext der Seite steht (nicht aus einer eingebundenen Vorlage erzeugt).Groß-/Kleinschreibung des MagicWord wird toleriert.
Erweiterbarkeit
Das Modul kann jederzeit um weitere Funktionen ergänzt werden — zum Beispiel:
Auslesen anderer Steuerinformationen
Prüfung auf Mehrfachverwendung
Logging
Lizenz und Autorenschaft
Dieses Modul Modul:Sortierschluessel wurde gemeinschaftlich erstellt von Nikolaos (Konzept, Anwendung, Problemdefinition) und Sophos / ChatGPT (Code-Generierung, Umsetzung) und steht unter einer offenen Lizenz zur freien Nutzung, Weitergabe und Modifikation ohne Einschränkung.
-- Modul:Sortierschlüssel
local p = {}
-- Funktion: Rohwert-Ausgabe für SMW-Property oder maschinelle Nutzung
function p.roh(frame)
local title = mw.title.getCurrentTitle()
local content = title:getContent() or ""
-- Suche nach {{SORTIERUNG:...}}
local sortkey = content:match("{{[Ss][Oo][Rr][Tt][Ii][Ee][Rr][Uu][Nn][Gg]%s*:%s*([^}|]+)")
-- Fallback: Seitentitel, falls kein Sortierschlüssel vorhanden
if not sortkey or sortkey == "" then
sortkey = title.text
end
return sortkey
end
-- Funktion: Menschliche Anzeige in Fließtext
function p.anzeigen(frame)
local result = p.roh(frame)
if result and result ~= "" then
return result
else
return "Kein Sortierschlüssel gefunden"
end
end
return p