Modul:Benutzer:Aktenstapel
Die Dokumentation für dieses Modul kann unter Modul:Benutzer:Aktenstapel/Doku erstellt werden
local function fault(s)
return string.format('<span class="error">%s</span>', s)
end
local function f(line)
local prefix = ""
local vo
local abs
local rest
vo, abs, rest = string.match(line, "^(Abs%.?)[ @](%d+[a-zA-Z]*)[ @](.*)")
if vo then
prefix = '<abbr title="Absatz">Abs.</abbr> '..abs..' '
line = rest
end
vo, rest = string.match(line, "^(VO)[ @](.*)")
if vo then
return prefix..'<abbr title="der Verordnung">VO</abbr> '..rest
else
vo, rest = string.match(line, "^(G)[ @](.*)")
end
if vo then
return prefix..'<abbr title="des Gesetzes">G</abbr> '..rest
else
vo, rest = string.match(line, "^(VwV)[ @](.*)")
end
if vo then
return prefix..'<abbr title="der Verwaltungsvorschrift">VwV</abbr> '..rest
else
return line
end
end
function restoreNbsp(line)
return string.gsub(line, "@", " ")
end
-- Export
local p = { }
function p.lastChange(arglist)
local line = arglist[1]
local sect
local art
local rest
local xline
local jahr
local teil
local seite
local bgblref
if not line then
return "line is null[[Kategorie:Wikipedia:Vorlagenfehler/Vorlage:Infobox Gesetz]]"
end
sect = string.match(line, "@")
if sect then
return line.."[[Kategorie:Wikipedia:Vorlagenfehler/Vorlage:Infobox Gesetz]]"
end
xline = string.gsub(line, "^ *", "")
xline = string.gsub(xline, " ", "@")
sect, art, rest = string.match(xline, "^(Art%.?)[ @]?([IVX%d]+%a*)[ @](.*)")
if sect then
jahr, teil, seite = string.match(rest, "Jahrgang (%d+) Teil (I) Seite (%d+)")
bgblref = table.concat({jahr, teil, seite}, "+")
if bgblref == '' or (jahr + 0) < 2006 then
return restoreNbsp('<abbr title="Artikel">Art.</abbr> '..art..' '..f(rest))
else
return restoreNbsp('[http://www.buzer.de/s1.htm?g='..bgblref..'&a='..art..' <abbr title="Artikel '..art..' bei buzer.de abrufen">Art. '..art..'</abbr>] '..f(rest))
end
end
sect, art, rest = string.match(xline, "^(§)[ @]?([IVX%d]+%a*)[ @](.*)")
if sect then
return restoreNbsp('§ '..art..' '..f(rest))
else
art, rest = string.match(xline, "^(G)[ @](.*)")
end
if art then
return restoreNbsp('<abbr title="Gesetz">G</abbr> '..rest)
else
art, rest = string.match(xline, "^(VO)[ @](.*)")
end
if art then
return restoreNbsp('<abbr title="Verordnung">VO</abbr> '..rest)
else
art, rest = string.match(xline, "^(VwV)[ @](.*)")
end
if art then
return restoreNbsp('<abbr title="Verwaltungsvorschrift">VwV</abbr> '..rest)
else
return line
end
end
function p.letzteAenderung(frame)
local lucky
local r
lucky, r = pcall(p.lastChange, frame.args)
if not lucky then
r = fault("Parameterfehler in [[Aktenstapel]]: "..r.."[[Kategorie:Wikipedia:Vorlagenfehler/Aktenstapel]]")
end
return r
end
return p