17,548
回編集
細 (1版 をインポートしました) |
細 (1版 をインポートしました) |
||
| (3人の利用者による、間の3版が非表示) | |||
| 1行目: | 1行目: | ||
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 | 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 | 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) | ||
if startNum then | if startNum then | ||
data.counterReset = 'listitem ' .. tostring(startNum | data.counterReset = 'listitem ' .. tostring(startNum - 1) | ||
end | end | ||
end | end | ||
| 88行目: | 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] | ||
| 95行目: | 98行目: | ||
item.value = args['item' .. tostring(num) .. '_value'] | item.value = args['item' .. tostring(num) .. '_value'] | ||
or args['item_value' .. tostring(num)] | or args['item_value' .. tostring(num)] | ||
table.insert(data.items, item) | table.insert(data.items, item) | ||
end | end | ||
| 114行目: | 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 | ||
| 128行目: | 128行目: | ||
:css{ | :css{ | ||
['counter-reset'] = data.counterReset, | ['counter-reset'] = data.counterReset, | ||
['list-style-type'] = data.listStyleType | ['list-style-type'] = data.listStyleType | ||
} | } | ||
| 136行目: | 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 | ||
| 149行目: | 148行目: | ||
end | end | ||
return tostring(root) | return data.templatestyles .. tostring(root) | ||
end | end | ||
| 186行目: | 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 | ||