Modulo:CategoriaMusicale

Versione del 18 feb 2020 alle 15:50 di Horcrux (discussione | contributi) (Horcrux ha spostato la pagina Modulo:Sandbox/Horcrux/CategoriaMusicale a Modulo:CategoriaMusicale senza lasciare redirect)
Info Istruzioni per l'uso
Questo è un modulo scritto in Lua. Le istruzioni che seguono sono contenute nella sottopagina Modulo:CategoriaMusicale/man (modifica · cronologia)
Sandbox: Modulo:CategoriaMusicale/sandbox (modifica · cronologia) · Sottopagine: lista · Test: Modulo:CategoriaMusicale/test (modifica · cronologia · esegui)

Questo modulo rimpiazza il vecchio codice del Template:CategoriaMusicale. Vedi il manuale del template per l'uso.


local p = {}

local subject2wikilink = {
	['Gruppi musicali'] = '[[Gruppo musicale|gruppi musicali]]',
	['Musicisti'] = '[[Musicista|musicisti]]',
	['Cantanti'] = '[[Cantante|cantanti]]',
	['Disc jockey'] = '[[disc jockey]]',
	['Album'] = '[[Album discografico|album]] musicali',
	['EP'] = '[[Extended play|EP]]',
	['Singoli'] = '[[Singolo (musica)|singoli]]',
	['Album video'] = '[[Album discografico|album]] video',
	['Brani musicali'] = '[[Brano musicale|brani musicali]]'
}

--[[
	verifica quali delle chiavi della tabella subject2wikilink
	è presente all'inizio del titolo della categoria e la memorizza
]]
function get_subject()
	local title = mw.title.getCurrentTitle().text
	for k, v in pairs(subject2wikilink) do
		if title:sub(1,string.len(k))==k then
			return k
		end
	end
	return nil
end

function p.main(frame)
	local namespace = mw.title.getCurrentTitle().namespace
	local args = frame.args
	local genre = args.genere or args[1]
	local forced_link = args.link_genere or args[2] or nil
	
	local subject = get_subject()
	
	local wikitext = "Questa categoria raggruppa voci su " .. subject2wikilink[subject] .. " [["
	if forced_link then wikitext = wikitext .. forced_link .. "|" end
	wikitext = wikitext .. genre .. "]].\n\n'''Categorie correlate:''' "
	if subject == "Gruppi musicali" or subject == "Musicisti" or subject == "Cantanti" then
		wikitext = wikitext .. string.format("[[:Categoria:%s per nazionalità|%s per nazionalità]]{{·}}", subject, subject)
	end
	wikitext = wikitext .. string.format("[[:Categoria:%s per genere|%s per genere (tutti)]]{{·}}", subject, subject)
	for k, v in pairs(subject2wikilink) do
		if subject ~= k then
			wikitext = wikitext .. string.format("{{·}} [[:Categoria:%s %s|%s %s]]", k, genre, k, genre)
		end
	end
	
	return wikitext
end

return p