2023年政策修订增补工作正在进行中,欢迎参与!
  • Moegirl.ICU:萌娘百科流亡社群 581077156(QQ),欢迎对萌娘百科运营感到失望的编辑者加入
  • Moegirl.ICU:账号认领正在试运行,有意者请参照账号认领流程

Module:大家族内容行

萌娘百科,万物皆可萌的百科全书!转载请标注来源页面的网页链接,并声明引自萌娘百科。内容不可商用。
跳转到导航 跳转到搜索
Template-info.svg 模块文档  [创建] [刷新]
local p = {}
 
function p.main(frame)
	local wrappers = {
		['Template:沙盒'] = true,
		['Template:大家族内容行'] = true,
		['Template:Links/br'] = true
	}
	local parent = frame:getParent()
	if parent and wrappers[parent:getTitle()] then
		frame = parent
	end
	return p._main(frame.args)
end
 
function p._main(args)
	local titles = {} -- 链接
	local sep -- 分隔字符串
	local str -- 返回值
	local nolink -- boolean
	
	-- 处理参数
	-- 参数有:1~n、char、indent、nolink
	for i, v in ipairs(args) do
		v = mw.text.trim(v)
		if v ~= '' then
			table.insert(titles, v)
		end
	end
	nolink = args.nolink and args.nolink ~= ''
	
	-- 构造分隔字符串
	local sepParts = {
		']]',
		args.char or ' • ',
		'',
		'[['
	}
	if nolink then
		sepParts[1], sepParts[4] = '', ''
	end
	local indent = tonumber(args.indent)
	if indent and indent >= 3 then
		sepParts[3] = '<!--\n'..mw.ustring.rep(' ', indent - 3)..'-->'
	end
	sep = table.concat(sepParts)

	-- 输出
	str = table.concat(titles, sep)
	if not nolink then
		str = '[['..str..']]'
	end
	return str
end
 
return p