Module:List: Difference between revisions

150 bytes added ,  10 years ago
add fix to make the start parameter work with horizontal ordered lists, and switch to Module:Arguments for argument processing
Enwikipedia>Mr. Stradivarius
m (Protected Module:List: High-risk Lua module: ~1,100 transclusions ([Edit=Allow only autoconfirmed users] (indefinite) [Move=Allow only autoconfirmed users] (indefinite)))
Enwikipedia>Mr. Stradivarius
(add fix to make the start parameter work with horizontal ordered lists, and switch to Module:Arguments for argument processing)
Line 4:
local p = {}
 
local getArgs = require('Module:Arguments').getArgs
local htmlBuilder = require('Module:HtmlBuilder')
 
Line 22 ⟶ 23:
 
local function getArgNums(args)
-- Returns an array containing the keys of all positional arguments that contain data (i.e. non-whitespace values).
-- that contain data (i.e. non-whitespace values).
local nums = {}
for k, v in pairs(args) do
Line 84:
-- Build the list tags and list items.
local list = root.tag((listType == 'ordered' or listType == 'horizontal_ordered') and 'ol' or 'ul')
.attr(' local start', = args.start)
list
.attr('start', start)
if listType == 'horizontal_ordered' then
-- Apply fix to get start numbers working with horizontal ordered lists.
local startNum = tonumber(start)
if startNum then
list.css('counter-reset', 'listitem ' .. tostring(startNum - 1))
end
end
list
.attr('start', args.start)
.attr('type', typeAttr)
.css('list-style-type', listStyleType)
Line 95 ⟶ 104:
local function makeWrapper(listType)
return function(frame)
local origArgsargs = getArgs(frame, {
valueFunc = function (key, value)
if frame == mw.getCurrentFrame() then
if type(kkey) == 'number' or vvalue ~= '' then
origArgs = frame:getParent().args
return value
for k, v in pairs(frame.args) do
end
origArgs = frame.args
break
end
else})
origArgs = frame
end
local args = {}
for k, v in pairs(origArgs) do
if type(k) == 'number' or v ~= '' then
args[k] = v
end
end
return p.makeList(listType, args)
end