モジュール:定義リスト2/sandbox

モジュールの解説[表示] [編集] [履歴] [キャッシュを破棄]

使用法[編集]

Template:定義リスト2からの呼び出しのみを想定しています。単体では動作しません。

local p = {}

function p.main(frame)
	-- Module:Arguments により Template:定義リスト2 を介した引数を受け取る
	local args = require('Module:Arguments').getArgs(frame, {wrappers = 'Template:定義リスト2'})
	
	-- キーを安定ソート
	local keys = {}
	for key in pairs(args) do
		table.insert(keys, key)
	end
	table.sort(keys, function(a, b)
		if a and a:find('^%d*') then a = tonumber(a:match('^%d*')) end
		if b and b:find('^%d*') then b = tonumber(b:match('^%d*')) end
		if type(a) ~= type(b) then return type(a) > type(b) end
		return a and b and a < b
		end
		)
	
	-- 結果格納用変数
	local result = ''
	
	-- 引数分回し、キーを dt タグ、値を dd タグで囲う
	for key, value in pairs(keys) do
		result = result .. '<dt>' .. value .. '</dt><dd style="margin-left: 0;">\n' .. args[value] .. '</dd>'
	end
	
	return '<dl style="margin-left: 0;">' .. result .. '</dl>'
end

return p