Module:ExplodeAndList
Appearance
Documentation for this module may be created at Module:ExplodeAndList/doc
-- Module:ExplodeAndList
-- This module takes two parameters, a list of, for example, titles and a list of, for example, names separated by '<br />' tags,
-- and formats them into a list with each title and name pair displayed on separate lines.
--
-- Usage:
-- {{#invoke:ExplodeAndList|explodeAndList|<list1>|<list2>}}
--
-- Parameters:
-- 1. <list1>: A string containing, for example, titles separated by '<br />' tags.
-- 2. <list2>: A string containing, for example, names separated by '<br />' tags.
--
-- Example:
-- {{#invoke:ExplodeAndList|explodeAndList|
-- | King<br />Governor<br />Prime minister]]
-- | Willem-Alexander<br />Lucille George-Wout<br />Gilmar Pisas
-- }}
--
-- Output:
-- - King Willem-Alexander<br />
-- - Governor Lucille George-Wout<br />
-- - Prime minister Gilmar Pisas
--
-- This module is typically used in templates to format lists of titles and names.
local p = {}
function p.explodeAndList(frame)
local titulonan = frame.args[1] or ""
local nombernan = frame.args[2] or ""
-- Split the inputs by the <br /> tag
local titulonan_list = mw.text.split(titulonan, '<br />')
local nombernan_list = mw.text.split(nombernan, '<br />')
-- Initialize the result table
local result = {}
-- Ensure the lists are of equal length
local max_length = math.max(#titulonan_list, #nombernan_list)
for i = 1, max_length do
local title = titulonan_list[i] or ""
local name = nombernan_list[i] or ""
-- Append the combined title and name to the result
table.insert(result, title .. ' ' .. name)
end
-- Concatenate the result into a single string separated by <br /> tags
return table.concat(result, '<br />')
end
return p