Modulo:Sidebar
Questo è un modulo scritto in Lua. Le istruzioni che seguono sono contenute nella sottopagina Modulo:Sidebar/man (modifica · cronologia)
Sandbox: Modulo:Sidebar/sandbox (modifica · cronologia) · Test: Modulo:Sidebar/test (modifica · cronologia · Esegui)
Modulo Lua che implementa funzionalità per il Template:Sidebar.
Esempi
Sostituzione base
La chiamata
{{#invoke:Sidebar | sostituisciLink
| nomePagina=Numeri reali
| linkErrato=Aiuto:Tour guidato/Nome pagina errato
}}
restituisce una versione modificata di [[Numeri reali]] dove tutti i wikilink sono reindirizzati a [[Aiuto:Tour guidato/Nome pagina errato]].
Sostituzione base e evidenzia wikilink
La chiamata
{{#invoke:Sidebar | sostituisciLink
| nomePagina=Numeri reali
| linkErrato=Aiuto:Tour guidato/Nome pagina errato
| wikilink=Materia:Analisi matematica
| nuovoWikilink=Aiuto:Tour guidato/Materie
}}
restituisce una versione modificata di [[Numeri reali]] dove tutti i wikilink sono reindirizzati a [[Aiuto:Tour guidato/Nome pagina errato]] con l'eccezione di [[Materia:Analisi matematica|Nome del wikilink]] che viene invece trasformato in [[Aiuto:Tour guidato/Materie|Nome del wikilink]] e viene evidenziato da un bordo rosso.
local p = {}
-- Restituisce il sorgente di una pagina con tutti i link che puntano a
-- linkErrato. Inoltre reindirizza [[wikilink|nomeWikilink]] a nuovoWikilink
-- e gli aggiunge un bordo rosso
function p.sostituisciLink(frame)
local nomePagina = frame.args.nomePagina
local linkErrato = frame.args.linkErrato
local wikilink = frame.args.wikilink
local nuovoWikilink = frame.args.nuovoWikilink
local nomeWikilink = frame.args.nomeWikilink and '|' .. frame.args.nomeWikilink or ''
local sorgentePagina = frame:expandTemplate{ title = ':' .. nomePagina }
local escapedWikilink = ''
if wikilink then
escapedWikilink = mw.ustring.gsub(wikilink, '([%-%(%)])', '%%%1')
end
-- Rimuovi categorie ma tieni l'avviso sulla pagina del corso
sorgentePagina = mw.ustring.gsub(sorgentePagina, 'puoi %[%[:Categoria:Corso di .-|crearla%]%] tu sei vuoi!',
'puoi [[' .. linkErrato .. '|crearla]] tu sei vuoi!')
sorgentePagina = mw.ustring.gsub(sorgentePagina, '%[%[%s-Categoria:.-%]%]', '')
sorgentePagina = mw.ustring.gsub(sorgentePagina, '%[%[%s-:Categoria:.-%]%]', '')
-- Espandi sottopagine
sorgentePagina = mw.ustring.gsub(sorgentePagina, '%[%[:[^|]-' .. mw.title.getCurrentTitle().text .. '(/[^/|]-)%]%]',
function (sottoPagina)
return frame:expandTemplate{ title = ':' .. nomePagina .. sottoPagina }
end)
-- Rimuovi titolo modificato
sorgentePagina = mw.ustring.gsub(sorgentePagina, '<div id="RealTitleBanner".-</div>', '')
-- Per prima cosa, marca i link che non vogliamo reindirizzare
sorgentePagina = mw.ustring.gsub(sorgentePagina, '%[%[%s-File:', '[{[File:')
sorgentePagina = mw.ustring.gsub(sorgentePagina, '%[%[%s-Image:', '[{[Image:')
sorgentePagina = mw.ustring.gsub(sorgentePagina, '%[%[%s-Immagine:', '[{[Immagine:')
if wikilink then
sorgentePagina = mw.ustring.gsub(sorgentePagina, '%[%[%s-' .. escapedWikilink, '[{[' .. wikilink)
end
-- Sostituisci {{FULLPAGENAME}} e {{PAGENAME}}
sorgentePagina = mw.ustring.gsub(sorgentePagina, mw.title.getCurrentTitle().prefixedText, nomePagina)
sorgentePagina = mw.ustring.gsub(sorgentePagina, mw.title.getCurrentTitle().text, nomePagina)
-- Fix link di modifica alle sottopagine
sorgentePagina = mw.ustring.gsub(sorgentePagina, 'w/index.php%?title=.-&action=edit[^%s%]]-',
'w/index.php?title=' .. mw.ustring.gsub(linkErrato, '%s', '_'))
-- Reindirizza tutti gli altri link a linkErrato
-- First we remove all wikilinks to differentiate between those that are labelled
sorgentePagina = mw.ustring.gsub(sorgentePagina, '%[%[[^%]]-|', '[[')
sorgentePagina = mw.ustring.gsub(sorgentePagina, '%[%[', '[[' .. linkErrato .. '|')
-- Fix the links that we have marked previously
sorgentePagina = mw.ustring.gsub(sorgentePagina, '%[{%[', '[[')
-- Add red border to marked link
if wikilink then
sorgentePagina = mw.ustring.gsub(sorgentePagina, '%[%[%s-' .. escapedWikilink .. '(.-%]%])',
'<span style="border:3px solid red;">[[' .. nuovoWikilink .. '%1</span>')
end
return sorgentePagina
end
return p