| 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 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) |
| 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 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] |
| 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 i, class in ipairs(data.classes or {}) do | + | 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 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 |
| 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 |