Difference between revisions of "Module:List"

373 bytes added ,  15:00, 24 November 2013
only use type and list_style_type with ordered and horizontal ordered lists
meta>Mr. Stradivarius
(fix ordered lists - had a stupid variable clash)
meta>Mr. Stradivarius
(only use type and list_style_type with ordered and horizontal ordered lists)
Line 54: Line 54:
return ''
return ''
end
end
-- Build the list html.
-- Build the opening div tag.
local root = htmlBuilder.create('div')
local root = htmlBuilder.create('div')
if listType == 'horizontal' or listType == 'horizontal_ordered' then
if listType == 'horizontal' or listType == 'horizontal_ordered' then
Line 66: Line 66:
indent = tostring((indent and indent * 1.6) or 0)
indent = tostring((indent and indent * 1.6) or 0)
root.css('margin-left', indent .. 'em')
root.css('margin-left', indent .. 'em')
end
-- If we are outputting an ordered list or an ordered horizontal list, get the type and list-style-type.
-- Horizontal ordered lists aren't supported yet, but including them anyway in case support is ever added to the CSS backend.
local listStyleType, typeAttr
if listType == 'ordered' or listType == 'horizontal_ordered' then
listStyleType = args.list_style_type or args['list-style-type']
typeAttr = args['type']
end
end
-- Detect if the type attribute specified by args.type is using an invalid value, and if so try passing it as a list-style-type CSS property.
-- Detect if the type attribute specified by args.type is using an invalid value, and if so try passing it as a list-style-type CSS property.
local listStyleType = args.list_style_type or args['list-style-type']
local typeAttr = args['type']
if typeAttr and not typeAttr:match('^%s*[1AaIi]%s*$') then
if typeAttr and not typeAttr:match('^%s*[1AaIi]%s*$') then
if not listStyleType then
if not listStyleType then
Line 77: Line 82:
end
end
root.cssText(args.style)
root.cssText(args.style)
-- Build the list tags and list items.
local list = root.tag((listType == 'ordered' or listType == 'horizontal_ordered') and 'ol' or 'ul')
local list = root.tag((listType == 'ordered' or listType == 'horizontal_ordered') and 'ol' or 'ul')
list
list
Anonymous user