La documentazione per questo modulo può essere creata in Modulo:Feature/man
-- <pre>
local lib = {}
function lib.mergeFrames(frame, parent)
local args = {}
if frame then
for k,v in pairs(frame.args) do
args[k] = v
end
end
if parent then
for k,v in pairs(parent.args) do
args[k] = v
end
end
return args
end
function lib.arguments(origArgs)
local args = {}
for k, v in pairs(origArgs) do
if type(v) == 'string' then
v = mw.text.trim(v)
end
if v ~= '' then
args[k] = v
end
end
return args
end
function lib.getSortedKeys(tab)
local keys = {}
for k,_ in pairs(tab) do
keys[#keys+1] = k
end
table.sort(keys)
return keys
end
function lib.groupedArguments(args, numeric)
if numeric == nil then
numeric = true
end
numeric = not not numeric
local base = {}
local groups = {}
for k, v in pairs(args) do
v = mw.text.trim(v) or ''
if v ~= '' then
if type(k) == 'string' then
k = mw.text.trim(k) or ''
if k ~= '' then
local split = mw.text.split(k, ':')
if #split == 1 then
base[k] = v
else
local group = mw.text.trim(split[1]) or ''
local key = mw.text.trim(table.concat(split, ':', 2)) or ''
if key ~= '' and group ~= '' then
if numeric then
group = tonumber(group)
if group ~= nil then
if groups[group] == nil then
groups[group] = {}
end
groups[group][key] = v
else
base[k] = v
end
else
if groups[group] == nil then
groups[group] = {}
end
groups[group][key] = v
end
else
base[k] = v
end
end
end
elseif v ~= '' then
base[k] = v
end
end
end
return base, groups
end
function lib.ternary(cond, T, F)
if cond then
return T
else
return F
end
end
function lib.tbl(tbl)
return table.tostring(tbl)
end
-- Helper functions
function table.val_to_str(v)
if "string" == type(v) then
v = string.gsub(v, "\n", "\\n")
if string.match(string.gsub(v, "[^'\"]", ""), '^"+$') then
return "'" .. v .. "'"
end
return '"' .. string.gsub(v, '"', '\\"') .. '"'
else
return "table" == type(v) and table.tostring(v) or tostring(v)
end
end
function table.key_to_str(k)
if "string" == type(k) and string.match(k, "^[_%a][_%a%d]*$") then
return k
else
return "[" .. table.val_to_str(k) .. "]"
end
end
function table.tostring(tbl)
local result, done = {}, {}
for k, v in ipairs(tbl) do
table.insert(result, table.val_to_str(v))
done[k] = true
end
for k, v in pairs(tbl) do
if not done[k] then
table.insert(result, table.key_to_str(k) .. "=" .. table.val_to_str( v ))
end
end
return "{" .. table.concat(result, ",") .. "}"
end
return lib
-- </pre>
-- [[Category:Lua]]
I contenuti della comunità sono disponibili sotto la licenza CC-BY-SA a meno che non sia diversamente specificato.