Difference between revisions of "Module:ListParser"
Jump to navigation
Jump to search
>Caledor92 |
>Eave (add generic linkify-ier for list inputs) |
||
| Line 4: | Line 4: | ||
local itemTemplate = '<div style="display:inline-block;vertical-align:top;width:80px;text-align:center;padding:4px">%s</div>' | local itemTemplate = '<div style="display:inline-block;vertical-align:top;width:80px;text-align:center;padding:4px">%s</div>' | ||
| + | |||
| + | |||
| + | -- Usage: {{#invoke:ListParser|Linkify|<page names,comma,separated>}} | ||
| + | -- Ex: {{#invoke:ListParser|Linkify|Wyrmite, Elisanne, Dragalia Life}} | ||
| + | function p.Linkify(frame) | ||
| + | local pages = frame.args[1] | ||
| + | return p._linkify(pages) | ||
| + | end | ||
| + | |||
| + | function p._linkify(pages) | ||
| + | local result = {} | ||
| + | |||
| + | for name in mw.text.gsplit(names, ',') do | ||
| + | name = mw.text.trim(name) | ||
| + | if name ~= '' then | ||
| + | result[#result+1] = string.format('[[%s]]', name) | ||
| + | end | ||
| + | end | ||
| + | |||
| + | return table.concat(result, '') | ||
| + | end | ||
-- Usage: {{#invoke:ListParser|Adventurers|<names,comma,separated>}} | -- Usage: {{#invoke:ListParser|Adventurers|<names,comma,separated>}} | ||
Revision as of 01:04, 4 April 2020
Also see Module:ListParserTooltip.
{{#invoke:ListParser|Linkify|Wyrmite, Elisanne, Dragalia Life}}
Lua error in mw.text.lua at line 219: bad argument #1 to 'len' (string expected, got nil).
{{#invoke:ListParser|Weapons|Rathalos Firesword, Wyvern Blade “Maple”, Blazing Falchion, Rath Blaze Splitter, Spear of Prominence, Dark Filament, Plage Rod, Wyvern Staff “Elsewhere”, Fatalis Sword, Fatalis Xiphos, Black Dragon Blade, Black Dragon Axe, Black Dragon Spear, Black Dragon Bow, Fatalis Rhabdos, Black Dragon Staff}}
Error: Table Weapons not found.
Error: Table Weapons not found.
Error: Table Weapons not found.
Error: Table Weapons not found.
Error: Table Weapons not found.
Error: Table Weapons not found.
Error: Table Weapons not found.
Error: Table Weapons not found.
Error: Table Weapons not found.
Error: Table Weapons not found.
Error: Table Weapons not found.
Error: Table Weapons not found.
Error: Table Weapons not found.
Error: Table Weapons not found.
Error: Table Weapons not found.
Error: Table Weapons not found.
-- <includeonly> (prevents literal interpretation of links or categories within the module code)
-- Lua Templating for {{Template:SummonShowcase}}, {{Template:Event}} and any other templates requiring items to be listed in a series (,).
local p = {}
local itemTemplate = '<div style="display:inline-block;vertical-align:top;width:80px;text-align:center;padding:4px">%s</div>'
-- Usage: {{#invoke:ListParser|Linkify|<page names,comma,separated>}}
-- Ex: {{#invoke:ListParser|Linkify|Wyrmite, Elisanne, Dragalia Life}}
function p.Linkify(frame)
local pages = frame.args[1]
return p._linkify(pages)
end
function p._linkify(pages)
local result = {}
for name in mw.text.gsplit(names, ',') do
name = mw.text.trim(name)
if name ~= '' then
result[#result+1] = string.format('[[%s]]', name)
end
end
return table.concat(result, '')
end
-- Usage: {{#invoke:ListParser|Adventurers|<names,comma,separated>}}
-- Ex: {{#invoke:ListParser|Adventurers|Halloween Mym, Halloween Lowen, Halloween Odetta, Halloween Elisanne}}
function p.Adventurers(frame)
local names = frame.args[1]
return p._Adventurers(names)
end
function p._Adventurers(names)
local result = {}
for name in mw.text.gsplit(names, ',') do
name = mw.text.trim(name)
if name ~= '' then
result[#result+1] = string.format(itemTemplate, icon('Adventurer', name), name)
end
end
return table.concat(result, '')
end
-- Usage: {{#invoke:ListParser|Dragons|<names,comma,separated>}}
-- Ex: {{#invoke:ListParser|Dragons|Halloween Maritimus, Halloween Silke}}
function p.Dragons(frame)
local names = frame.args[1]
return p._Dragons(names)
end
function p._Dragons(names)
local result = {}
for name in mw.text.gsplit(names, ',') do
name = mw.text.trim(name)
if name ~= '' then
result[#result+1] = string.format(itemTemplate, icon('Dragon', name), name)
end
end
return table.concat(result, '')
end
-- Usage: {{#invoke:ListParser|Wyrmprints|<names,comma,separated>}}
-- Ex: {{#invoke:ListParser|Wyrmprints|Witch's Kitchen}}
function p.Wyrmprints(frame)
local names = frame.args[1]
return p._Wyrmprints(names)
end
function p._Wyrmprints(names)
local result = {}
for name in mw.text.gsplit(names, ',') do
name = mw.text.trim(name)
if name ~= '' then
result[#result+1] = string.format(itemTemplate, icon('Wyrmprint', name), name)
end
end
return table.concat(result, '')
end
-- Usage: {{#invoke:ListParser|Weapons|<names,comma,separated>}}
-- Ex: {{#invoke:ListParser|Weapons|Fólkvangr}}
function p.Weapons(frame)
local names = frame.args[1]
return p._Weapons(names)
end
function p._Weapons(names)
local result = {}
for name in mw.text.gsplit(names, ',') do
name = mw.text.trim(name)
if name ~= '' then
result[#result+1] = string.format(itemTemplate, icon('Weapon', name), name)
end
end
return table.concat(result, '')
end
-- Common templating functions
-- {{Template:Icon}}
function icon(type, name)
local frame = mw.getCurrentFrame()
return frame:expandTemplate{title='Icon', args={type, name, text=1}}
end
return p
--</includeonly>