モジュール:Main

出典: 謎の百科事典もどき『エンペディア(Enpedia)』
ナビゲーションに移動 検索に移動

この説明文は 『 モジュール:Main/doc 』 から呼び出されています。
{{Main}}、{{See}}、{{See also}}、{{Main2}}の内部モジュール。

local p = {}

local function isValidPageName(name)
	return require('Module:IsValidPageName').isValidPageName({ args = {name} })
end

local function main(frame, args, head, foot)
	args[1] = args[1] or '{{{1}}}'
	
	local text = ''
	for i = 1, 50 do
		local arg = args[i]
		if arg == nil then break end
		
		if i ~= 1 then
			text = text..'、'
		end
		
		if isValidPageName(arg) == 'valid' then
			arg = '[['..arg..']]'
		end
		
		text = text..'「'..arg..'」'
	end

	return frame:preprocess('{{Rellink|'..head..text..foot..'}}')
end

function p.main(frame)
	local args = require('Module:Arguments').getArgs(frame, {wrappers = 'Template:Main', removeBlanks = false})
	return main(frame, args, '詳細は', 'を参照')
end

function p.see(frame)
	local args = require('Module:Arguments').getArgs(frame, {wrappers = 'Template:See', removeBlanks = false})
	return main(frame, args, '', 'を参照')
end

function p.seeAlso(frame)
	local args = require('Module:Arguments').getArgs(frame, {wrappers = 'Template:See also', removeBlanks = false})
	return main(frame, args, '', 'も参照')
end

function p.main2(frame)
	local args = require('Module:Arguments').getArgs(frame, {wrappers = 'Template:Main2', removeBlanks = false})
	args[1] = args[1] or '{{{1}}}'
	
	local text = ''
	if args[2] == nil then
		text = args[1]
		
	else
		for i = 1, 50 do
			local arg1 = args[2 * i - 1]
			local arg2 = args[2 * i]
			if arg1 == nil or arg2 == nil then break end
			
			if i ~= 1 then
				text = text..'、'
			end
			
			if isValidPageName(arg2) == 'valid' then
				arg2 = '[['..arg2..']]'
			end
			
			text = text..arg1..'については「'..arg2..'」を'
		end
	end

	return frame:preprocess('{{Rellink|'..text..'参照'..'}}')
end

return p