可在Module:Defines/doc创建此模块的帮助文档
local p = {};
local getArgs = require('Module:Arguments').getArgs
local NDefines = require("Module:Defines/List")
function p.read_define(frame)
local args = getArgs(frame)
return p._read_define(args)
end
function p._read_define(args)
s = NDefines[args[1]][args[2]]
if type(s)=="string" then
s = "\"" .. s .. "\""
end
if type(s)=="table" and args[3] then
s = s[tonumber(args[3])]
if type(s) == "table" and args[4] then
s = s[tonumber(args[4])]
end
end
if type(s)=="table" then
for k, v in pairs(s) do
if type(v)=="table" then
s[k] = "{ " .. table.concat(v, ", ") .. " }"
end
end
s = "{ " .. table.concat(s, ", ") .. " }"
end
if args.percent == "yes" then
s = s * 100 .. "%"
end
return s
end
function p.create_reference(frame)
local args = getArgs(frame)
return p._create_reference(args)
end
function p._create_reference(args)
s = string.format("<code>NDefines.%s.%s", args[1], args[2])
if args[3] then
s = s .. string.format("[%s]", args[3])
end
if args[4] then
s = s .. string.format("[%s]", args[4])
end
return s .. string.format(" = %s</code>", p._read_define(args))
end
function p.create_references(frame)
local args = getArgs(frame)
return p._create_references(args)
end
function p._create_references(args)
tableName = args[1]
tbl = NDefines[tableName]
base = "<code>NDefines." .. tableName .. "."
output = {}
for i, j in pairs(args) do
if i ~= 1 and type(i) == "number" then
s = tbl[j]
if type(s)=="string" then
s = "\"" .. s .. "\""
elseif type(s)=="table" then
for k, v in pairs(s) do
if type(v)=="table" then
s[k] = "{ " .. table.concat(v, ", ") .. " }"
end
end
s = "{ " .. table.concat(s, ", ") .. " }"
elseif type(s)=="boolean" then
if(s) then
s = "true"
else
s = "false"
end
end
s = base .. j .. " = " .. s .. "</code>"
output[i-1] = s
end
end
if args.sep then
sep = args.sep:gsub("\\n", "\n"):gsub("_", " ")
s = table.concat(output, sep)
elseif #output == 1 then
s = output[1]
elseif #output == 2 then
s = output[1] .. " and " .. output[2]
else
s = table.concat(output, ", ", 1, #output-1) .. ", and " .. output[#output]
end
return s
end
return p