Modul:Vorlage:Infobox Gesetz
Zur Navigation springen
Zur Suche springen
Vorlagenprogrammierung | Diskussionen | Lua | Unterseiten | ||
Modul | Deutsch
|
Modul: | Dokumentation |
Diese Seite enthält Code in der Programmiersprache Lua. Einbindungszahl Cirrus
local function fault(s)
return string.format('<span class="error">%s</span>', alert)
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
sect = string.match(line, "@")
if sect then
return line.."[[Kategorie:Wikipedia:Vorlagenfehler/Vorlage:Infobox Gesetz]]"
end
xline = string.gsub(line, " ", "@")
sect, art, rest = string.match(xline, "^(Art%.?)[ @]?([IVX%d]+%a*)[ @](.*)")
if sect then
return restoreNbsp('<abbr title="Artikel">Art.</abbr> '..art..' '..f(rest))
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 [[Vorlage:Infobox Gesetz]]: "..r.."[[Kategorie:Wikipedia:Vorlagenfehler/Vorlage:Infobox Gesetz]]")
end
return r
end
return p