Modul:GeborenIn
Die Dokumentation für dieses Modul kann unter Modul:GeborenIn/Doku erstellt werden
local xp = {}
function xp.getArgs(frame)
local ret = {}
local f = frame
if frame.getParent and frame:getParent() and
mw.title.getCurrentTitle().subjectNsText~="Vorlage"
then f = frame:getParent()
end
for k, v in pairs(f.args)
do if type(k) == "number"
then local m = mw.text.gsplit(v, ",")
local i = #ret + 1
local j
local k
local r = { name="", geburt="", tod="", kommentar="", sv=""}
r.name = mw.text.trim(m())
if r.name:find('!', 1, true)
then j = mw.text.split(r.name, "%s*!%s*")
if not j[1]:find('[][|]') --verweigere Sortierwerte mit '[]|'
then r.sv = j[1]
r.name = j[2]
end
end
while r.name:find('[[', 1, true) and not r.name:find(']]', 1, true)
do r.name = r.name .. "," .. m() --hier kein Trim, da wikilink
end
r.geburt = mw.text.trim(m() or "")
r.geburt = mw.ustring.gsub(r.geburt, "geb%.?o?r?e?n?%s*", "")
if r.geburt:find('^%d%d%d\+$')
then r.tod = mw.text.trim(m() or "")
if not r.tod:find('^%d%d%d\+$')
then r.kommentar = r.tod .. ", "
r.tod = ""
end
else if mw.ustring.find(r.geburt, '^%d%d%d\+%s*[-–—]%s*%d%d%d\+$')
then j = mw.text.split(r.geburt, "%s*[-–—]%s*")
r.geburt = j[1]
r.tod = j[2]
else r.kommentar = r.geburt .. ", "
r.geburt = ""
end
end
j = m()
while j
do r.kommentar = r.kommentar .. mw.text.trim(j) .. ", "
j = m()
end
r.kommentar = r.kommentar:sub(1, -3)
--mw.log(r.name.."♦"..r.geburt.."♦"..r.tod.."♦"..r.kommentar.."\n")
ret[i] = r
end
end
return ret
end
function xp.row(frame)
local a = xp.getArgs(frame)
local ret = [[<div class="noprint">
{| class="wikitable sortable zebra"
! Name !! * !! † !! Kommentar]]
for k, v in pairs(a)
do ret = ret.."\n|-\n|data-sort-value=\""..v.sv.."\"| "..v.name
ret = ret.." || "..v.geburt.." || "..v.tod.." || "..v.kommentar
end
ret = ret .. "\n|}</div><div class=\"printfooter\">"
for k, v in pairs(a)
do ret = ret.."\n* "..v.name
if #v.geburt>0 then ret = ret..", "..v.geburt end
if #v.tod>0 then ret = ret.."–"..v.tod end
if #v.kommentar>0 then ret = ret..", "..v.kommentar end
end
ret = ret .. "\n</div>"
return ret
end
return xp