Editing Module:List

From Wings of Fire: The New World Wiki
Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

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:
-- This module outputs different kinds of lists. At the moment, bulleted,
-- unbulleted, horizontal, ordered, and horizontal ordered lists are supported.
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 = 'Flatlist/styles.css' }
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 i, num in ipairs(mTableTools.numKeys(args)) do
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')
#data.classes > 0
for _, class in ipairs(data.classes or {}) do
or data.marginLeft
or data.style
) and 'div' or nil)
 
for i, class in ipairs(data.classes or {}) do
root:addClass(class)
root:addClass(class)
end
end
Line 143: Line 135:


-- Render the list items
-- Render the list items
for i, t in ipairs(data.items or {}) do
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)
return p.renderList(data)
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 = {}
Please note that all contributions to Wings of Fire: The New World Wiki are considered to be released under the Creative Commons Attribution (see WOFTNW:Copyrights for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource. Do not submit copyrighted work without permission!
Cancel Editing help (opens in new window)