Hilfe:AEWI/Modul AufEinWortSeiteKennung Sicherung 1
Erscheinungsbild
bisherig ohne Kategorie für Kennung Modul:AufEinWortSeiteKennung
local p = {}
local u = mw.ustring
function p.kennung(frame)
local args = frame:getParent().args or {}
local datum = args.Erstellungsdatum or ""
local nummer = args.Nummer or "00"
if datum == "" then
return "00000000" .. nummer
end
-- 1. Map mit Umlaut→Ersatz
local umlaut_map = {
["Ä"] = "Ae", ["ä"] = "ae",
["Ö"] = "Oe", ["ö"] = "oe",
["Ü"] = "Ue", ["ü"] = "ue",
["ß"] = "ss"
}
-- 2. Alle Ersetzungen nacheinander durchführen
local normalized = datum
for orig, repl in pairs(umlaut_map) do
normalized = u.gsub(normalized, orig, repl)
end
-- 3. Datum parsen (UTF-8-aware)
local tag, monat_name, jahr = u.match(normalized, "^(%d+)%.?%s*(%a+)%s*(%d+)$")
if not (tag and monat_name and jahr) then
return "Fehler: Ungültiges Datumsformat"
end
-- 4. Monats-Mapping inkl. "März"
local monate = {
Januar = "01", Februar = "02",
Maerz = "03", ["März"] = "03",
April = "04", Mai = "05",
Juni = "06", Juli = "07",
August = "08", September = "09",
Oktober = "10", November = "11",
Dezember = "12"
}
local m = monate[monat_name]
if not m then
return "Fehler: Ungültiger Monatsname"
end
-- 5. Tag zweistellig
tag = string.format("%02d", tonumber(tag))
return jahr .. m .. tag .. nummer
end
return p