Module:Sandbox/Ahecht/navboxtolua: Difference between revisions

Content deleted Content added
update
consistency
 
(10 intermediate revisions by the same user not shown)
Line 1:
return {[''] = function(frame)
local lists = {}
local params = {}
local numbers = {}
local args = require('Module:Arguments').getArgs(frame)
local output = "{\n"
for k,v in pairs(args) do
iflocal n = mw.ustring.findsub(v,'\n'k,-1,true) then
if not params[n] then
output = output .. k .. ' = [=[' .. v .. ']=],\n'
table.insert(numbers, n)
else
params[n] = {}
output = output .. k .. ' = "' .. v .. '",\n'
end
params[n][k] = v
end
table.sort( numbers )
return frame:callParserFunction( '#tag', 'pre', output .. "}" )
for _,n in ipairs(numbers) do
a = params[n]
if a['group'..n] then
output = output .. k'group' .. n .. ' = "' .. va['group'..n] .. '",\n'
end
if a['abbr'..n] then
output = output .. k'abbr' .. n .. ' = [=["' .. a['abbr'.. vn] .. ']=]",\n'
end
if a['state'..n] then
output = output .. 'state' .. n .. ' = "' .. a['state'..n] .. '",\n'
end
if a['list'..n] then
local k = 'list'..n
local v = a['list'..n]
if mw.ustring.find(v,'####',1,true) then
output = output .. k .. ' = _navbox({[1] = "child",\n\n}),\n'
elseif mw.ustring.find(v,'\n',1,true) then
table.insert(lists, "===" .. mw.ustring.upper(k) .. "===\n" .. mw.ustring.gsub(mw.ustring.gsub(v,"%[","【"),"%]","】") .. "\n")
output = output .. k .. ' = [=[<ul>\n<!--' .. mw.ustring.upper(k) .. '-->\n</ul>]=],\n'
else
output = output .. k .. ' = [=[<ul>\n<li>' .. mw.ustring.gsub(v,'^%*%s*','') .. '</li>\n</ul>]=],\n'
end
end
end
return "==Params==\n" .. frame:callParserFunction( '#tag', 'pre', output .. "}" ) .. '\n==Lists==\n' .. table.concat(lists)
end
}