Module:Navbox: Difference between revisions
Jump to navigation
Jump to search
Content added Content deleted
(don't require the wrapper template) |
(various fixes from sandbox) |
||
Line 7: | Line 7: | ||
local HtmlBuilder = require('Module:HtmlBuilder') |
local HtmlBuilder = require('Module:HtmlBuilder') |
||
local navbar = require('Module:Navbar')._navbar |
local navbar = require('Module:Navbar')._navbar |
||
local getArgs -- lazily initialized |
|||
local args |
local args |
||
local frame |
|||
local tableRowAdded = false |
local tableRowAdded = false |
||
local border |
local border |
||
Line 282: | Line 282: | ||
local function renderTrackingCategories(builder) |
local function renderTrackingCategories(builder) |
||
local |
local title = mw.title.getCurrentTitle() |
||
⚫ | |||
⚫ | |||
local subpage = title.subpageText |
|||
⚫ | |||
local s = frame:preprocess('{{#ifeq:{{NAMESPACE}}|{{ns:10}}|1|0}}{{SUBPAGENAME}}') |
|||
⚫ | |||
local subpage = mw.ustring.lower(mw.ustring.sub(s, 2)) |
|||
if subpage == 'doc' or subpage == 'sandbox' or subpage == 'testcases' then return end |
if subpage == 'doc' or subpage == 'sandbox' or subpage == 'testcases' then return end |
||
Line 382: | Line 378: | ||
function p.navbox(frame) |
function p.navbox(frame) |
||
⚫ | |||
-- ParserFunctions considers the empty string to be false, so to preserve the previous |
|||
getArgs = require('Module:Arguments').getArgs |
|||
-- behavior of {{navbox}}, change any empty arguments to nil, so Lua will consider |
|||
⚫ | |||
-- them false too. |
|||
args = getArgs(frame, {wrappers = 'Template:Navbox'}) |
|||
local parentTitle = frame:getParent():getTitle() |
|||
local frame_args = (parentTitle == 'Template:Navbox' or parentTitle == 'Template:Navbox/sandbox') and frame:getParent().args or frame.args; |
|||
-- Read the arguments in the order they'll be output in, to make references number in the right order. |
|||
-- Out of order parsing bug. |
|||
local |
local _ |
||
_ = args.title |
|||
_ = args.above |
|||
for i = 1, 20 do |
for i = 1, 20 do |
||
_ = args["group" .. tostring(i)] |
|||
_ = args["list" .. tostring(i)] |
|||
end |
end |
||
_ = args.below |
|||
for k, v in pairs(frame_args) do |
|||
if v ~= '' then |
|||
args[k] = v |
|||
end |
|||
end |
|||
return p._navbox(args) |
return p._navbox(args) |
||
end |
end |