Vai al contenuto

Modulo:Versi

Da Wikiquote, aforismi e citazioni in libertà.

Modulo Lua che implementa le funzionalità del template:Versi.


local p = {}

local function escape(pattern)
	return pattern:gsub('.', '%%%0')
end

local function italicize(text)
	local t = { '[...]' } -- eccezioni

	for _, pattern in ipairs(t) do
		pattern = '%s*' .. escape(pattern) .. '%s*'
		text = text:gsub(pattern, '</i>%0<i>')
	end

	return '<i>' .. text .. '</i>'
end

function p.main(frame)
	local ret = ''
	local args = {}

	for k, v in pairs(frame:getParent().args) do
		if type(k) == 'number' then
			v = mw.text.trim(v)

			if v ~= '' then
				args[k] = v
			end
		end
	end

	for i, v in pairs(args) do
		v = italicize(v)

		if args[i - 1] then
			v = ' | ' .. v
		elseif i ~= 1 then
			v = ' || ' .. v
		end

		ret = ret .. v
	end

	return ret
end

return p