Modulo:String/sandbox: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Moroboshi (discussione | contributi)
fix2
Moroboshi (discussione | contributi)
test list to string
Riga 401:
end
return mw.ustring.rep( frame.args[1] or '', repetitions )
end
 
--[[
spacer
 
Questa funzione permette di inserire una stringa tra ogni carattere della stringa sorgente.
 
Uso:
{{#invoke:String|spacer|stringa_sorgente|spacer}}
 
Parametri:
source: La stringa in cui inserire
spacer: La stringa da inserire tra i caratteri di source (se non definita uguale a spazio)
]]
function str.spacer(frame)
local new_args = str._getParameters( frame.args, {'source', 'spacer' } );
local source_str = new_args['source'];
if source_str == nil then
return ''
end
local spacer = new_args['spacer'] or ' ';
local characters={}
mw.ustring.gsub(source_str, ".", function(c) table.insert(characters,c) end)
return table.concat(characters, spacer)
end
 
Line 605 ⟶ 581:
return pre .. mw.text.listToText(elements, separatore, congiunzione) .. post
end
 
 
function str.spacerlisttostring(frame)
 
local base_args = frame.args
local charactersparams = {}
if not base_args then return str._error('Lista parametri vuota') end
-- carico la lista dei parametri
local base_index = tonumber((base_args['base_index'] and base_args['base_index']) or '1')
local par_number = tonumber((base_args['par_number'] and base_args['par_number']) or '1')
local Nmax = tonumber((base_args['par_max_number'] and base_args['par_max_number']) or '0')
--carico il messaggio
local msg = base_args.msg or '$1'
local message = Message(msg)
elements = {}
-- carico gli altri parametri di formattazione
local index = base_index
local args = frame:getParent().args
-- elaboro i valori successivi
while found do
if Nmax > 0 and index > Nmax then break end
message:reset_values()
found = false
for i = index, index+par_number-1 do
if args[i] then
found = true
message:add_value(args[i])
end
return ''end
if not found then break end
elements[#elements+1] = message:text()
index = index + par_number
end
if #elements == 0 then return '' end
-- carico separatori, congiunzione, pre e postazione
local pre, post, separatore, congiunzione = '', '', '', ''
local spacerlista = new_args['spacer']base_args.lista or ' ';
if lista == 'puntata' or (lista =='infobox' and #elements >1) then
pre = '<UL><LI>'
post = '</LI>\n</UL>'
separatore = '</LI>\n<LI>'
congiunzione = separatore
elseif lista == 'ordinata' then
pre = '<OL><LI>'
post = '</LI>\n</OL>'
separatore = '</LI>\n<LI>'
congiunzione = separatore
else
pre = base_args.pre or ''
post = base_args.post or ''
separatore = base_args.separatore or ''
congiunzione = base_args.congiunzione or separatore
end
return pre .. mw.text.listToText(elements, separatore, congiunzione) .. post
end
 
 
--[[