Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Module:Delimited tag

From Vault Hunters Official Wiki
Revision as of 22:52, 16 June 2025 by Mnooseman (talk | contribs) (Created page with "local p = {} function p.output(frame) local args = frame if frame == mw.getCurrentFrame() then args = require('Module:ProcessArgs').merge(true) end local format_delimiter = function(wikitext) local output = wikitext output = (args["prefix"] or "") .. output .. (args["postfix"] or "") if args["all-link"] then output = "" .. output .. "" end if args["tag"] then local html = mw.html.create(args["tag"]) if args["word...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Documentation for this module may be created at Module:Delimited tag/doc

local p = {}

function p.output(frame)
	local args = frame

	if frame == mw.getCurrentFrame() then 
		args = require('Module:ProcessArgs').merge(true)
	end

	local format_delimiter = function(wikitext)
		local output = wikitext

		output = (args["prefix"] or "") .. output .. (args["postfix"] or "")

		if args["all-link"] then
			output = "[[" .. wikitext .. "|" .. output .. "]]"
		end

		if args["tag"] then
			local html = mw.html.create(args["tag"])
			
			if args["wordbreak"] then
				html:css("word-break", "break-all")
			end

			html:wikitext(output)

			output = tostring(html)
		end

		return output
	end
	local listLevel = args['list-level'] or '**'

	local output = format_delimiter(assert(args[1], 'No tag text provided'))
	
	local finalDelimiterValues = {
		['none'] = '<nowiki/>',
		['comma'] = ', ',
		 [','] = ', ',
		['and'] = ', and ',
		['&'] = ' &amp;&nbsp;',
		['or'] = ' or&nbsp;',
		['to'] = ' to&nbsp;',
		['br'] = '<br/>',
		 ['newline'] = '<br/>',
		['list'] = '\n' .. listLevel,
		 ['bullet'] = '\n' .. listLevel,
		 ['*'] = '\n' .. listLevel,
		['and-list'] = ', and\n' .. listLevel,
		['or-list'] = ', or\n' .. listLevel,
		['&-list'] = ' &\n' .. listLevel,
		['comma-list'] = ',\n' .. listLevel,
		 [',-list'] = ',\n' .. listLevel,
	}
	
	local midDelimiterValues = {
		['and'] = ', ',
		 ['&'] = ', ',
		 ['or'] = ', ',
		['and-list'] = ',<br/>\n' .. listLevel,
		 ['&-list'] = ',<br/>\n' .. listLevel,
		 ['or-list'] = ',<br/>\n' .. listLevel,
	}
	
	local delimiter = args['delimiter'] or args['delim'] or args['d'] or '&nbsp;'
	local finalDelimiter = finalDelimiterValues[delimiter] or delimiter
	local midDelimiter = midDelimiterValues[delimiter] or finalDelimiter
	
	for i,val in ipairs(args) do
		if (i > 1) then
			local currentDelimiter = args[i+1] and midDelimiter or finalDelimiter
			output = output .. currentDelimiter .. format_delimiter(val)
		end
	end
	
	return output
	
end

return p