
This module outputs an unbulleted list. It has two functions: unbulleted
, for a normal unbulleted list, and hlist
, for a horizontal list using the hlist
class (see HLIST). It supersedes the templates {{unbulleted list}} and {{hlist}}.
Usage
Unbulleted list
- Quick usage
{{#invoke:unbulleted list|unbulleted|''first item''|''second item''|''third item''|...}}
- All parameters
{{#invoke:unbulleted list|unbulleted |''first item''|''second item''|''third item''|... |class = ''class'' |style = ''style'' |ul_style = ''style for ul tag'' |li_style = ''style for all li tags'' |li_style1 = ''style for first li tag'' |li_style2 = ''style for second li tag'' |... }}
- Arguments passed from parent template
{{#invoke:unbulleted list|unbulleted}}
Horizontal list
- Quick usage
{{#invoke:unbulleted list|hlist|''first item''|''second item''|''third item''|...}}
- All parameters
{{#invoke:unbulleted list|hlist |''first item''|''second item''|''third item''|... |class = ''class'' |style = ''style'' |ul_style = ''style for ul tag'' |li_style = ''style for all li tags'' |li_style1 = ''style for first li tag'' |li_style2 = ''style for second li tag'' |... |indent = ''indent for the list'' }}
- Arguments passed from parent template
{{#invoke:unbulleted list|hlist}}
Parameters
- Positional parameters (
1
,2
,3
...) - these are the list items. If no list items are present, the module will output nothing. class
- a custom class for the<div>...</div>
tags surrounding the list, e.g.plainlinks
.style
- a custom css style for the<div>...</div>
tags surrounding the list, e.g.font-size: 90%;
.ul_style
- a custom css style for the<ul>...</ul>
tags around the list. The format is the same as for the|style=
parameter.li_style
- a custom css style for all of the list items (the<li>...</li>
tags). The format is the same as for the|style=
parameter.li_style1
,li_style2
,li_style3
... - custom css styles for each of the list items. The format is the same as for the|style=
parameter.indent
- for horizontal lists only, this parameter indents the list. The value must be a number, e.g.2
. The indent is calculated in em, and is 1.6 times the value specified. If no indent is specified, the default is zero.
Examples
- Unbulleted lists
Code | Result |
---|---|
{{#invoke:unbulleted list|unbulleted|entry1|entry2|entry3|entry4|entry5|entry6|entry7|entry8|entry9}} |
|
{{#invoke:unbulleted list|unbulleted|Winner|Runner-up|Third place|li_style=color:blue;}} |
|
{{#invoke:unbulleted list|unbulleted|Winner|Runner-up|Third place|li_style1=background-color:yellow;|li_style2=background-color:silver;}} |
|
- Horizontal lists
Code | Result |
---|---|
{{#invoke:unbulleted list|hlist|entry1|entry2|entry3|entry4|entry5|entry6|entry7|entry8|entry9}} |
|
{{#invoke:unbulleted list|hlist|Winner|Runner-up|Third place|li_style=color:blue;}} |
|
{{#invoke:unbulleted list|hlist|Winner|Runner-up|Third place|li_style=color:blue;|indent=2}} |
|
{{#invoke:unbulleted list|hlist|Winner|Runner-up|Third place|li_style1=background-color:yellow;|li_style2=background-color:silver;}} |
|
Hinweise
- Die obige Dokumentation wurde aus der Seite Modul:Unbulleted list/Doku eingefügt. (bearbeiten | Versionsgeschichte) Die Kategorien für dieses Modul sollten in der Dokumentation eingetragen werden. Die Interwiki-Links sollten auf Wikidata eingepflegt werden.
- Liste der Unterseiten
-- This module implements {{unbulleted list}} and {{hlist}}. local function getListItem( data, style, itemStyle ) if not data then return nil end if style or itemStyle then style = style or '' itemStyle = itemStyle or '' return mw.ustring.format( '<li style="%s%s">%s</li>', style, itemStyle, data ) else return mw.ustring.format( '<li>%s</li>', data ) end end local function getArgNums( args ) -- Returns an array containing the keys of all positional arguments -- that contain data (i.e. non-whitespace values). local nums = {} for k, v in pairs( args ) do if type( k ) == 'number' and k >= 1 and math.floor( k ) == k and mw.ustring.match( v, '%S' ) then table.insert( nums, k ) end end table.sort( nums ) return nums end local function getClass( listType, class ) local classes = {} if listType == 'hlist' then table.insert( classes, 'hlist' ) end table.insert( classes, 'plainlist' ) table.insert( classes, class ) local ret if #classes == 0 then return nil end return mw.ustring.format( ' class="%s"', table.concat( classes, ' ' ) ) end local function getStyle( listType, indent, style ) local styles = {} if listType == 'hlist' then indent = indent and tonumber( indent ) indent = tostring( ( indent and indent * 1.6 ) or 0 ) table.insert( styles, 'margin-left: ' .. indent .. 'em;' ) end table.insert( styles, style ) if #styles == 0 then return nil end return mw.ustring.format( ' style="%s"', table.concat( styles, ' ' ) ) end local function buildList( args, listType ) local listItems = {} local argNums = getArgNums( args ) for i, num in ipairs( argNums ) do local item = getListItem( args[ num ], args.li_style, args[ 'li_style' .. tostring( num ) ] ) table.insert( listItems, item ) end if #listItems == 0 then return '' end local class = getClass( listType, args.class ) or '' local style = getStyle( listType, args.indent, args.style ) or '' local ulStyle = ( args.ul_style and ( ' style="' .. args.ul_style .. '"' ) ) or '' return mw.ustring.format( '<div%s%s><ul%s>%s</ul></div>', class, style, ulStyle, table.concat( listItems ) ) end local function makeWrapper( listType ) return function( frame ) local origArgs if frame == mw.getCurrentFrame() then origArgs = frame:getParent().args for k, v in pairs( frame.args ) do origArgs = frame.args break end else origArgs = frame end local args = {} for k, v in pairs( origArgs ) do if type( k ) == 'number' or v ~= '' then args[ k ] = v end end return buildList( args, listType ) end end return { hlist = makeWrapper( 'hlist' ), unbulleted = makeWrapper( 'unbulleted' ) }