Modulo:Chiarimento: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
aggiungo gestione degli escape
miglioro il riconoscimento e la gestione degli elenchi, da un'idea di Utente:Horcrux
 
(3 versioni intermedie di uno stesso utente non sono mostrate)
Riga 7:
 
function p.main(frame)
local resultret = {}
local substringargs = falseframe:getParent().args
local stylestyles = {'Modulo:Chiarimento/styles.css'
 
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 ik, v in ipairs(lines) do
-- individua le sottosequenze separate da un'andata a capo
-- procede alla prima sequenza e a quelle successive esistenti
local sublines = mw.text.split(v, '\n')
if #v > 0 or i == 1 then
for _i, line in ipairs(sublines) do
local sub_resultprefix = {}''
-- individua le sottosequenze separate da un'andata a capo
local sublinesfirstline = mw.text.split(k v,== '\n'1 and i == )1
-- cerca e preserva escapei caratteri (*, :, #) a inizio sottosequenza con le
for _, line in ipairs(sublines) do
-- dovute precauzioni alla prima sequenza assoluta per [[phab:T14974]]
local prefix = ''
if not firstline or mw.ustring.match(sublines[2] or '', '^[%*:%#]') then
if substring then
prefix = mw.ustring.match(line, '^[%*:%#]+') or ''
-- cerca e preserva escape (*, :, #) a inizio sottosequenza
if firstline and prefix ~= mw.ustring.match( line, '^[%*:%#]+') or ''then
lineprefix = mw.ustring.gsub( line, '^[%*:%#]+\n', ''.. )prefix
end
local spanline = mw.htmlustring.creategsub(line, '^[%*:%#]+', 'span')
span
:attr('title', frame.args[3])
:css(style)
:wikitext(line)
substring = true
table.insert(sub_result, prefix .. tostring(span))
end
sub_resultlocal span = tablemw.concathtml.create(sub_result, '\nspan')
:tag(' span')
table.insert(result, sub_result)
:addClass('chiarimento')
:attr('title', frame.args[3])
:wikitext(line)
table.insert(sub_result,sublines[i] = prefix .. tostring(span))
end
table.insert(ret, table.concat(sublines, '\n'))
end
 
return table.concat(result, '\n\n') .. tostring(sup)
-- genera il testo in apice tra parentesi quadre
frame.args[2] = '&#91;<i>' .. frame.(args[2] or '') .. '</i>&#93;'
local sup = mw.html.create('sup')
sup
:addClass('noprint chiarimento-apice')
:attr('title', frame.args[3])
:wikitext(frame.args[2])
 
return frame:extensionTag{
name = 'templatestyles',
args = {src = styles}
return } .. table.concat(resultret, '\n\n') .. tostring(sup)
end