Modulo:Esclusioni FileExport
Questo è un modulo scritto in Lua. Le istruzioni che seguono sono contenute nella sottopagina Modulo:Esclusioni FileExport/man (modifica · cronologia)
Sandbox: Modulo:Esclusioni FileExport/sandbox (modifica · cronologia) · Test: Modulo:Esclusioni FileExport/test (modifica · cronologia · Esegui)
Questo modulo viene utilizzato per categorizzare un file in base alla propria estensione. È possibile scegliere se farlo categorizzare in caso l'estensione scelta combaci con quella del file, oppure no.
Parametri da modulo
Questo modulo permette di poter scegliere i parametri da testare e il nome delle categorie che verranno utilizzate in uno o nell'altro caso.
CategoriaEsclusioneDefault
: è il nome predefinito della categoria che il modulo utilizzerà se l'estensione del file combacia con quella scelta tramite la variabileextControl
. Attualmente la categoria predefinita è "File esclusi dall'esportazione"CategoriaInclusioneDefault
è il nome predefinito della categoria che il modulo utilizzerà se l'estensione scelta non combacia con quella del file. Attualmente è stata lasciata vuota.extControl
: L'entensione da ricercare specificata tramite "estensione" (vd. sotto), se non specificato diversamente verrà usata "pdf"
Parametri personabilizzabili
Per semplificare l'uso del modulo, e renderlo più versatile, è possibile specificare dei parametri per "sovrascrivere" quelli di default:
estensione
: sovrascrive la variabile extControlCategoriaEsclusione
: il nome del parametro che è possibile usare per scegliere la categoria in cui verrà categorizzato il file se le due estensioni combaciano. Se non specificato il modulo utilizzerà il valore di CategoriaEsclusioneDefaultCategoriaInclusione
: il nome del parametro che è possibile usare per scegliere la categoria in cui verrà categorizzato il file se le due estensioni non combaciano. Se non specificato il modulo utilizzerà il valore di CategoriaInclusioneDefault.
funzione isExportable
Questa funzione sfrutta soltanto il parametro estensione per confrontare le due estensioni. Il suo unico scopo è quello di essere utilizzata in un template con un if, infatti resituisce solo "yes" se le due estensioni combaciano, o "no" se non combaciano. Anche in questo caso il parametro "estensione", se non diversamente specificato assumerà "pdf" come valore.
local getArgs = require('Modulo:Arguments').getArgs
--[[ Valore di default per scegliere il nome delle categorie da utilizzare nei
casi in cui l'estensione del file combaci (o meno) con quella voluta]]
local CategoriaEsclusioneDefault = "File esclusi dall'esportazione" -- corrispondente
local CategoriaInclusioneDefault = "" -- non corrispondente
local p = {}
local function _main(frame)
TitoloFile = tostring(mw.title.getCurrentTitle()) -- recupera il nome del file nel formato "NS:File.ext"
FileSplit = '(%a+):([%w%s]*)\.(%a+)' -- regex per dividere il nome del file
Namespace, NomeFile, EstensioneFile = TitoloFile:match(FileSplit)
return Namespace and NomeFile and EstensioneFile
end
function p.main(frame)
local args = getArgs(frame)
--[[Le due variabili sotto due variabili permettono di reperire i valori dei paramentri
"CategoriaEsclusione" e "CategoriaInclusione" se specificati nel template,
atrimenti usa i paramtri di default "CategoriaEsclusioneDefault" e
"CategoriaInclusioneDefault" specificati in cima a questo modulo.]]
CategoriaEsclusione = args['CategoriaEsclusione'] or CategoriaEsclusioneDefault
CategoriaInclusione = args['CategoriaInclusione'] or CategoriaInclusioneDefault
ext = string.lower( _main(EstensioneFile) ) -- forzo in minuscolo per essere sicuri
extControl = frame.args['estensione'] or 'pdf' -- estensione da comparare con quella del file, se non specificato sarà "pdf"
if ext == extControl then
if CategoriaEsclusione ~= "" then -- categorizza solo se il paramentro non è lasciato vuoto
return string.format('[[Category:%s]]', CategoriaEsclusione ) -- È l'estensione richiesta
end
else
if CategoriaInclusione ~= "" then -- categorizza solo se il paramentro non è lasciato vuoto
return string.format('[[Category:%s]]', CategoriaInclusione ) -- È l'estensione richiesta
end
end
end
function p.isExportable(frame)
local args = getArgs(frame)
ext = string.lower( _main(EstensioneFile) ) -- forzo in minuscolo per essere sicuri
extControl = frame.args['estensione'] or 'pdf' -- estensione da comparare con quella del file, se non specificato sarà "pdf"
if ext == extControl then
return 'yes'
else
return 'no'
end
end
return p