Marvel Wiki
Advertisement

A documentação para este módulo pode ser criada em Módulo:Predefinições de Mensagem de Categoria/doc

-- módulo para predefinição de mensagem colocado em categorias.
local p = {}
local h = require("Módulo:HF")
local design = require('Módulo:Design')
local getArgs = require('Dev:Arguments').getArgs


function p.test()
	local basepagename = mw.title.getCurrentTitle().baseText
	local subpagename = mw.title.getCurrentTitle().subpageText
	local root = mw.title.getCurrentTitle().rootText
	local full = mw.title.getCurrentTitle().fullText
	local prefixed = mw.title.getCurrentTitle().prefixedText
	local text = mw.title.getCurrentTitle().text
	
	return 'base='..basepagename..'<br>subpage='..subpagename..'<br>root='..root..'<br>prefixed='..prefixed..'<br>full='..full..'<br>text='..text
end


--------------------------------------------------------------------------------
function p.categoria_de_peso(frame)
	local unidades  = require('Módulo:Unidades')	
	local pagename = mw.title.getCurrentTitle().text	
	local function lbs_to_kg(weightLbs)
		return h.round(tonumber(weightLbs) * unidades['lbs'].kg, 2)
	end
	local i
	local value1
	local value2
	local value3
	local classificarnome
	local category
	local help = {}
	local output_categories = {'Peso'}
	local output = 'Lista de personagens com '
	
	value1, value2 = string.match(pagename, 'Peso (%d+)%-(%d+) lbs')
	if value1 ~= nil and value2 ~= nil
		then 
			classificarnome = lbs_to_kg(value1) * 1000
			if value2 == '9'
				then output = output..'peso abaixo de 10 libras ('..lbs_to_kg(10)..' kg)'
				else output = output..'peso entre '..value1..' lbs ('..lbs_to_kg(value1)..' kg) e '..value2..' lbs ('..lbs_to_kg(value2)..' kg)'
			end
		else 
			output = output..string.lower(pagename)
			classificarnome = lbs_to_kg(1000) * 1000
	end
	output = design.span(output..'.').bold
	classificarnome = ' '..string.rep('0', 10-#tostring(classificarnome))..classificarnome
	
	value1 = lbs_to_kg(10)
	category = 'Peso 0-9 libras ('..value1..' kg)'
	text = '< 10 libras ('..value1..' kg)'
	table.insert(help, h.LinkToCategory(category, text))
	
	value1 = lbs_to_kg(10)
	value2 = lbs_to_kg(20)
	category = 'Peso 10-19 libras ('..value1..'-'..value2..' kg)'
	text = '10-19 libras ('..value1..'-'..value2..' kg)'
	table.insert(help, h.LinkToCategory(category, text))
	
	i = 20
	while i <= 280 do
		value1 = lbs_to_kg(i)
		value2 = lbs_to_kg(i+20)
		text = i..'-'..(i+19)..' libras ('..value1..'-'..value2..' kg)'
		category = 'Peso '..text
		table.insert(help, h.LinkToCategory(category, text))
		i = i + 20
	end
	
	i = 300
	while i <= 900 do
		value1 = lbs_to_kg(i)
		value2 = lbs_to_kg(i+100)
		text = i..'-'..(i+99)..' libras ('..value1..'-'..value2..' kg)'
		category = 'Peso '..text
		table.insert(help, h.LinkToCategory(category, text))
		i = i + 100
	end
	
	value1 = lbs_to_kg(1000)
	category = 'Peso acima de 1000 libras ('..value1..' kg)'
	text = '> 1000 libras ('..value1..' kg)'
	table.insert(help, h.LinkToCategory(category, text))

	table.insert(help, h.LinkToCategory('Peso variável', 'Variável'))

	help = mw.text.listToText(help, ' · ', ' · ')
	help = tostring(mw.html.create('span'):css('font-size', '70%'):wikitext(help))
	
	output = design.messagebox({output..'<br>'..help})

	return output..h.add_categories(output_categories, classificarnome)
end




--------------------------------------------------------------------------------
function p.categoria_de_altura(frame)
	local unidades  = require('Módulo:Unidades')	
	local pagename = mw.title.getCurrentTitle().text	
	local function ft_to_m(heightFt)
		return tonumber( string.format("%.2f", tonumber(heightFt) * unidades['ft'].m) )
	end
	local i
	local j
	local value1
	local value2
	local value3
	local classificarnome
	local category
	local help = {}
	local output_categories = {'Altura'}
	local output = 'Lista de personagens com '
	
	value1, value2 = string.match(pagename, 'Altura de (%d)%-(%d) pés')
	if value1 ~= nil and value2 ~= nil
		then 
			classificarnome = ft_to_m(value1) * 1000
			if value2 == '1'
				then output = output..'altura abaixo de 1 pé ('..ft_to_m(1)..' m)'
				else output = output..'altura entre '..value1..' pés ('..ft_to_m(value1)..' m) e '..value2..' pés ('..ft_to_m(value2)..' m)'
			end
		else 
			output = output..string.lower(pagename)
			if string.find(pagename, ' acima de 8 ') ~= nil
				then classificarnome = ft_to_m(8) * 1000
				elseif string.find (pagename, 'variável') ~= nil
					then classificarnome = '9999'
				else
					value1, value2 = string.match(pagename, '(%d+) pés% (%d+) pol.')
					classificarnome = ft_to_m(tonumber(value1) + tonumber(value2)/12) * 1000
			end
	end
	output = design.span(output..'.').bold
	classificarnome = ' '..string.rep('0', 4-#tostring(classificarnome))..classificarnome
	
	value1 = ft_to_m(1)
	category = 'Altura de 0-1 pés. ('..value1..' m)'
	text = '< 1 pé. ('..value1..' m)'
	table.insert(help, h.LinkToCategory(category, text))
	for i = 1, 4 do
		value1 = ft_to_m(i)
    	value2 = ft_to_m(i+1)
    	text = i..'-'..(i+1)..' pés. ('..value1..'-'..value2..' m)'
    	category = 'Altura de '..text
    	table.insert(help, h.LinkToCategory(category, text))
    end
    for j = 5, 6 do
    	for i = 0, 11 do
    		value1 = ft_to_m(j + i/12)
    		text = j..' pés '..i..' pol. ('..value1..' m)'
    		category = 'Altura de '..text
    		table.insert(help, h.LinkToCategory(category, text))
    	end
    end
    
	i = 7
	value1 = ft_to_m(i)
    value2 = ft_to_m(i+1)
    text = i..'-'..(i+1)..' pés ('..value1..'-'..value2..' m)'
    category = 'Altura de '..text
    table.insert(help, h.LinkToCategory(category, text))

    value1 = ft_to_m(8)
    category = 'Altura acima de 8 pés ('..value1..' m)'
    text = '> 8 ft. ('..value1..' m)'
    table.insert(help, h.LinkToCategory(category, text))
    
   	table.insert(help, h.LinkToCategory('Altura variável', 'Variável'))
    
	help = mw.text.listToText(help, ' · ', ' · ')
	help = tostring(mw.html.create('span'):css('font-size', '70%'):wikitext(help))
	
	output = design.messagebox({output..'<br>'..help})
	
	return output..h.add_categories(output_categories, classificarnome)
end


--------------------------------------------------------------------------------
-- atualmente não está funcionando
function p.ordem_cronologica(frame)
	local pagename = "Escola Xavier para Jovens Superdotados/Aparições" --mw.title.getCurrentTitle().text
	local OC = require('Módulo:Ordem Cronológica')
	return design.messagebox({OC.principal(frame, pagename)})
end


--------------------------------------------------------------------------------
-- usado na Predefinição:Categoria de Tabela de Poder
function p.categoria_de_tabela_de_poder(frame)
	local descricao = mw.loadData('Módulo:Tabela de Poder/Descrição')
	local args = getArgs (frame)
	local subpageText = mw.title.getCurrentTitle().subpageText
	local baseText = mw.title.getCurrentTitle().baseText
	local rootText = mw.title.getCurrentTitle().rootText
	local i
	local j
	local tipos_de_navegacao = {}
	local valores_da_navegacao = {}
	local value 
	local categoria
	local output_category = ''
	local output = ''

	for i = 1,6 do
		categoria = 'Tabela de Poder/'..descricao[i].label
		table.insert(tipos_de_navegacao, h.LinkToCategory(categoria, descricao[i].label))
	end
	tipos_de_navegacao = mw.text.listToText(tipos_de_navegacao, ' · ', ' · ')
	tipos_de_navegacao = tostring( mw.html.create('span'):css('font-size', '80%'):css('font-family', 'monospace'):wikitext(tipos_de_navegacao) )
	tipos_de_navegacao = 'Esta categoria faz parte das classificações de poder apresentadas nos manuais oficiais da Marvel.<br>'..tipos_de_navegacao

	if baseText == rootText
		then
			output_category = h.Category(baseText, subpageText)
			for i = 1,6 do
				if descricao[i].label == subpageText
					then output = design.span(string.upper(descricao[i].label)).bold..' — '..descricao[i].tooltip
				end
			end
			output = tipos_de_navegacao..'\n----'..output
		else
			for i = 1,6 do
				if descricao[i].label == string.match(baseText, '/(.+)')
					then
						output = design.span(descricao[i].label).bold..' — '..descricao[i].tooltip
						for j = 1,7 do
							categoria = descricao[i].values[j].categoria
							table.insert(valores_da_navegacao,  h.LinkToCategory(categoria, j))
							if categoria == baseText..'/'..subpageText
								then 
									value = design.span(string.upper(descricao[i].values[j].tooltip)).bold
									output_category = h.Category(baseText, j)
							end
						end
						valores_da_navegacao = mw.text.listToText(valores_da_navegacao, ' · ', ' · ')
						output = tipos_de_navegacao..'\n----'..output..'<br>'..valores_da_navegacao..'<br>'..value
				end
			end
	end
	output = design.messagebox({output})

	return output..output_category
end


--------------------------------------------------------------------------------
function p.races_by_location(frame)
	local args = getArgs(frame)
	local pagename = mw.title.getCurrentTitle().baseText
	local page_content = h.get_content(pagename)
	local galaxy = h.get_field_value(page_content, 'Galaxy') 
	local dimension = h.get_field_value(page_content, 'Dimension') 
	local star_system = h.get_field_value(page_content, 'StarSystem') 
	local planet = h.get_field_value(page_content, 'Planet') 
	local page_type = args[1]
	local place = args[2]
	local output_categories = {}
	local output = ''
	
	if (not h.isempty(galaxy) and pagename == galaxy) or (not h.isempty(page_type) and string.lower(page_type) == 'galaxy')
		then
			output = 'galaxy'
			table.insert(output_categories, 'Races by Galaxy')
		elseif (not h.isempty(dimension) and pagename == dimension) or (not h.isempty(page_type) and string.lower(page_type) == 'dimension')
			then
				output = 'dimension'
				table.insert(output_categories, 'Races by Dimension')
		elseif (not h.isempty(star_system) and pagename == star_system) or (not h.isempty(page_type) and string.lower(page_type) == 'star system')
			then
				output = 'star system'
				table.insert(output_categories, 'Races by Star System')
				if not h.isempty(galaxy)
					then table.insert(output_categories, galaxy..'/Races')
					elseif not h.isempty(dimension)
						then table.insert(output_categories, dimension..'/Races')	
					elseif not h.isempty(place)
						then table.insert(output_categories, place..'/Races')
				end
		elseif (not h.isempty(planet) and pagename == planet) or (not h.isempty(page_type) and string.lower(page_type) == 'planet')
			then
				output = 'planet'
				table.insert(output_categories, 'Races by Planet')
				if not h.isempty(star_system)
					then table.insert(output_categories, star_system..'/Races')
					elseif not h.isempty(galaxy)
						then table.insert(output_categories, galaxy..'/Races')
					elseif not h.isempty(dimension)
						then table.insert(output_categories, dimension..'/Races')
					elseif not h.isempty(place)
						then table.insert(output_categories, place..'/Races')
				end
		else table.insert(output_categories, 'Races by Place of Origin')
	end
	
	table.insert(output_categories, pagename)
	output = 'Races which originated from '..h.Link(pagename, pagename)..' '..output..'.'
	output = design.span(output).bold
	output = design.messagebox({output})

	return output..h.add_categories(output_categories, pagename)
end


--------------------------------------------------------------------------------
-- usado em:
--		Predefinição:Categoria de Aparições
--		Predefinição:Categoria de Menções
--		Predefinição:Categoria de Aparições Menores
--		Predefinição:Categoria de Imagens
--		Predefinição:Citações
--		Predefinição:Itens por Usuário
function p.subcategorias_e_subpaginas_padrao(frame)
	local basepagename = mw.title.getCurrentTitle().baseText
	local subpagename = mw.title.getCurrentTitle().subpageText
	local pagetype = getArgs(frame)[1]
	local s
	
	if string.find(basepagename, 'Morto por ') ~= nil
		then s = string.match(basepagename, 'Morto por (.+)')
		else s = basepagename
	end
	
	if h.isempty(pagetype)
		then pagetype = require('Módulo:TipoDePágina').get_tipo_de_pagina(s)
	end
	
	if pagetype == 'Categoria' and string.find(basepagename, ' Temporada ') ~= nil
		then pagetype = 'Temporada'
		elseif h.isempty(pagetype) and not h.in_list({'Aparições', 'Aparições Menores', 'Menções', 'Invocações', 'Itens', 'Citações', 'Imagens', 'Galeria'}, subpagename)
			then 
				basepagename = mw.title.getCurrentTitle().text
				pagetype = require('Módulo:TipoDePágina').get_tipo_de_pagina(basepagename)
	end

	if h.in_list({'Quadrinho', 'Volume', 'Episódio', 'Temporada', 'Série', 'Vídeo Game', 'Filme'}, pagetype)
		then return p.lua_subcategorias_e_subpaginas_padrao2(basepagename, subpagename, pagetype)
		else return p.lua_subcategorias_e_subpaginas_padrao(basepagename, subpagename, pagetype)
	end
end

-- para fontes - edições de quadrinhos, episódios, videogames, etc.
function p.lua_subcategorias_e_subpaginas_padrao2(basepagename, subpagename, pagetype)
	local padrao = require('Módulo:NomePadronizado')
	local classificarnome = padrao.nome_por_classificacao({basepagename})
	local i
	local category
	local list = {}
	local list1 = {'Reimpreissões', 'Imagens'}
	local list2 = {'Imagens'}
	local list_of_subpages = {}
	local help = ''
	local info = ''
	local output_categories = {}
	local output = ''
	
	pagetype = pagetype or require('Módulo:TipoDePágina').get_tipo_de_pagina(basepagename)
	if pagetype == 'Categoria' and string.find(basepagename, ' Temporada ') ~= nil
		then pagetype = 'Temporada'
	end
	
	if pagetype == 'Volume' or pagetype == 'Quadrinho'
		then 
			list = list1
			info = padrao.lua_get_titulo_volume_edicao(basepagename, 'Vol')
		elseif h.in_list({'Episódio', 'Temporada', 'Série', 'Filme'}, pagetype)
			then 
				if subpagename == basepagename
					then list = list2
				end
				if pagetype == 'Episódio' or pagetype == 'Temporada'
					then info = padrao.lua_get_titulo_volume_edicao(basepagename, 'Temporada')
				end
		elseif pagetype == 'Vídeo Game' 
			then list = list2
	end
	
	for i = 1, #list do
		category = basepagename..'/'..list[i]
		if list[i] == 'Imagens'
			then s = 'files'
			else s = 'subcats'
		end
		if h.pages_in_category(category, s) > 0
			then table.insert(list_of_subpages, h.LinkToCategory(category, list[i]) )
			else table.insert(list_of_subpages, p.pagina_inexistente(list[i]) )
		end
	end
	
	if pagetype == 'Vídeo Game'
		then
			category = basepagename..'/Galeria'
			if h.exists(category)
				then table.insert(list_of_subpages, h.Link(category, 'Galeria') )
				else table.insert(list_of_subpages, p.pagina_inexistente('Galeria') )
			end
	end
	if not h.isempty(list_of_subpages)
		then
			list_of_subpages = mw.text.listToText(list_of_subpages, ' · ', ' · ')
			list_of_subpages = '<br>'..tostring( mw.html.create('span'):css('font-size', '80%'):css('font-family', 'monospace'):wikitext(list_of_subpages) )
		else list_of_subpages = ''
	end
	
	if h.in_list({'Reimpressões', 'Imagens', 'Galeria', 'Temporadas'}, subpagename) and subpagename ~= basepagename
		then
			if subpagename == 'Reimpressões'
				then 
					if pagetype == 'Quadrinho'
						then 
							output = 'Lista de todas as reimpressões conhecidas de '..h.Link(basepagename, basepagename)..'.'
							help = '<br>(Se você encontrar uma edição que não é mostrada aqui, adicione "'
							help = help..basepagename..'" no campo "ReimpressãoDe_" da referida edição.)'
							table.insert(output_categories, 'Reimpressões de quadrinhos por edição')
							table.insert(output_categories, info.semedicao..'/Reimpressões')
						else
							output = 'Lista de reimpressões por edição de '..h.Link(basepagename, basepagename)..'.'
							help = '<br>(Se você encontrar reimpressão de uma edição deste volume que não é mostrado aqui, adicione' 
							help = help..' fonte original no campo "ReimpressãoDe_" da referida edição.)'
							table.insert(output_categories, 'Reimpressões de quadrinhos por volume')
					end
				elseif subpagename == 'Imagens'
					then
						if pagetype == 'Temporada'
							then output = 'Lista de todas as imagens notáveis de '..h.Link(info.titulo..'#Temporada '..info.volume, basepagename)..'.'
							else output = 'Lista de todas as imagens notáveis de '..h.Link(basepagename, basepagename)..'.'
						end
						if pagetype == 'Volume'
							then help = '<br>(Se você encontrar uma imagem que não é mostrada aqui, adicione uma edição de "'
							elseif pagetype == 'Temporada' or pagetype == 'Série'
								then help = '<br>(Se você encontrar uma imagem que não é mostrada aqui, adicione um episódio de "'
							else help = '<br>(Se você encontrar uma imagem que não é mostrada aqui, por favor, adicione "'
						end
						help = help..basepagename..'" no campo "Fonte" da referida imagem.)'
						if pagetype == 'Quadrinho'
							then 
								table.insert(output_categories, 'Imagens de Quadrinhos por Edição')
								table.insert(output_categories, info.semedicao..'/Imagens')
							elseif pagetype == 'Volume'
								then table.insert(output_categories, 'Imagens de Quadrinhos por Volume')
							elseif pagetype == 'Episódio'
								then 
									table.insert(output_categories, 'Capturas de Tela de TV por Episódio')
									table.insert(output_categories, info.semedicao..'/Imagens')
							elseif pagetype == 'Temporada'
								then 
									table.insert(output_categories, 'Capturas de Tela de TV por Temporada')
									table.insert(output_categories, info.titulo..'/Imagens')
							elseif pagetype == 'Série'
								then table.insert(output_categories, 'Capturas de Tela de TV por Série')
							elseif pagetype == 'Vídeo Game'
								then table.insert(output_categories, 'Capturas de Tela de Vídeo Game')	
							elseif pagetype == 'Filme' or pagetype == 'filme'
								then table.insert(output_categories, 'Capturas de Tela de Filme por Filme')		
						end
				elseif subpagename == 'Galeria'
					then
						output = 'Galeria de todas as imagens notáveis de '..h.Link(basepagename, basepagename)..'.'
						help = h.Link('Marvel Wiki:Diretrizes da Galeria', 'Diretrizes da Galeria')
						help = '<br>(Se você criar uma galeria ou adicionar imagem(ns) a uma existente, siga nossa '..help..').'
						table.insert(output_categories, 'Galerias de '..pagetype)
			end
		else
			basepagename = mw.title.getCurrentTitle().text
			pagetype = require('Módulo:TipoDePágina').get_tipo_de_pagina(basepagename)
			if pagetype == 'Volume'
				then
					output = 'Lista de todas as edições de quadrinhos conhecidas do volume de '..h.Link(basepagename, basepagename)..'.'
					help = h.Link('Marvel Wiki:Predefinição de Quadrinho', 'Predefinição de Quadrinho')
					help = '<br>(Se você encontrar uma edição que não é mostrado aqui, adicione a '..help..' a ela.)'
					table.insert(output_categories, 'Categorias de Quadrinhos')
				elseif pagetype == 'Temporada'
					then
						output = 'Lista de todos os episódios conhecidos de '..h.Link(info.titulo..'#Temporada '..info.volume, basepagename)..'.'
						help = h.Link('Marvel Wiki:Predefinição de Episódio', 'Predefinição de Episódio')
						help = '<br>(Se você encontrar um episódio que não é mostrado aqui, adicione a '..help..' a ele.)'
						list = {}
						for i = 1, 30 do
							category = info.titulo..' Temporada '..i
							if h.exists('Categoria:'..category)
								then 
									category = h.LinkToCategory(category, 'Temporada '..i)
									table.insert(list, category)
							end
						end
						if not h.isempty(list)
							then
								list = mw.text.listToText(list, ' · ', ' · ')
								help = help..'<br>'..tostring( mw.html.create('span'):css('font-size', '80%'):css('font-family', 'monospace'):wikitext(list) )
						end
						table.insert(output_categories, 'Temporadas')
			end
	end
	if help ~= ''
		then help = tostring(mw.html.create('span'):css('font-size', '80%'):wikitext(help))
	end
	output = design.span(output).bold..help..list_of_subpages
			
	return design.messagebox({output})..h.add_categories(output_categories, classificarnome)
end


-- para artigos - personagens, equipes, etc.
function p.lua_subcategorias_e_subpaginas_padrao(basepagename, subpagename, pagetype)
	local classificarnome
	local i
	local category
	local list = {'Aparições', 'Aparições Menores', 'Menções', 'Invocações', 'Itens', 'Citações', 'Imagens'}
	local list_of_subpages = {}
	local help = ''
	local s
	local morto_por = false
	local output_categories = {}
	local output = ''

	if string.find(basepagename, 'Morto por ') ~= nil
		then 
			basepagename = string.match(basepagename, 'Morto por (.+)')
			morto_por = true
	end

	classificarnome = require('Módulo:NomePadronizado').nome_por_classificacao({basepagename})
	pagetype = pagetype or require('Módulo:TipoDePágina').get_tipo_de_pagina(basepagename)

	for i = 1, #list do
		category = basepagename..'/'..list[i]
		if list[i] == 'Imagens'
			then s = 'files'
			else s = 'pages'
		end
		if h.pages_in_category(category, s) > 0
			then table.insert(list_of_subpages, h.LinkToCategory(category, list[i]) )
			else table.insert(list_of_subpages, p.pagina_inexistente(list[i]) )
		end
	end
	category = basepagename..'/Galeria'
	if h.exists(category)
		then table.insert(list_of_subpages, h.Link(category, 'Galeria') )
		else table.insert(list_of_subpages, p.pagina_inexistente('Galeria') )
	end
	if h.in_list({'Personagem', 'Equipe', 'Organização', 'Raça'}, pagetype) 
		then
			category = 'Morto por '..basepagename
			if h.pages_in_category(category, 'pages') > 0
				then table.insert(list_of_subpages, h.LinkToCategory(category, 'Vitímas') )
				else table.insert(list_of_subpages, p.pagina_inexistente('Vitímas') )
			end
	end
	
	list_of_subpages = mw.text.listToText(list_of_subpages, ' · ', ' · ')
	list_of_subpages = '<br>'..tostring( mw.html.create('span'):css('font-size', '80%'):css('font-family', 'monospace'):wikitext(list_of_subpages) )
			
	if subpagename ~= basepagename
		then
			if h.in_list({'Aparições', 'Aparições Menores', 'Menções', 'Invocações'}, subpagename)
				then
					output = 'Lista de todas as '..string.lower(subpagename)..' conhecidas de '..h.Link(basepagename, basepagename)..'.'
					for i = 1,4 do
						if subpagename == list[i]
							then 
								--help = list2[i]
								if list[i] == 'Invocações'
									then 
										table.insert(output_categories, 'Invocações')
										table.insert(output_categories, basepagename..'/Menções')
									else table.insert(output_categories, list[i]..' de '..pagetype)
								end
						end
					end
					help = '<br>(Se você encontrar uma mídia que não é mostrada aqui, por favor, adicione "'..basepagename
					help = help..'" para a seção de aparições com uma '..h.Link('Marvel Wiki:Etiquetas de Aparição', 'etiqueta adequada')..'.)'
				elseif subpagename == 'Itens'
					then
						output = 'Lista de todos os itens notáveis pertencentes e/ou usados por '..h.Link(basepagename, basepagename)..'.'
						help = '<br>(Se você encontrar um item que não é mostrado aqui, adicione "'..basepagename
						help = help..'" para as seções "ProprietárioAtual" ou "ProprietáriosAnteriores".)'
						table.insert(output_categories, 'Itens por Usuários')
				elseif subpagename == 'Citações'
					then
						output = 'Lista de todas as citações notáveis de ou sobre '..h.Link(basepagename, basepagename)..'.'
						help = '<br>(Adicione citações importantes que possam estar faltando, assegurando-se de citar a fonte original. '
						help = help..'As páginas com uma citação deste personagem serão automaticamente adicionadas aqui junto com a citação.)'
						table.insert(output_categories, 'Citações')
				elseif subpagename == 'Imagens'
					then
						output = 'Lista de todas as imagens de '..h.Link(basepagename, basepagename)..' no banco de dados.'
						help = '<br>(Se você encontrar uma imagem no banco de dados que não é mostrada aqui, por favor, adicione "'..basepagename..'" como um sujeito da imagem.)'
						table.insert(output_categories, 'Imagens de '..pagetype)
						
				elseif subpagename == 'Galeria'
					then
						output = 'Galeria de todas as imagens notáveis '
						if pagetype == 'Funcionário da Marvel' or pagetype == 'Arte do Usuário'
							then output = output..'por '
							else output = output..'de '
						end
						if pagetype == 'Arte do Usuário'
							then output = output..h.Link('Usuário:'..basepagename, 'Usuário:'..basepagename)
							else output = output..h.Link(basepagename, basepagename)
						end
						output = output..' no banco de dados.'
						help = h.Link('Marvel Wiki:Diretrizes da Galeria', 'Diretrizes da Galeria')
						help = '<br>(Se você criar uma galeria ou adicionar imagem(ns) a uma existente, siga nossa '..help..').'
						table.insert(output_categories, 'Galerias de '..pagetype)
				elseif morto_por == true
					then
						output = 'Lista de todas as vítimas notáveis mortas por '..h.Link(basepagename, basepagename)..'.'
						help = '<br>(Se você encontrar um personagem que não é mostrado aqui, adicione "'..basepagename
						help = help..'" para o campo "MortoPor".)'
						table.insert(output_categories, 'Personagens por Assassino')
			end
			if ( pagetype ~= 'Arte do Usuário' and not h.exists(basepagename) ) or ( pagetype == 'Arte do Usuário' and not h.exists('Usuário:'..basepagename) )
				then 
					output_categories = {} -- remover todas as categorias anteriores
					if morto_por == true
						then table.insert(output_categories, 'Categorias Necessárias de Mortos Por com Artigos')
						else table.insert(output_categories,  'Categorias Necessárias de '..subpagename..' com Artigos')
					end
			end
	end
	if help ~= ''
		then help = tostring(mw.html.create('span'):css('font-size', '80%'):wikitext(help))
	end
	output = design.span(output).bold..help..list_of_subpages
			
	return design.messagebox({output})..h.add_categories(output_categories, classificarnome)
end


--------------------------------------------------------------------------------
-- usado na Predefinição:Categoria de Realidade
function p.categorias_por_realidade(frame)
	local tipos_de_pagina = {'Equipes', 'Itens', 'Locais', 'Organizações', 'Personagens', 'Raças', 'Veículos'}
	local basepagename = mw.title.getCurrentTitle().baseText
	local subpagename = mw.title.getCurrentTitle().subpageText
	local nome_de_classificacao = require('Módulo:Realidade').get_realidade_info({basepagename}).padded_numero
	local i
	local category
	local list_of_subpages = {}
	local help = ''
	local output_categories = {}
	local output = ''
	

	if string.find(basepagename, ' por Realidade') ~= nil
		then 
			for i = 1, #tipos_de_pagina do
				category = tipos_de_pagina[i]..' por Realidade'
				table.insert(list_of_subpages, h.LinkToCategory(category, tipos_de_pagina[i]) )
			end
			list_of_subpages = mw.text.listToText(list_of_subpages, ' · ', ' · ')
		else
			for i = 1, #tipos_de_pagina do
				category = basepagename..'/'..tipos_de_pagina[i]
				if h.pages_in_category(category) > 0
					then table.insert(list_of_subpages, h.LinkToCategory(category, tipos_de_pagina[i]) )
					else table.insert(list_of_subpages, p.pagina_inexistente(tipos_de_pagina[i]) )
				end
			end
			list_of_subpages = mw.text.listToText(list_of_subpages, ' · ', ' · ')
			list_of_subpages = '<br>'..tostring( mw.html.create('span'):css('font-size', '80%'):css('font-family', 'monospace'):wikitext(list_of_subpages) )
	end
	
	if subpagename == basepagename
		then
			if string.find(basepagename, ' por Realidade') ~= nil
				then 
					category = string.match(basepagename, '(.+) por Realidade')
					table.insert(output_categories, category)
				else
					output = 'Artigos relacionados a realidade '..h.Link(basepagename, basepagename)..'.'
					table.insert(output_categories, 'Realidades por categoria')
			end
		else
			output = subpagename..' que se originam da realidade '..h.Link(basepagename, basepagename)..'.'
			table.insert(output_categories, subpagename..' por Realidade')
			table.insert(output_categories, {basepagename, subpagename})
			help = '<br>(Para adicionar '..string.lower(string.sub(subpagename, 1, -1))..' a esta lista, insira "'..basepagename..'" no campo "Universo" de sua predefinição.)'
			help = tostring(mw.html.create('span'):css('font-size', '80%'):wikitext(help))
	end
	output = design.span(output).bold..help..list_of_subpages
	
	return design.messagebox({output})..h.add_categories(output_categories, classificarnome)
end


--------------------------------------------------------------------------------
-- usano na Predefinição:Categoria de Ano de Estreia
function p.categoria_de_estreia(frame)
	local tipos_de_pagina = {'Personagem', 'Item', 'Local', 'Organização', 'Raça', 'Realidade', 'Equipe', 'Veículo'}
	local tipos_de_pagina2 = {'Personagens', 'Itens', 'Locais', 'Organizações', 'Raças', 'Realidades', 'Equipes', 'Veículos'}
	local pagename = mw.title.getCurrentTitle().text
	local tipo_de_pagina
	local tipo_de_pagina2
	local ano
	local i
	local category
	local help = {}
	local output_categories = {}
	local output = ''
	
	tipo_de_pagina, ano = string.match(pagename, '^Estreias de (.+) em (%d%d%d%d)')
	if tipo_de_pagina == nil
		then
			tipo_de_pagina2 = string.match(pagename, '^(.+)s por Ano de Estreia')
			if tipo_de_pagina2 == 'Personagen'
				then tipo_de_pagina = 'Personagem'
			elseif tipo_de_pagina2 == 'Organizaçõe'
				then tipo_de_pagina = 'Organição'
			elseif tipo_de_pagina2 == 'Locai'
				then tipo_de_pagina = 'Local'
				else tipo_de_pagina = tipo_de_pagina2
			end
			output = p.navegacao_por_categorias_de_estreia(tipo_de_pagina)
			table.insert(output_categories, tipo_de_pagina2..'s')
		else
			for i = 1, #tipos_de_pagina do
				if tipos_de_pagina[i] == tipo_de_pagina
					then tipo_de_pagina2 = tipos_de_pagina2[i]
				end
				category = 'Estreias de '..tipos_de_pagina[i]..' em '..ano
				if h.pages_in_category(category)>0
					then table.insert(help, h.LinkToCategory(category, tipos_de_pagina2[i]))
					else table.insert(help, p.pagina_inexistente(tipos_de_pagina2[i]))
				end
			end
			help = mw.text.listToText(help, ' · ', ' · ')
			help = tostring(mw.html.create('span'):css('font-size', '80%'):wikitext(help))
			table.insert(output_categories, tipo_de_pagina2..' por Ano de Estreia')
			table.insert(output_categories, {ano, 'Estreias de '..tipo_de_pagina})

			output = design.span(tipo_de_pagina2..' que apareceram pela primeira vez em mídia lançada em '..h.LinkToCategory(ano, ano)..'.').bold
			output = output..'<br>'..help
			output = design.messagebox({output})..p.navegacao_por_categorias_de_estreia(tipo_de_pagina)
	end
	
	return output..h.add_categories(output_categories)
end


function p.navegacao_por_categorias_de_estreia(tipo_de_pagina)
	local tipos_de_pagina = {'Personagem', 'Item', 'Local', 'Organização', 'Raça', 'Realidade', 'Equipe', 'Veículo'}
	local tipos_de_pagina2 = {'Personagens', 'Itens', 'Locais', 'Organizações', 'Raças', 'Realidades', 'Equipes', 'Veículos'}
	local ano_atual = tonumber(mw.language.new('pt-BR'):formatDate('Y'))
	local cabecalho
	local i
	local category
	local help = {}
	local output = {}

	for i = 1939, ano_atual do
		category = 'Estreias de '..tipo_de_pagina..' em '..i
		if h.pages_in_category(category)>0
			then table.insert(output, h.LinkToCategory(category, i))
			else table.insert(output, p.pagina_inexistente(i))
		end
	end
	
	output = mw.text.listToText(output, ' ', ' ')
	output = mw.html.create('div'):css('font-family', 'monospace'):wikitext(output)
	for i = 1, #tipos_de_pagina do
		category = tipos_de_pagina2[i]..' por Ano de Estreia'
		table.insert(help, h.LinkToCategory(category, tipos_de_pagina2[i]))
		if tipo_de_pagina == tipos_de_pagina[i]
			then tipo_de_pagina = tipos_de_pagina2[i]
		end
	end
	help = mw.text.listToText(help, ' · ', ' · ')
	help = tostring(mw.html.create('span'):css('font-size', '80%'):wikitext(help))
	cabecalho = design.span(tipo_de_pagina..' por ano de sua primeira aparição.').bold
	output = cabecalho..'<br>'..help..'\n----\n'..tostring(output)
	return design.messagebox({output})
end


--------------------------------------------------------------------------------
function p.pagina_inexistente(text)
	return tostring( mw.html.create('span'):css('color', 'silver'):wikitext(text))
end

return p
Advertisement