Modulo:Formatnum retrocompatibile: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
+lineetta enne negli intervalli |
m Protetto "Modulo:Formatnum retrocompatibile": Template o modulo usato in maniera estensiva ([Modifica=Consentito solo agli amministratori] (infinito) [Spostamento=Consentito solo agli amministratori] (infinito)) |
||
(5 versioni intermedie di 2 utenti non mostrate) | |||
Riga 1:
local p = {}
local function add_cat(cat)
cat = '[[Categoria:' .. cat .. ']]'
return mw.title.getCurrentTitle().namespace == 0 and cat or ''
end
function p.main(frame)
local str = frame.args[1]
if str == '' then
-- Stringa vuota, ad esempio in caso di parametro opzionale etc.
return ''
elseif mw.ustring.match( str, "^%-?[%d.]+$" ) then
-- Caso semplice, un numero nel formato corretto
return p._formatnum( str )
elseif mw.ustring.match( str, "^%-?[%d.,]+,[%d.,]+$" ) then
-- Numero con virgole, lasciamo inalterato
return str .. add_cat('
elseif mw.ustring.match( str, "^
-- Numero con spazi, li interpretiamo come separatori delle migliaia
-- Intervallo numerico, formattiamo solo i numeri escludendo il trattino▼
return p._formatnum( mw.ustring.gsub( str, "
elseif mw.ustring.match( str, "^%-?[%d.]+ *[-–] *%-?[%d.]+$" ) or mw.ustring.match( str, "^[dD]a %-?[%d.]+ a %-?[%d.]+$" ) then
return ( mw.ustring.gsub( str, "[%d.]+", p._formatnum ) ) .. add_cat('Modulo formatnum usato con intervallo')
elseif mw.ustring.match( str, "^%a+%.? %-?[%d.]+$" ) then
-- Parola seguita dal numero (ad es. "circa 123"), formattiamo il numero
return ( mw.ustring.gsub( str, "%-?[%d.]+", p._formatnum ) ) .. add_cat('
elseif mw.ustring.match( str, "^%a+ %-?[%d.]+ *[-–] *[%d.]+$" ) then
-- Parola seguita da intervallo, formattiamo i numeri escludendo il trattino
return ( mw.ustring.gsub( str, "[%d.]+", p._formatnum ) ) .. add_cat('
elseif mw.ustring.match( str, "^%-?[%d.]+ *\127'\"`UNIQ%w*%-+ref%-%
-- Numero seguito da nota, possiamo applicare il formatnum perché ignora le note
return p._formatnum( str )
else
-- Tutto il resto. Usiamo formatnum direttamente
return p._formatnum( str ) .. add_cat('
end
end
function p._formatnum( str )
return mw.getCurrentFrame():preprocess( "{{formatnum:" .. str .. "}}" )
end
|