42
edits
(add templatestyles for hlist) |
DarkShadow (talk | contribs) m (1 revision imported) |
||
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 17: | Line 20: | ||
local data = {} | local data = {} | ||
-- 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') | ||
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 91: | Line 87: | ||
data.itemStyle = args.item_style or args.li_style | data.itemStyle = args.item_style or args.li_style | ||
data.items = {} | data.items = {} | ||
for | for i, num in ipairs(mTableTools.numKeys(args)) do | ||
local item = {} | local item = {} | ||
item.content = args[num] | item.content = args[num] | ||
Line 114: | Line 110: | ||
-- Render the main div tag. | -- Render the main div tag. | ||
local root = mw.html.create('div') | local root = mw.html.create('div') | ||
for | for i, class in ipairs(data.classes or {}) do | ||
root:addClass(class) | root:addClass(class) | ||
end | end | ||
Line 135: | Line 131: | ||
-- Render the list items | -- Render the list items | ||
for | for i, 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 148: | Line 144: | ||
end | end | ||
return | return tostring(root) | ||
end | end | ||
Line 184: | 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) | ||
-- 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 = {} |