Module:List: Difference between revisions

    m>Mr. Stradivarius
    (fix ordered lists - had a stupid variable clash)
    m>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