Modul:Vorlage:RGBl
aus Wikipedia, der freien Enzyklopädie
Die Dokumentation für dieses Modul kann unter Modul:Vorlage:RGBl/Doku erstellt werden
local function fault( alert )
-- Format message with class="error"
-- alert -- string, with message
-- Returns message with markup
return string.format( "<span class=\"error\">%s</span>", alert )
end -- fault()
-- Export
local p = { }
offa = {
["1919"]=203, ["1920"]=235, ["1921"]=71, ["1922"]=99, ["1923"]=135,
["1924"]=23, ["1925"]=53, ["1926"]=51, ["1927"]=53, ["1928"]=53, ["1929"]=51,
["1930"]=71, ["1931"]=99, ["1932"]=75, ["1933"]=126, ["1934"]=115,
["1935"]=143, ["1936"]=91, ["1937"]=107, ["1938"]=179, ["1939"]=230,
["1940"]=47, ["1941"]=29, ["1942"]=103, ["1943"]=21, ["1944"]=15, ["1945"]=1
}
offb = {
["1922"]=29, ["1923"]=35, ["1924"]=27, ["1925"]=25, ["1926"]=27, ["1927"]=27,
["1928"]=27, ["1929"]=29, ["1930"]=29, ["1931"]=27, ["1932"]=19, ["1933"]=17,
["1934"]=31, ["1935"]=35, ["1936"]=27, ["1937"]=27, ["1938"]=15, ["1939"]=15,
["1940"]=19, ["1941"]=19, ["1942"]=13, ["1943"]=7, ["1944"]=1, ["1945"]=1
}
function p.linkRGBl(arglist)
local name = arglist[1]
local prelbl
local preabbr
local iseite = ''
local wartung = ''
tmp = string.match(name, " ")
if tmp then
return fault("&nbsp; nicht erlaubt")
end
tmp = string.match(name, " ") or string.match(name, "/ ") or string.match(name, " [/,%.a-z]")
if tmp then
return fault("überschüssiges Leerzeichen")
end
tmp = string.match(name, "nI") or string.match(name, "%dI") or string.match(name, "I[SN]") or string.match(name, "[,%.]%d")
if tmp then
return fault("fehlendes Leerzeichen")
end
jahr, sichtbar, teil, seite, iseite, trash = string.match(name, "(%d+)(n*) (%a+) S. (%d+),* *(%d*)([^ \t\n,0-9]*)")
if not jahr then
teil = "I"
jahr, sichtbar, seite, iseite, trash = string.match(name, "(%d+)(n*) S. (%d+),* *(%d*)([^ \t\n,0-9]*)")
end
if trash and string.len(trash) > 0 then
return fault("überschüssige Zeichen am Ende")
end
if not seite then
jahr, sichtbar, teil, nummer = string.match(name, "(%d+)(n*) (%a+) Nr. (%d+)")
end
if not teil then
wartung = "[[Kategorie:Wikipedia:Vorlagenfehler/Vorlage:RGBl]]"
end
if teil == "I" then
ateil = "dra"
elseif teil == "II" then
ateil = "drb"
else
return fault("Angabe zum Teil falsch")
end
if not iseite then
iseite = ""
end
if iseite == "" then tmp = seite else tmp = iseite end
if ateil == "dra" then
aseite = offa[jahr] + tmp - 1
else
aseite = offb[jahr] + tmp - 1
end
if (jahr + 0) > 1945 or (jahr + 0) < 1919 then
fault("Jahrgang nicht in der Datenbank")
end
if not sichtbar then sichtbar = "" end
if sichtbar == "n" then
prelbl = "RGBl."
else
prelbl = string.format("RGBl. %d", jahr)
end
if jahr + 0 > 1921 then
prelbl = string.format("%s %s", prelbl, teil)
preabbr = string.format("<abbr title=\"Reichsgesetzblatt Jahrgang %d Teil %s", jahr, teil)
else
preabbr = string.format("<abbr title=\"Reichsgesetzblatt Jahrgang %d", jahr)
if teil == "drb" then
return fault("%s gab es keinen Teil %s", jahr, teil)
end
end
url = string.format("aid=%s&datum=%s&page=%d", ateil, jahr, aseite)
url = string.format("https://alex.onb.ac.at/cgi-content/alex?%s", url)
lbl = string.format("%s S. %d", prelbl, seite)
if string.len(iseite) > 0 then
lbl = lbl..", "..iseite
end
if not string.match(lbl, "<abbr ") then
lbl = string.format("%s Seite %d, ausgegeben zu Berlin\">%s</abbr>", preabbr, seite, lbl)
end
return '[' ..url .. ' ' .. lbl .. ']' .. wartung
end
function p.getrgbl(frame)
local lucky, r = pcall(p.linkRGBl, frame.args)
if not lucky then
r = fault("Parameterfehler in [[Vorlage:RGBl]]: " .. r)
end
return r
end
return p