Module:Acrarimentu

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

--[[
   Mòdulu chi implementat sas funtzionalidades de su template {{Acrarimentu}}.
   Impedit cunflitos cun su programma Mediawiki pro evitare errores HTML.
]]

local p = {}

function p.main(frame)
	local result = {}
	local args = frame:getParent().args
	local styles = 'Module:Acrarimentu/styles.css'

	-- agatat sas secuèntzias de testu iscrobadas dae una riga bòida
	local lines = mw.text.split(mw.text.trim(args[1] or ''), '\n%s*\n')
	local substring = false
	for i, v in ipairs(lines) do
		local sub_result = {}
		-- agatat sas secuèntzias de testu iscrobadas dae un'andada a capu
		local sublines = mw.text.split(v, '\n')
		for _, line in ipairs(sublines) do
			local prefix = ''
			if substring then
				-- chircat e sarva escape (*, :, #) a s'incumintzu sutasecuèntzia
				prefix = mw.ustring.match( line, '^[%*:%#]+') or ''
				line = mw.ustring.gsub( line, '^[%*:%#]+', '' )
			end
			local span = mw.html.create('span')
			span
				:addClass('acrarimentu')
				:attr('title', args[3])
				: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

	-- ingendra su testu in pitzu intre parentesis cuadras
	args[2] = '&#91;<i>' .. (args[2] or '') .. '</i>&#93;'
	local sup = mw.html.create('sup')
	sup
		:addClass('noprint acrarimentu-pitzos')
		:attr('title', args[3])
		:wikitext(args[2])

	return frame:extensionTag{
			name = 'templatestyles',
			args = {src = styles}
		} .. table.concat(result, '\n\n') .. tostring(sup)
end

return p