Module:List: Difference between revisions
m
Changed protection settings for "Module:List": High-risk Lua module: Used in MediaWiki interface ([Edit=Require administrator access] (indefinite) [Move=Require administrator access] (indefinite))
en>ExE Boss (Only use main <div> tag when necessary) |
en>Wugapodes m (Changed protection settings for "Module:List": High-risk Lua module: Used in MediaWiki interface ([Edit=Require administrator access] (indefinite) [Move=Require administrator access] (indefinite))) |
||
Line 22: | Line 22: | ||
-- Classes | -- Classes | ||
data.classes = {} | data.classes = {} | ||
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 hlist-separated') | ||
elseif listType == 'unbulleted' then | elseif listType == 'unbulleted' then | ||
table.insert(data.classes, 'plainlist') | table.insert(data.classes, 'plainlist') | ||
end | end | ||
table.insert(data.classes, args.class) | table.insert(data.classes, args.class) | ||
Line 116: | Line 109: | ||
-- Render the main div tag. | -- Render the main div tag. | ||
local root = mw.html.create( | local root = mw.html.create('div') | ||
for i, class in ipairs(data.classes or {}) do | for i, class in ipairs(data.classes or {}) do | ||
root:addClass(class) | root:addClass(class) | ||
Line 156: | Line 144: | ||
end | end | ||
return | return tostring(root) | ||
end | |||
function p.renderTrackingCategories(args) | |||
local isDeprecated = false -- Tracks deprecated parameters. | |||
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 | |||
break | |||
end | |||
end | |||
local ret = '' | |||
if isDeprecated then | |||
ret = ret .. '[[Category:List templates with deprecated parameters]]' | |||
end | |||
return ret | |||
end | end | ||
Line 168: | Line 172: | ||
checkType('makeList', 2, args, 'table') | checkType('makeList', 2, args, 'table') | ||
local data = p.makeListData(listType, args) | local data = p.makeListData(listType, args) | ||
local list = p.renderList(data) | |||
local trackingCategories = p.renderTrackingCategories(args) | |||
return list .. trackingCategories | |||
end | end | ||
Line 174: | Line 180: | ||
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 = {} |