Modulo:Chiarimento
Jump to navigation
Jump to search
La documentazione per questo modulo può essere creata in Modulo:Chiarimento/man
--[[ Modulo che implementa le funzionalità del template {{Chiarimento}}. Impedisce conflitti col software Mediawiki per evitare errori HTML. ]] local p = {} function p.main(frame) local ret = {} local args = frame:getParent().args local styles = 'Modulo:Chiarimento/styles.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') for k, v in ipairs(lines) do -- individua le sottosequenze separate da un'andata a capo local sublines = mw.text.split(v, '\n') for i, line in ipairs(sublines) do local prefix = '' local firstline = k == 1 and i == 1 -- cerca e preserva i caratteri *, :, # a inizio sottosequenza con le -- dovute precauzioni alla prima sequenza assoluta per [[phab:T14974]] if not firstline or mw.ustring.match(sublines[2] or '', '^[%*:%#]') then prefix = mw.ustring.match(line, '^[%*:%#]+') or '' if firstline and prefix ~= '' then prefix = '\n' .. prefix end line = mw.ustring.gsub(line, '^[%*:%#]+', '') end local span = mw.html.create('span') span :addClass('chiarimento') :attr('title', args[3]) :wikitext(line) sublines[i] = prefix .. tostring(span) end table.insert(ret, table.concat(sublines, '\n')) end -- genera il testo in apice tra parentesi quadre args[2] = '[<i>' .. (args[2] or '') .. '</i>]' 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(ret, '\n\n') .. tostring(sup) end return p