モジュール:定義リスト2/sandbox
表示
これはモジュール:定義リスト2 (差分)のモジュール・サンドボックスページです。 |
このLuaモジュールは4,000以上のページで使われています。 余計な混乱やサーバーへの負荷を避けるために、どんな変更でも最初はモジュールのサンドボックス・サブページ、テストケース・サブページで試すべきです。そうすれば、試した変更を1度の編集でこのモジュールに加えることができます。しかし、最初にあなたの提案した変更を、この項目のノートで議論するようにお願いします。 |
使用法
[編集]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