Modul:Shortcut
Die Dokumentation für dieses Modul kann unter Modul:Shortcut/Doku erstellt werden
local p = {}
-- 1. Statische Daten-Tabelle (Die zentrale Datenbank)
-- HINWEISE: Hier werden die Shortcuts eingefplegt:
-- - Vorraussetzung für das Funktionieren ist eine bestehende Weiterleitung-Seite im Wiki, die dem Shortcut entsprich
-- - Abkürzungen für Namensräume sind global definiert und können nicht geändert werden
-- Format: ["SHORTCUT_NAME"] = "Zielseite/Zielanker"
local shortcutData = {
-- Hilfeseiten
["P:H"] = "Portal:Hilfe",
["H:EN"] = "Hilfe:Einzelnachweise",
["H:KÄ"] = "Hilfe:KLeine Änderungen",
["H:VL"] = "Hilfe:Vorlagen",
-- Porjekt-Seiten (Meta-NAmensraum)
["W:RL"] = "Wikonia::Richlinien",
["W:B"] = "Wikonia:Belege",
["W:K"] = "Wikonia:Kategorien"
}
-- 2. Hilfsfunktion zur Rückwärtssuche
-- Durchsucht die Tabelle, um den Shortcut-Namen für eine gegebene Zielseite zu finden.
-- Ist wichtig, da eine Zielseite (z.B. H:EN) nur einen primären Shortcut hat.
local function getShortcutForTarget(target)
for shortcut, targetPage in pairs(shortcutData) do
-- Entfernt den Anker aus dem Ziel, um nur den Hauptartikel zu matchen
local pageTitle = mw.text.split(targetPage, '#')[1]
if pageTitle == target then
return shortcut
end
end
return nil -- Kein passender Shortcut gefunden
end
-- 3. Funktionen für die Vorlagen-Nutzung
-- Liefert den Ziel-Pfad für einen Shortcut. Wird hauptsächlich für die Weiterleitungs-Anlage genutzt.
function p.getTarget( frame )
local shortcut = frame.args[1] or ""
return shortcutData[shortcut:upper()]
end
-- Liefert den Primär-Shortcut für eine Seite (vom Titel der aktuellen Seite ausgehend).
function p.getPrimaryShortcut( frame )
-- Nimmt den Titel der Seite, auf der die Vorlage eingebunden wird
local title = mw.title.getCurrentTitle().fullText
-- Sucht den passenden Shortcut für diesen Titel
local primaryShortcut = getShortcutForTarget(title)
if primaryShortcut then
-- Optional: Gibt den Shortcut als Link zurück für direkte Nutzung in der Vorlage
return string.format('[[%s]]', primaryShortcut)
else
return nil
end
end
-- 4. Funktion für die automatisierte Dokumentation
-- Gibt die gesamte Tabelle als Lua-Objekt zurück, z.B. für eine Übersichtsseite.
function p.getData( frame )
return shortcutData
end
return p