Questo modulo serve per generare la parte da visualizzare del wikilink generato dal Template:I. La funzione controlla se il secondo parametro del template è un #, una stringa di testo o se è assente e formatta il testo del wikilink visualizzato in modalità lettura come mostrato nel manuale di I.

Il modo contiene una sola funzione: moduli.

Per problemi contattare Wim b. La funzione che isola il valore della sezione è stata scritta da Barbaking.


local p = {}
	function p.moduli(frame)
		local par1 = frame.args[1]
		local par2 = frame.args[2]
		local lettere = mw.ustring.gsub(par1, '(%a+[%s*%a*]*)', '') -- Cancella le lettere
                modulo = mw.ustring.match(par1, '(%a+[%s*%a*]*)#'); --isola la parola prima il #
                sezione = mw.ustring.match(par1, '#(%a+[%s*%a*]*)'); --isola la parola dopo il #
                subpage = mw.title.getCurrentTitle().baseText

		 if lettere ~= "#" then
			if par2 == "" then -- Se il secondo parametro non è stato dichiarato, visualizza il valore del primo 
				return '[['.. subpage .. '/'.. par1:gsub("^%l", string.upper) .. '|' .. par1 .. ']]'
			elseif par2 ~= "#" then
				return '[['.. subpage .. '/'.. par1:gsub("^%l", string.upper) .. '|' .. par2 .. ']]' 
			end
		elseif lettere == "#" then
                if par2 == "" then -- Se il secondo parametro non è stato dichiarato, visualizza il valore della sezione 
				return '[['.. subpage .. '/' .. modulo:gsub("^%l", string.upper) .. '#'.. sezione:gsub("^%l", string.upper).. '|' .. sezione .. ']]'
			    elseif par2 == "#" then -- Se il secondo parametro uguale a "#", visualizza il valore del primo 
				    return '[['.. subpage .. '/' .. modulo:gsub("^%l", string.upper) .. '#'.. sezione:gsub("^%l", string.upper).. '|' .. par1 .. ']]'
			elseif par2 ~= "" and par2 ~= "#" then -- Restituisce il valore del secondo parametro se non è uguale a  "#" o vuoto
				return '[['.. subpage .. '/' .. par1:gsub("^%l", string.upper) .. '|' ..par2 .. ']]'
			end
	    end
end
 
return p