Modul:Liste
Modul Liste
Modulbeschreibung
Modul zur Erzeugung von Listen.
Funktionen
erzeugeListe
Funktion zur Erzeugung von Listen. Diese Funktion kann auch in Lua-Modulen direkt aufgerufen werden. Hierzu müssen die Argumente als table übergeben werden. Beispiel:
local Liste = require('Modul:Liste') Liste.erzeugeListe({ abstand = "1em", liste = { ... } })
Die Liste kann folgendermaßen übergeben werden:
- Angabe der Listenelemente in den Parametern
item1
,item2
bisitemn
- Übergabe einer
table
oder einer Iterator-Funktion als Parameterliste
- Übergabe einer Liste in Wikitext-Format als Parameter
liste
Beispiele
Beispiel 1:
Liste mit Block-Elementen{{#invoke:Liste|erzeugeListe
|item1=
# A
# B
|item2=
# C
# D
}}
Ergebnis:
Beispiel 2:
Liste mit Abständen{{#invoke:Liste|erzeugeListe|abstand=1em|liste=
# Item 1
# Item 2
# Item 3}}
Ergebnis:
Beispiel 3:
Liste mit Icons{{#invoke:Liste|erzeugeListe|icon=Office-book.svg|icon_size=x20px|liste=
* Buch 1
* Buch 2
* Buch 3}}
Ergebnis:
Parameter
type
(optional) – Typ der Liste (entwederol
oderul
) (Standardwert: ul)abstand
– Abstand zwischen den Listenelementen (Angabe wie bei CSS)icon
(optional) – Dateiname des anzuzeigenden Icons (Standardwert: kein spezielles Icon wird verwendet)icon_size
– Größe des Iconskein_icon_verweis
– Icons haben keinen Verweis auf das originale Bild, wenn dieser Parameter gesetzt ist
- Diese Dokumentation wurde mithilfe von Modul:LuaDokumentation erstellt und befindet sich im Quelltext.
- Liste der Unterseiten
--- Modul zur Erzeugung von Listen.
local Liste = {}
local utils = require("Modul:Utils")
--- Funktion zur Erzeugung von Listen.
-- Diese Funktion kann auch in Lua-Modulen direkt aufgerufen werden. Hierzu müssen die Argumente als table
-- übergeben werden. Beispiel:
--
-- <pre>
-- local Liste = require('Modul:Liste')
--
-- Liste.erzeugeListe({ abstand = "1em", liste = { ... } })
-- </pre>
--
-- Die Liste kann folgendermaßen übergeben werden:
--
-- * Angabe der Listenelemente in den Parametern <code>item1</code>, <code>item2</code> bis <code>item''n''</code>
-- * Übergabe einer <code>table</code> oder einer Iterator-Funktion als Parameter <code>liste</code>
-- * Übergabe einer Liste in Wikitext-Format als Parameter <code>liste</code>
--
-- @example
-- @description Liste mit Block-Elementen
-- @code {{#invoke:Liste|erzeugeListe
-- |item1=
-- # A
-- # B
-- |item2=
-- # C
-- # D
-- }}
--
-- @example
-- @description Liste mit Abständen
-- @code {{#invoke:Liste|erzeugeListe|abstand=1em|liste=
-- # Item 1
-- # Item 2
-- # Item 3}}
--
-- @example
-- @description Liste mit Icons
-- @code {{#invoke:Liste|erzeugeListe|icon=Office-book.svg|icon_size=x20px|liste=
-- * Buch 1
-- * Buch 2
-- * Buch 3}}
--
-- @param type Typ der Liste (entweder <code>ol</code> oder <code>ul</code>)
-- @default_value ul
-- @param abstand Abstand zwischen den Listenelementen (Angabe wie bei CSS)
-- @param icon Dateiname des anzuzeigenden Icons
-- @default_value kein spezielles Icon wird verwendet
-- @param icon_size Größe des Icons
-- @param kein_icon_verweis Icons haben keinen Verweis auf das originale Bild, wenn dieser Parameter gesetzt ist
function Liste.erzeugeListe(frame)
return Liste.createListOutput(frame:getParent(), frame:getParent().args)
end
function Liste.createListOutput(list, args)
local list_type = args.type or "ul"
local icon_code = ""
if args.icon then
icon_code = "[[Datei:" .. args.icon .. "|"
if args.icon_size then icon_code = icon_code .. args.icon_size .. "|" end
if args.kein_icon_verweis then icon_code = icon_code .. "verweis=|" end
icon_code = icon_code .. "alt=]] "
end
if args.liste then
args.liste = mw.text.trim(args.liste)
if utils.starts(args.liste, "#") then list_type = "ol" end
end
local result = mw.html.create( list_type )
if args.icon then
result:css('list-style','none'):css('margin-left', '0')
end
for i, item in ipairs( utils.to_table(list, "item", "liste") ) do
li = result:tag("li")
if args.abstand and i > 0 then
li:css("margin-top", args.abstand)
end
if args["item1"] then li:newline() end
li:wikitext(icon_code .. item)
if args["item1"] then li:newline() end
li:done()
end
return tostring(result:done())
end
return Liste