モジュール:Delimited tag

提供: Minecraft Wiki
移動先: 案内検索
このモジュールには解説がありません。もしあなたがこのモジュールを使用する方法を知っている場合は、解説ページを作成してください。
local p = {}

function p.output(f)

	local args = f
	if f == mw.getCurrentFrame() then 
		args = require('モジュール:ProcessArgs').merge(true)
	end

	local tag = function(txt)
		return '<' .. args['tag'] .. '>' .. txt .. '</' .. args['tag'] .. '>'
	end
	local listLevel = args['list-level'] or '**'

	local output = tag(assert(args[1], 'タグテキストがありません'))
	
	local finalDelimiterValues = {
		['none'] = '<nowiki/>',
		['comma'] = '、',
		 [','] = '、',
		['and'] = 'および',
		['&'] = '&amp;&nbsp;',
		['or'] = 'または&nbsp;',
		['to'] = '→&nbsp;',
		['br'] = '<br/>',
		 ['newline'] = '<br>',
		['list'] = '\n' .. listLevel,
		 ['bullet'] = '\n' .. listLevel,
		 ['*'] = '\n' .. listLevel,
		['and-list'] = '、および\n' .. listLevel,
		['or-list'] = '、または\n' .. listLevel,
		['&-list'] = '&\n' .. listLevel,
		['comma-list'] = '、\n' .. listLevel,
		 [',-list'] = '、\n' .. listLevel,
	}
	
	local midDelimiterValues = {
		['and'] = '、',
		 ['&'] = '、',
		 ['or'] = '、',
		['and-list'] = '、<br>\n' .. listLevel,
		 ['&-list'] = '、<br>\n' .. listLevel,
		 ['or-list'] = '、<br>\n' .. listLevel,
	}
	
	local delimiter = args['delimiter'] or args['delim'] or args['d'] or '&nbsp;'
	local finalDelimiter = finalDelimiterValues[delimiter] or delimiter
	local midDelimiter = midDelimiterValues[delimiter] or finalDelimiter
	
	for i,val in ipairs(args) do
		if (i > 1) then
			local currentDelimiter = args[i+1] and midDelimiter or finalDelimiter
			output = output .. currentDelimiter .. tag(val)
		end
	end
	
	return output
	
end

return p