「モジュール:List」の版間の差分

130 バイト追加 、 2025年7月19日 (土)
1版 をインポートしました
(1版 をインポートしました)
(1版 をインポートしました)
 
(他の1人の利用者による、間の2版が非表示)
1行目: 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
20行目: 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 hlist-separated')
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)
69行目: 73行目:
-- Start number for ordered lists
-- Start number for ordered lists
data.start = args.start
data.start = args.start
if listType == 'ordered' or listType == 'horizontal_ordered' then
if listType == 'horizontal_ordered' then
-- Apply fix to get start numbers working with horizontal ordered lists.
-- Apply fix to get start numbers working with horizontal ordered lists.
local startNum = tonumber(data.start)
local startNum = tonumber(data.start)
88行目: 92行目:
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]
114行目: 118行目:
-- Render the main div tag.
-- Render the main div tag.
local root = mw.html.create('div')
local root = mw.html.create('div')
for i, class in ipairs(data.classes or {}) do
for _, class in ipairs(data.classes or {}) do
root:addClass(class)
root:addClass(class)
end
end
136行目: 140行目:


-- 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
149行目: 153行目:
end
end


return tostring(root)
return data.templatestyles .. tostring(root)
end
end