Modulo:Chiarimento

Versione del 21 nov 2017 alle 20:06 di Sakretsu (discussione | contributi) (elimino controllo non più necessario, la nota nel tag sup è stata portata fuori)

Modulo che implementa le funzionalità del template {{Chiarimento}}.

Ha una sottopagina CSS: Modulo:Chiarimento/styles.css.


--[[
   Modulo che implementa le funzionalità del template {{Chiarimento}}.
   Impedisce conflitti col software Mediawiki per evitare errori HTML.
]]

local p = {}

function p.main(frame)
	local result = {}
	local substring = false
	local style = {
		background = '#ffeaea',
		color = '#444444'
	}
	frame.args[2] = '&#91;<i>' .. frame.args[2] .. '</i>&#93;'
	local sup = mw.html.create('sup')
	sup
		:addClass('noprint')
		:tag('span')
			:attr('title', frame.args[3])
			:css('color', 'red')
			:wikitext(frame.args[2])
	-- individua le sequenze di testo separate da una riga vuota
	local lines = mw.text.split(mw.text.trim(frame.args[1]) or '', '\n%s*\n')
	for i, v in ipairs(lines) do
		local sub_result = {}
		-- individua le sottosequenze separate da un'andata a capo
		local sublines = mw.text.split( v, '\n' )
		for _, line in ipairs(sublines) do
			local prefix = ''
			if substring then
				-- cerca e preserva escape (*, :, #) a inizio sottosequenza
				prefix = mw.ustring.match( line, '^[%*:%#]+') or ''
				line = mw.ustring.gsub( line, '^[%*:%#]+', '' )
			end
			local span = mw.html.create('span')
			span
				:attr('title', frame.args[3])
				:css(style)
				:wikitext(line)
			substring = true
			table.insert(sub_result, prefix .. tostring(span))
		end
		sub_result = table.concat(sub_result, '\n')
		table.insert(result, sub_result)
	end
	return table.concat(result, '\n\n') .. tostring(sup)
end

return p