Module:List: Difference between revisions
Jump to navigation
Jump to search
m>Mr. Stradivarius split the HTML rendering code out into a separate function, add a tracking category for deprecated parameters, ignore blank/whitespace arguments, and replace getArgNums with the equivalent function in Module:TableTools |
MeowyCats2 (talk | contribs) m 43 revisions imported |
||
(21 intermediate revisions by 18 users not shown) | |||
Line 22: | Line 22: | ||
-- Classes | -- Classes | ||
data.classes = {} | data.classes = {} | ||
data.templatestyles = '' | |||
if listType == 'horizontal' or listType == 'horizontal_ordered' then | if listType == 'horizontal' or listType == 'horizontal_ordered' then | ||
table.insert(data.classes, 'hlist') | table.insert(data.classes, 'hlist') | ||
data.templatestyles = mw.getCurrentFrame():extensionTag{ | |||
name = 'templatestyles', args = { src = 'Template:Flatlist/styles.css' } | |||
} | |||
elseif listType == 'unbulleted' then | elseif listType == 'unbulleted' then | ||
table.insert(data.classes, 'plainlist') | table.insert(data.classes, 'plainlist') | ||
data.templatestyles = mw.getCurrentFrame():extensionTag{ | |||
name = 'templatestyles', args = { src = 'Template:Plainlist/styles.css' } | |||
} | |||
end | end | ||
table.insert(data.classes, args.class) | table.insert(data.classes, args.class) | ||
Line 80: | Line 87: | ||
-- ul_style and ol_style are included for backwards compatibility. No | -- ul_style and ol_style are included for backwards compatibility. No | ||
-- distinction is made for ordered or unordered lists. | -- distinction is made for ordered or unordered lists. | ||
data.listStyle = args.list_style | data.listStyle = args.list_style | ||
-- List items | -- List items | ||
Line 90: | Line 97: | ||
local item = {} | local item = {} | ||
item.content = args[num] | item.content = args[num] | ||
item.style = args[' | item.style = args['item' .. tostring(num) .. '_style'] | ||
or args[' | or args['item_style' .. tostring(num)] | ||
item.value = args['item_value' .. tostring(num)] | item.value = args['item' .. tostring(num) .. '_value'] | ||
or args['item_value' .. tostring(num)] | |||
table.insert(data.items, item) | table.insert(data.items, item) | ||
end | end | ||
Line 143: | Line 151: | ||
end | end | ||
return tostring(root) | return data.templatestyles .. tostring(root) | ||
end | end | ||
function p.renderTrackingCategories(args) | function p.renderTrackingCategories(args) | ||
local isDeprecated = false -- Tracks deprecated parameters. | local isDeprecated = false -- Tracks deprecated parameters. | ||
for | for k, v in pairs(args) do | ||
k = tostring(k) | |||
if k:find('^item_style%d+$') or k:find('^item_value%d+$') then | |||
isDeprecated = true | isDeprecated = true | ||
break | break | ||
end | end | ||
end | end | ||
Line 187: | Line 187: | ||
p[listType] = function (frame) | p[listType] = function (frame) | ||
local mArguments = require('Module:Arguments') | local mArguments = require('Module:Arguments') | ||
local origArgs = mArguments.getArgs(frame) | local origArgs = mArguments.getArgs(frame, { | ||
valueFunc = function (key, value) | |||
if not value or not mw.ustring.find(value, '%S') then return nil end | |||
if mw.ustring.find(value, '^%s*[%*#;:]') then | |||
return value | |||
else | |||
return value:match('^%s*(.-)%s*$') | |||
end | |||
return nil | |||
end | |||
}) | |||
-- Copy all the arguments to a new table, for faster indexing. | -- Copy all the arguments to a new table, for faster indexing. | ||
local args = {} | local args = {} |