Modulo:Chiarimento

Questo è un modulo scritto in Lua. Le istruzioni che seguono sono contenute nella sottopagina Modulo:Chiarimento/man (modifica · cronologia)
Sandbox: Modulo:Chiarimento/sandbox (modifica · cronologia) · Sottopagine: lista · Test: Modulo:Chiarimento/test (modifica · cronologia · Esegui)
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 = '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')
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] = '[<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(result, '\n\n') .. tostring(sup)
end
return p