Modulo:Chiarimento

Versione del 15 nov 2017 alle 23:14 di Sakretsu (discussione | contributi) (aggiungo gestione degli escape)

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
		-- procede alla prima sequenza e a quelle successive esistenti
		if #v > 0 or i == 1 then
			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
	end
	return table.concat(result, '\n\n') .. tostring(sup)
end

return p