Module:List: Difference between revisions
From AlternateWiki
Content deleted Content added
m Changed protection settings for "Module:List": High-risk Lua module: Used in MediaWiki interface ([Edit=Require administrator access] (indefinite) [Move=Require administrator access] (indefinite)) |
m 1 revision imported |
||
(8 intermediate revisions by 4 users not shown) | |||
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 = '' |
|||
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') |
||
data.templatestyles = mw.getCurrentFrame():extensionTag{ |
|||
name = 'templatestyles', args = { src = 'Hlist/styles.css' } |
|||
} |
|||
elseif listType == 'unbulleted' then |
elseif listType == 'unbulleted' then |
||
table.insert(data.classes, 'plainlist') |
table.insert(data.classes, 'plainlist') |
||
data.templatestyles = mw.getCurrentFrame():extensionTag{ |
|||
name = 'templatestyles', args = { src = 'Plainlist/styles.css' } |
|||
} |
|||
end |
end |
||
table.insert(data.classes, args.class) |
table.insert(data.classes, args.class) |
||
Line 87: | 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 110: | Line 114: | ||
-- Render the main div tag. |
-- Render the main div tag. |
||
local root = mw.html.create('div') |
local root = mw.html.create('div') |
||
for |
for _, class in ipairs(data.classes or {}) do |
||
root:addClass(class) |
root:addClass(class) |
||
end |
end |
||
Line 131: | 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 144: | Line 148: | ||
end |
end |
||
return tostring(root) |
return data.templatestyles .. tostring(root) |
||
end |
end |
||
Line 181: | Line 185: | ||
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) |
valueFunc = function (key, value) |
||
if not value or not mw.ustring.find(value, '%S') then return nil end |
if not value or not mw.ustring.find(value, '%S') then return nil end |