Module:List: Difference between revisions
Jump to navigation
Jump to search
add templatestyles for hlist
NARA>ExE Boss (Only use main <div> tag when necessary) |
NARA>Izno (add templatestyles for hlist) |
||
Line 1: | Line 1: | ||
local libUtil = require('libraryUtil') | local libUtil = require('libraryUtil') | ||
local checkType = libUtil.checkType | local checkType = libUtil.checkType | ||
Line 20: | Line 17: | ||
local data = {} | local data = {} | ||
-- Classes | -- Classes and TemplateStyles | ||
data.classes = {} | data.classes = {} | ||
data.templatestyles = '' | data.templatestyles = '' | ||
Line 26: | Line 23: | ||
table.insert(data.classes, 'hlist') | table.insert(data.classes, 'hlist') | ||
data.templatestyles = mw.getCurrentFrame():extensionTag{ | data.templatestyles = mw.getCurrentFrame():extensionTag{ | ||
name = 'templatestyles', args = { src = ' | name = 'templatestyles', args = { src = 'Hlist/styles.css' } | ||
} | } | ||
elseif listType == 'unbulleted' then | elseif listType == 'unbulleted' then | ||
Line 94: | Line 91: | ||
data.itemStyle = args.item_style or args.li_style | data.itemStyle = args.item_style or args.li_style | ||
data.items = {} | data.items = {} | ||
for | for _, num in ipairs(mTableTools.numKeys(args)) do | ||
local item = {} | local item = {} | ||
item.content = args[num] | item.content = args[num] | ||
Line 116: | Line 113: | ||
-- Render the main div tag. | -- Render the main div tag. | ||
local root = mw.html.create( | local root = mw.html.create('div') | ||
for _, class in ipairs(data.classes or {}) do | |||
for | |||
root:addClass(class) | root:addClass(class) | ||
end | end | ||
Line 143: | Line 135: | ||
-- Render the list items | -- Render the list items | ||
for | for _, t in ipairs(data.items or {}) do | ||
local item = list:tag('li') | local item = list:tag('li') | ||
if data.itemStyle then | if data.itemStyle then | ||
Line 157: | Line 149: | ||
return data.templatestyles .. 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 168: | Line 176: | ||
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 184: | ||
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 = {} |