Module:Cslist
MyWikiBiz, Author Your Legacy — Friday October 31, 2025
Jump to navigationJump to searchModule to implement Template:Cslist, which creates a horizontal list similar to Template:Hlist but using comma separators instead of mid-dots.
It can take as many list items as desired, and also an optional Template:Para, which when set to true or yes will use a semicolon as separator in place of the comma.
Note: the unordered list which is generated is good for accessibility, but really is only useful in tables and infoboxes as an alternative to using {{hlist}}. It should not be used in running prose.
Examples
| {{cslist | first item | second item  | third item | etc}}→ Template:Cslist | 
| {{cslist | first item | second item  | third item | etc |semi=true}}→ Template:Cslist | 
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 or ""):sub(1,1):lower()
	semi = (semi == "t") or (semi == "y")
	local embedded = (args.embedded or ""):sub(1,1):lower()
	embedded = (embedded == "y")
	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
		listclass = listclass .. "cslist"
	end
	if embedded then
		listclass = listclass .. " cslist-embedded"
	end
	if out ~= "" then
		return '<ul class="'.. listclass ..'">' .. out .. '</ul>'
	end
end
return p
