Die Dokumentation für dieses Modul kann unter Modul:Vorlage:ArmFrGrandeGuerre/test/Doku erstellt werden
function merge(t1, t2)
for k, v in pairs(t1) do
if (type(v) == "table") and (type(t2[k] or false) == "table") then
merge(t2[k], t1[k])
else
t2[k] = v
end
end
return t2
end
local p = {}
function p.testvolumes(frame)
local r, ret = "", "{| class=\"wikitable\"\n"
local ok, afgg = pcall(require, "Module:Vorlage:ArmFrGrandeGuerre")
if (not ok) then ret = ret .. debug.traceback("afgg") end
local ok, tomes = pcall(require, "Module:Vorlage:ArmFrGrandeGuerre/data")
if (not ok) then ret = ret .. debug.traceback("tomes") end
fs = { "kurz", "semi", "lang" }
mw.log(fs)
local f, fi, t, ti, v, vi, p, pi, a, ai
for fi, f in ipairs(fs) do
for ti, t in ipairs(tomes) do
if (not t.volumes) then
ok, r = pcall(afgg.formatbook, merge(frame, {args={tome=ti, format=f}}))
if (not ok) then ret = ret .. debug.traceback("formatbook_" .. ti .. "_" .. f)
else ret = ret .. "|-\n|" .. r .. "\n"
end
else
for vi, v in ipairs(t.volumes) do
if (not v.precis or #v.precis < 2) then
ok, r = pcall(afgg.formatbook, merge(frame, {args={tome=ti, vol=vi, format=f}}))
if (not ok) then ret = ret .. debug.traceback("formatbook_" .. ti .. "_" .. vi .. "_" .. f)
else ret = ret .. "|-\n|" .. r .. "\n"
end
else
for pi, p in ipairs(v.precis) do
ok, r = pcall(afgg.formatbook, merge(frame, {args={tome=ti, vol=vi, ed=pi, format=f}}))
if (not ok) then ret = ret .. debug.traceback("formatbook_" .. ti .. "_" .. vi .. "_" .. pi .. "_" .. f)
else ret = ret .. "|-\n|" .. r .. "\n"
end
end
end
if (t.annexes) then
for ai, a in ipairs(v.annexes) do
ok, r = pcall(afgg.formatbook, merge(frame, {args={tome=ti, vol=vi, annex=a.code, format=f}}))
if (not ok) then ret = ret .. debug.traceback("formatbook_" .. ti .. "_" .. vi .. "_" .. ai .. "_" .. f)
else ret = ret .. "|-\n|" .. r .. "\n"
end
end
end
end
end
end
end
return ret .. "|}"
end
return p