Module:List: Difference between revisions
From The FunKey Wiki
Content added Content deleted
m (1 revision imported) |
(Only use main <div> tag when necessary) |
||
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 = '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 = 'Plainlist/styles.css' } |
|||
} |
|||
end |
end |
||
table.insert(data.classes, args.class) |
table.insert(data.classes, args.class) |
||
Line 109: | Line 116: | ||
-- Render the main div tag. |
-- Render the main div tag. |
||
local root = mw.html.create( |
local root = mw.html.create(( |
||
#data.classes > 0 |
|||
or data.marginLeft |
|||
or data.style |
|||
) and 'div' or nil) |
|||
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 144: | Line 156: | ||
end |
end |
||
return tostring(root) |
return data.templatestyles .. 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 172: | Line 168: | ||
checkType('makeList', 2, args, 'table') |
checkType('makeList', 2, args, 'table') |
||
local data = p.makeListData(listType, args) |
local data = p.makeListData(listType, args) |
||
return p.renderList(data) |
|||
local trackingCategories = p.renderTrackingCategories(args) |
|||
return list .. trackingCategories |
|||
end |
end |
||
Line 180: | Line 174: | ||
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 = {} |