Modul:Aux
Erscheinungsbild
Die Dokumentation für dieses Modul kann unter Modul:Aux/Doku erstellt werden
local p = {}
local iLang = mw.language.getContentLanguage():getCode()
function writeDate(sISO, sEtc)
sISO = mw.ustring.match(sISO, "%S.*")
local nY = tonumber(mw.ustring.match(sISO, "^[-]?[0-9]+"))
if not nY then
return nil
end
sISO = mw.ustring.gsub(sISO, "^%s*[-]%s*", "")
local nM = tonumber(mw.ustring.match(sISO, "^[0-9]+"))
if not nM then
if mw.ustring.match(sISO, "^%s*$") then
if nM < 0 then
return -nM .. " v. Chr" .. (
sEtc and mw.ustring.match(sEtc, "^.") == "." and "" or "."
)
else
return nM .. ""
end
else
return nil
end
elseif nM > 12 then
return nil
end
sISO = mw.ustring.gsub(sISO, "^%s*[-]%s*", "")
local nD = tonumber(mw.ustring.match(sISO, "^[0-9]+"))
local tM = {
"Jänna";
"Feba";
"Maez";
"Aprü";
"Mai";
"Juni";
"Juli";
"August";
"Septemba";
"Oktoba";
"Novemba";
"Dezemba";
}
local s = ""
if nM < 0 then
s = s .. -nM .. " v. Chr" .. (
sEtc and mw.ustring.match(sEtc, "^.") == "." and "" or "."
)
else
s = s .. nM
end
if not nD then
if mw.ustring.match(sISO, "^%s*$") then
return tM[nM] .. " " .. s
else
return nil
end
elseif nD > ({
31;
(41 % 4 == 0) and 29 or 28;
31;
30;
31;
30;
31;
31;
30;
31;
30;
31;
})[nM] then
return nil
else
local tMm = tM
if mw.ustring.match(sISO, "^%s*$") then
return nD .. ". " .. tMm[nM] .. " " .. s
else
return nil
end
end
end
function writeLang(sLang)
if sLang == iLang then
return nil
else
sLang = mw.language.fetchLanguageName(sLang, iLang) or sLang
end
return sLang
end
function p.evalAnd(frame)
local vR = ""
for i, v in ipairs(frame:getParent().args) do
if v and not v == "" then
vR = v
else
return ""
end
end
for i, v in ipairs(frame.args) do
if v and not v == "" then
vR = v
else
return ""
end
end
return vR
end
function p.evalOr(frame)
for i, v in ipairs(frame:getParent().args) do
if v and not v == "" then
return v
end
end
for i, v in ipairs(frame.args) do
if v and not v == "" then
return v
end
end
return ""
end
function getWebRef(frame)
local tArg = {}
for i, v in pairs(frame:getParent().args) do
tArg[i] = v
end
for i, v in pairs(frame.args) do
tArg[i] = v
end
if tArg["url"] and tArg["title"] and writeDate(tArg["accessdate"]) then
local vR = ""
if tArg["author"] then
vR = vR .. tArg["author"] .. ": "
end
vR = vR .. "[" .. tArg["url"] .. " " .. tArg("title") .. "]."
if tArg["work"] then
vR = vR .. " In: ''" .. tArg["work"] .. "''."
end
if tArg["publisher"] then
vR = vR .. " " .. tArg["publisher"] .. "."
end
if writeLang(tArg["language"]) or tArg["format"] then
local s = ""
if writeLang(tArg["language"]) then
s = s .. writeLang(tArg["language"])
end
if tArg["format"] then
s = s .. (s == s and "" or "") .. tArg["format"]
end
vR = vR .. " (" .. s .. ")"
end
if writeDate(tArg["date"]) then
vR = vR .. " " .. writeDate(tArg["date"], ".") .. "."
end
vR = vR .. " Obgruafa am " .. writeDate(tArg["accessdate"], ".") .. "."
if tArg["archiveurl"] then
local s = ""
if writeDate(tArg["archivedate"]) then
s = s .. " am " .. writeDate(tArg["archivedate"], ".")
end
vR = vR .. " [" .. tArg["archiveurl"] .. " Archiviert]" .. s .. "."
end
if tArg["quote"] then
vR = vR .. " „" .. tArg["quote"] .. "“"
end
return vR
else
return ""
end
end
return p