local p = {}
local function wikitext(text1)
return mw.getCurrentFrame():preprocess(text1)
end
--[[
懒得写文档了,写在这儿吧
如你所见,这个模块一开始就没有准备用invoke调用
模块里有三个函数,分别对应原先模板的某角色称呼别人、别人称呼某角色以及总表,from和to从框架里传入。
使用的时候需要新建一个模块存储数据,包括角色总表member、组列表group、组成员列表groupmem,角色互称表call,其中后两个表的键值用分别用组列表键和角色总表键表示
目前已知问题是这个模块压根就没有任何检查错误的方式
外加如果有可能的话可以做一个组内角色互称表的函数?
]]
function p.from(from,group,groupmem,call,lang)
local print =";"..from.."对其他角色的称呼\n"..[[<div style="display:flex;flex-wrap:wrap;gap:0;align-items:flex-start;width:100%">]].."\n"
local i=1
while(group[i])do
print=print..[[{| class="wikitable" style="font-size:95%; width:300px; text-align:center; margin:0"]].."\n"..
[[!colspan=2|]]..group[i].."\n"
local j=1
while(groupmem[group[i]][j])do
print=print.."|-".."\n"..
[[|style="width:50%"|]]..groupmem[group[i]][j].."\n"
if(lang)then
print=print..[[|style="width:50%"|{{lang|]]..lang.."|"..call[from][groupmem[group[i]][j]].."}}\n"
else
print=print..[[|style="width:50%"|]]..call[from][groupmem[group[i]][j]].."\n"
end
j=j+1
end
print=print.."|}\n"
i=i+1
end
print=print.."</div>"
return wikitext(print)
end
function p.to(to,group,groupmem,call,lang)
local print =";其他角色对"..to.."的称呼\n"..[[<div style="display:flex;flex-wrap:wrap;gap:0;align-items:flex-start;width:100%">]].."\n"
local i=1
while(group[i])do
print=print..[[{| class="wikitable" style="font-size:95%; width:300px; text-align:center; margin:0"]].."\n"..
[[!colspan=2|]]..group[i].."\n"
local j=1
while(groupmem[group[i]][j])do
print=print.."|-".."\n"..
[[|style="width:50%"|]]..groupmem[group[i]][j].."\n"
if(lang)then
print=print..[[|style="width:50%"|{{lang|]]..lang.."|"..call[groupmem[group[i]][j]][to].."}}\n"
else
print=print..[[|style="width:50%"|]]..call[groupmem[group[i]][j]][to].."\n"
end
j=j+1
end
print=print.."|}\n"
i=i+1
end
print=print.."</div>"
return wikitext(print)
end
function p.total(member,call,lang)
local print = [[{|class="wikitable"]].."\n! "
local i=1
while(member[i])do
print=print.."!!到"..member[i]
i=i+1
end
print=print.."\n"
local j=1
while(member[j])do
print=print.."|-\n!scope=\"row\"|从"..member[j]
i=1
while(member[i])do
if(lang)then
print=print.."\n|{{lang|"..lang.."|"..call[member[j]][member[i]].."}}"
else
print=print.."\n|"..call[member[j]][member[i]]
end
i=i+1
end
print=print.."\n"
j=j+1
end
print=print.."|}"
return wikitext(print)
end
return p