Modulo:Sandbox/Brunokito/ModuloBruno: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
Nessun oggetto della modifica
Riga 2:
-- Tutti i moduli Lua su Wikipedia devono iniziare definendo una variabile di tipo tabella che contenga
-- le funzioni accessibili dall'esterno. Può avere qualunque nome e contenere anche altri dati
local p = {};
-- Viene aggiunta una funzione alla variabile. Questa è richiamabile da Wikipedia mediante il
-- comando #invoke.
-- L'argomento "frame" conterrà i dati che Wikipedia invia a questa funzione quando viene
-- chiamata.
function p.hello( frame )
-- L'istruzione successiva termina la funzione e ritorna la stringa "Hello, World!" a Wikipedia
-- che verrà visualizzata al posto del richiamo del comando #invoke
-- return "Hello, world!"
return "Questa è una frase di prova che sostituisce Hello World!"
-- termina la funzione
end
 
local pstr = {};
function p.hello_nome1( frame )
--[[sub
-- Come l'esempio sopra, ma si aspetta anche due parametri posizionale che contengano un nome
-- e un saluto, la chiamata {{#invoke:ModuloBruno|hello_nome1|Franco|come va}}
-- sarà sostituita da "Hello, Franco, come va?"
return "Hello, " .. frame.args[1] .. ", " .. frame.args[2] .. "?"
-- termina la funzione
end
 
Questa funzione ritorna la sottostringa di una stringa bersaglio, come indicato dagli indici
function p.hello_nome2( frame )
-- Come l'esempio sopra, ma si aspetta anche due parametri nominali che contengano un nome
-- e un saluto, la chiamata {{#invoke:ModuloBruno|hello_nome2|nome=Franco|saluto=come va}}
-- sarà sostituita da "Hello, Franco, come va?"
return "Hello, " .. frame.args["nome"] .. ", " .. frame.args["saluto"] .. "?"
-- termina la funzione
end
 
Uso:
-- Il modulo deve terminare restituendo la variabile che contiene le sue funzioni a Wikipedia
{{#invoke:String|sub|stringa_bersaglio|indice_iniziale|indice_finale}}
return p
O
{{#invoke:String|sub|s=stringa_bersaglio|i=indice_iniziale|j=indice_finale}}
 
Parameters
-- Questo modulo può ora essere usato chiamando {{#invoke: ModuloBruno | hello }}.
s: La stringa da cui estrarre una sottostringa
-- Il comando #invoke inizia con il nome del modulo, in questo caso "ModuloBruno",
i: La posizione iniziale del primo carattere della sottostringa da ritornare, se non
-- quindi il nome di una delle sue funzioni come argomento, in questo caso "hello".
specificato è 1.
j: La posizione finale dell'ultimo carattere della sottostringa da ritornare, se non
specificato corrisponde alla lunghezza della stringa_bersaglio (l'ultimo carattere).
 
I caratteri della stringa sono numerati a partire da 1. Se i o j hanno un valore negativo allora
contano la posizione contando dalla fine della stringa, -1 è l'ultimo carattere della stringa,
-2 il penultimo, ecc...
 
Se le posizioni sono al di fuori degli estremi della stringa viene ritornato un messaggio di
errore.
]]--
function pstr.hellosub( frame )
local new_args = str._getParameters( frame.args, { 's', 'i', 'j' } );
local s = new_args['s'] or '';
local i = tonumber( new_args['i'] ) or 1;
local j = tonumber( new_args['j'] ) or -1;
 
local len = mw.ustring.len( s );
 
-- Convert negatives for range checking
if i < 0 then
i = len + i + 1;
end
if j < 0 then
j = len + j + 1;
end
 
if i > len or j > len or i < 1 or j < 1 then
return str._error( 'Indici fuori dagli estremi della stringa' );
end
if j < i then
return str._error( 'Indici in ordine sbagliato' );
end
 
return mw.ustring.sub( s, i, j )
end
return pstr