Module:List: Difference between revisions
convert to Module:HtmlBuilder and fix list-style-type support
m>Mr. Stradivarius (first attempt to add support for list-style-type, but broken for now) |
m>Mr. Stradivarius (convert to Module:HtmlBuilder and fix list-style-type support) |
||
Line 3: | Line 3: | ||
local p = {} | local p = {} | ||
local htmlBuilder = require('Module:HtmlBuilder') | |||
local function getListItem(data, style, itemStyle) | local function getListItem(data, style, itemStyle) | ||
Line 8: | Line 10: | ||
return nil | return nil | ||
end | end | ||
local item = htmlBuilder.create('li') | |||
item | |||
.cssText(style) | |||
.cssText(itemStyle) | |||
.wikitext(data) | |||
return tostring(item) | |||
end | end | ||
Line 37: | Line 32: | ||
table.sort(nums) | table.sort(nums) | ||
return nums | return nums | ||
end | end | ||
Line 88: | Line 50: | ||
return '' | return '' | ||
end | end | ||
-- | -- Build the list html. | ||
local | local root = htmlBuilder.create('div') | ||
if listType == 'horizontal' or listType == 'horizontal_ordered' then | |||
if listType == ' | root.addClass('hlist') | ||
elseif listType == 'unbulleted' then | |||
root.addClass('plainlist') | |||
end | |||
root.addClass(args.class) | |||
if listType == 'horizontal' or listType == 'horizontal_ordered' then | |||
local indent = args.indent and tonumber(indent) | |||
indent = tostring((indent and indent * 1.6) or 0) | |||
root.css('margin-left', indent .. 'em') | |||
end | end | ||
root.cssText(args.style) | |||
local list = root.tag((listType == 'ordered' or listType == 'horizontal_ordered') and 'ol' or 'ul') | |||
list | |||
.attr('start', args.start) | |||
.attr('type', args.type) | |||
.css('list-style-type', args['list-style-type']) | |||
.cssText(args.list_style or args.ul_style or args.ol_style) -- ul_style and ol_style are included for backwards compatibility. No distinction is made for ordered or unordered lists. | |||
.wikitext(table.concat(listItems)) | |||
return tostring(root) | |||
) | |||
end | end | ||