• Moegirl.ICU:萌娘百科流亡社群 581077156(QQ),欢迎对萌娘百科运营感到失望的编辑者加入
  • Moegirl.ICU:账号认领正在试运行,有意者请参照账号认领流程

Module:Sandbox/TsanconBYin/称呼表

萌娘百科,万物皆可萌的百科全书!转载请标注来源页面的网页链接,并声明引自萌娘百科。内容不可商用。
跳转到导航 跳转到搜索
Template-info.svg 模块文档  [创建] [刷新]
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