Module:Cslist/sandbox
Appearance
![]() | This is the module sandbox page for Module:Cslist (diff). |
![]() | This Lua module is used on approximately 2,500 pages and changes may be widely noticed. Test changes in the module's /sandbox or /testcases subpages, or in your own module sandbox. Consider discussing changes on the talk page before implementing them. |
Module to implement Template:Cslist, which creates a horizontal list similar to Template:Hlist but using comma separators instead of mid-dots. See template documentation for usage.
p = {}
p.makelist = function(frame)
local args = frame.args
if not args[1] then
args = frame:getParent().args
if not args[1] then return end
end
local semi = args.semi
if semi then semi = semi:lower() end
local oxford = args.oxford
if oxford then oxford = oxford:lower() end
local embedded = args.embedded
if embedded then embedded = embedded:lower() end
local bold = args.bold
local out = ""
for k, v in ipairs(args) do
v = mw.text.trim(v)
if v ~= "" then
out = out .. "<li>" .. v .. "</li>"
end
end
local listclass = ""
if semi then
listclass = listclass .. "sslist"
else
if oxford then
if args[3] then
listclass = listclass .. "andlistoxford"
else
listclass = listclass .. "andlist"
end
else
listclass = listclass .. "cslist"
end
end
if embedded then
listclass = listclass .. " cslist-embedded"
end
if bold then
listclass = listclass .. " cslist-bold"
end
if out ~= "" then
return '<ul class="'.. listclass ..'">' .. out .. '</ul>'
end
end
return p