169
edits
NARA>Izno (add templatestyles for hlist) |
m (1 revision imported: forgot this existed...) |
||
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 = {} | ||
data.templatestyles = '' | data.templatestyles = '' | ||
Line 23: | Line 26: | ||
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 = 'Flatlist/styles.css' } | ||
} | } | ||
elseif listType == 'unbulleted' then | elseif listType == 'unbulleted' then | ||
Line 91: | Line 94: | ||
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 113: | Line 116: | ||
-- Render the main div tag. | -- Render the main div tag. | ||
local root = mw.html.create('div') | local root = mw.html.create(( | ||
for | #data.classes > 0 | ||
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 135: | Line 143: | ||
-- 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 149: | Line 157: | ||
return data.templatestyles .. tostring(root) | return data.templatestyles .. tostring(root) | ||
end | end | ||
Line 176: | 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) | |||
end | end | ||
Line 184: | 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) | ||
-- 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 = {} |