Editing Module:List
From Wings of Fire: The New World Wiki
The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.
Latest revision | Your text | ||
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, { | ||
frameOnly = ((frame and frame.args and frame.args.frameonly or '') ~= ''), | |||
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 = {} |