Modulo:Chiarimento

Da Cathopedia, l'enciclopedia cattolica.
Vai alla navigazione Vai alla ricerca
__EXPECTED_UNCONNECTED_PAGE__

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 args = frame:getParent().args
        local styles = 'MediaWiki:Common.css'

	-- individua le sequenze di testo separate da una riga vuota
        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 = {}
                -- 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
                                :addClass('chiarimento')
                                :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

        -- genera il testo in apice tra parentesi quadre
        args[2] = '&#91;<i>' .. (args[2] or '') .. '</i>&#93;'
        local sup = mw.html.create('sup')
        sup
                :addClass('noprint chiarimento-apice')
                :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