Saltar para o conteúdo

Predefinição:Teste/Gkiyoshinishimoto/Category handler/doc

Origem: Wikipédia, a enciclopédia livre.

Esta é a metapredefinição {{Teste/Gkiyoshinishimoto/Category handler}}.

Ela ajuda outras predefinições a automatizar a categorização e a supressão de categorização.

Já quando usada com suas configurações padrões, esta predefinição impede a categorização automática em alguns espaços nomeados e em algumas páginas onde normalmente não queremos categorização. Assim, mesmo o uso mais básico como "{{Teste/Gkiyoshinishimoto/Category handler|[[Categoria:Alguma categoria]]}}" garante que as predefinições não sejam categorizadas automaticamente nos lugares errados.

Esta predefinição facilita a escolha de em quais espaços nomeados uma predefinição deve ou não categorizar, facilita o uso de diferentes categorias em diferentes espaços nomeados e usa uma lista negra central onde podemos adicionar páginas, e tipos de páginas, onde as predefinições não devem categorizar automaticamente.

Quando não usar esta predefinição[editar código-fonte]

Se uma predefinição precisar apenas categorizar em, um dos espaços nomeados, principal (artigos), ficheiro (imagens) ou categoria, usar essa predefinição será um exagero. Em vez disso, use um de {{Teste/Gkiyoshinishimoto/Main other}}, {{Teste/Gkiyoshinishimoto/File other}} ou {{Teste/Gkiyoshinishimoto/Category other}}. Mas se a sua predefinição precisar categorizar em qualquer outro espaço nomeado, recomendamos que você use essa predefinição, pois ela fornece supressão de categorização adequada e facilita a seleção de como categorizar nos diferentes espaços nomeados.

Espaços nomeados[editar código-fonte]

Esta predefinição detecta e agrupa todos os diferentes espaços nomeados usados na Wikipédia em vários tipos. Esses tipos são usados como nomes de parâmetros nesta predefinição.

main = Espaço principal/artigo, como em artigos normais da Wikipédia.
talk = Qualquer espaço de discussão, como nomes de páginas que começam com "Discussão:", "Usuário Discussão:", "Ficheiro Discussão:" e assim por diante.
user, wikipedia, file, mediawiki, template, help, category, portal and book = Os outros espaços nomeados, exceto os das páginas de discussão.
other = Quaisquer espaços nomeados que não foram especificados como parâmetro para a predeginição. Veja exemplos abaixo.

Uso básico[editar código-fonte]

Esta predefinição leva dois ou mais parâmetros. Aqui está um exemplo com o código completo da predefinição para uma caixa de mensagem de artigo:

{{Teste/Gkiyoshinishimoto/Ambox
| text = Esta é uma caixa usada em artigos.
}}{{Teste/Gkiyoshinishimoto/Category handler
| [[Categoria:Alguma categoria]]
| nocat = {{{nocat|}}}   <!-- Então, "nocat = true/false" funciona. -->
}}<noinclude>
{{Teste/Gkiyoshinishimoto/Documentation}}
<!-- Adicionar categorias à subpágina /doc. -->
</noinclude>

O exemplo acima usa as configurações padrões para {{Teste/Gkiyoshinishimoto/Category handler}}. Isso significa que a caixa irá categorizar em páginas nos seguintes espaços nomeados:

principal, ficheiro, ajuda, categoria, portal e livro

Mas ela não irá categorizar nos seguintes espaços nomeados:

discussão, usuário, wikipédia, mediawiki e predefinição

E ela "não" irá categorizar nas páginas da lista negra. (Veja a seção Lista negra abaixo.)

A razão pela qual esta predefinição não categoriza em alguns dos espaços nomeados é que nesses espaços nomeados a maioria das predefinições é apenas demonstrada ou listada, e não usada. Assim, a maioria das predefinições não deve categorizar nesses espaços nomeados.

Qualquer predefinição destinada a um ou mais espaços nomeados onde esta predefinição categoriza pode usar a sintaxe básica conforme mostrado acima.

Uso avançado[editar código-fonte]

Esta predefinição usa um ou mais parâmetros nomeados de acordo com os diferentes tipos de página listados na seção Espaços nomeados acima. Ao usar esses parâmetros, você pode especificar exatamente em quais espaços nomeados sua predefinição deve categorizar. Assim:

{{Teste/Gkiyoshinishimoto/Mbox
| text = Esta é uma caixa para páginas de artigos e de discussão.
}}{{Teste/Gkiyoshinishimoto/Category handler
| main = [[Categoria:Alguma categoria 1]]   <!-- Categoriza no espaço principal (artigo) -->
| talk = [[Categoria:Alguma categoria 2]]   <!-- Categoriza no espaço de discussão -->
| nocat = {{{nocat|}}}   <!-- Então "nocat=true" funciona -->
}}

A caixa acima irá categorizar apenas no espaço principal e de discussão. Mas não irá categorizar nas páginas "/arquivo", pois elas estão na lista negra. (Veja a seção lista negra abaixo.) E se você precisar demonstrar (discutir) essa caixa em uma página de discussão, então você pode alimentar "nocat=true" para evitar que essa predefinição categorize. (Veja a seção O parâmetro "nocat" abaixo.) Assim:

== Minha nova predefinição ==
Olá pessoal, vocês viram minha nova predefinição?
{{Teste/Gkiyoshinishimoto/Minha predefinição|nocat=true}}
Legal, não é?
--~~~~

Às vezes queremos usar a mesma categoria em vários espaços nomeados, então fazemos assim:

{{Teste/Gkiyoshinishimoto/Mbox
| text = Esta é uma caixa usada em vários espaços nomeados.
}}{{Teste/Gkiyoshinishimoto/Category handler
| main  = [[Categoria:Alguma categoria 1]]
| 1     = [[Categoria:Alguma categoria 2]]   <!-- Para os espaços de ajuda e de usuário -->
| help  = 1
| user  = 1
| talk  =     <!-- Nenhuma categorização nas páginas de discussão -->
| other = [[Categoria:Alguma categoria 3]]   <!-- Para todos os outros espaços nomeados -->
| nocat = {{{nocat|}}}   <!-- Então "nocat=true/false" funciona -->
}}

No exemplo acima usamos um parâmetro numerado para alimentar uma das categorias e então dizemos a esta predefinição para usar esse parâmetro numerado tanto para o espaço de ajuda quanto para o espaço de usuário.

Esta predefinição compreende os parâmetros numerados de 1 a 10.

O parâmetro other define o que deve ser usado nos espaços nomeados restantes que não foram explicitamente alimentados com dados.

Observe o parâmetro talk vazio, mas definido. Isso impede que esta predefinição mostre o que foi alimentado no parâmetro other, quando estiver no espaço de discussão.

Esta predefinição também possui um parâmetro chamado all. Ele funciona assim:

{{Teste/Gkiyoshinishimoto/Mbox
| text = Esta é uma caixa usada em todos os espaços nomeados.
}}{{Teste/Gkiyoshinishimoto/Category handler
| all = [[Categoria:Alguma categoria 1]]   <!-- Categoriza em todos os espaços nomeados -->
| nocat = {{{nocat|}}}   <!-- Então "nocat=true/false" funciona -->
}}

O exemplo acima irá categorizar em todos os espaços nomeados, mas não nas páginas da lista negra. Se você quiser demonstrar essa caixa em uma página, use "nocat=true" para evitar que a predefinição categorize.

Nós sugerimos evitar o parâmetro all, já que as predefinições devem preferencialmente categorizar apenas nos espaços nomeados necessários.

O parâmetro all também pode ser combinado com o resto dos parâmetros. Assim:

{{Teste/Gkiyoshinishimoto/Mbox
| text = Esta é uma caixa usada em todos os espaços nomeados.
}}{{Teste/Gkiyoshinishimoto/Category handler
| all   = [[Categoria:Alguma categoria 1]]   <!-- Categoriza em todos os espaços nomeados -->
| main  = [[Categoria:Alguma categoria 2]]   <!-- E adiciona isso no espaço principal -->
| other = [[Categoria:Alguma categoria 3]]   <!-- E adiciona isso em todos os outros espaços nomeados -->
| nocat = {{{nocat|}}}   <!-- Então "nocat=true/false" funciona -->
}}

Se a caixa acima for colocada em um artigo, serão adicionadas as categorias "Alguma categoria 1" e "Alguma categoria 2". Mas em todos os outros tipos de páginas serão adicionados "Alguma categoria 1" e "Alguma categoria 3". Como mostra o exemplo, o parâmetro all funciona independentemente do restante dos parâmetros.

Subpáginas[editar código-fonte]

Esta predefinição entende o parâmetro subpage. Assim:

{{Teste/Gkiyoshinishimoto/Category handler
| subpage = no    <!-- Não categoriza em subpáginas -->
| wikipedia = [[Categoria:Alguma categoria]]
| nocat = {{{nocat|}}}   <!-- Então "nocat=true/false" funciona -->
}}

Se "subpage=no", então esta predefinição não irá categorizar em subpáginas. Para as raras ocasiões em que você apenas deseja categorizar em subpáginas, use "subpage=only". Se subpage estiver vazio ou indefinido então esta predefinição categoriza tanto em páginas base quanto em subpáginas.

Lista negra[editar código-fonte]

Esta predefinição possui uma lista negra de páginas e tipos de páginas onde as predefinições não devem categorizar automaticamente. Assim, as predefinições que usam esta meta-predefinição não irão, por exemplo, categorizar nas subpáginas "/arquivo" e nas subpáginas da lista de predefinições.

Se você deseja que uma predefinição categorize em uma página na lista negra, alimente "nocat = false" na predefinição ao colocá-la na página, ignorando assim a verificação da lista negra. Observe que esta predefinição categoriza apenas se tiver dados para o espaço nomeado. Por exemplo, se a sintaxe básica for usada (veja Uso básico acima), mesmo se você definir "nocat = false" a predefinição não irá categorizar em uma página de discussão, uma vez que não possui dados para páginas de discussão. Mas possui dados para o espaço de ajuda, portanto, em uma página de ajuda na lista negra, ela irá categorizar.

A lista negra está no submódulo Módulo:Testes/Gkiyoshinishimoto/Category handler/blacklist. Para ver ou atualizar a lista negra, vá até lá.

O parâmetro "nocat"[editar código-fonte]

Esta predefinição entende o parâmetro nocat:

  • Se "nocat = true" então esta predefinição não categoriza.
  • Se nocat estiver vazio, ou indefinido, então esta predefinição categoriza normalmente.
  • Se "nocat = false" esta predefinição categoriza mesmo quando está em páginas da lista negra. (Veja a seção lista negra acima.)

Predefinições que usam {{Category handler}} devem encaminhar nocat, para que elas também entendam nocat. O código "nocat = {{{nocat|}}}" mostrado nos exemplos desta página faz isso.

O parâmetro "categories"[editar código-fonte]

Para compatibilidade com versões anteriores, esta predefinição também entende o parâmetro categories. Funciona da mesma forma que nocat. Assim:

  • Se "categories = no" então esta predefinição não categoriza.
  • Se categories estiver vazio ou indefinido então esta predefinição categoriza normalmente.
  • Se "categories = yes" esta predefinição categoriza mesmo quando está em páginas da lista negra.

Ao adicionar esta predefinição em uma predefinição que já usa a lógica "categories = no", você pode fazer o seguinte para não quebrar nenhum uso existente:

{{Teste/Gkiyoshinishimoto/Category handler
| [[Categoria:Algma categoria]]
| nocat = {{{nocat|}}}   <!-- Então "nocat=true/false" funciona -->
| categories = {{{categories|}}}   <!-- Então "categories=no" funciona -->
}}

O parâmetro "category2"[editar código-fonte]

Para compatibilidade com versões anteriores, esta predefinição suporta o antigo parâmetro "category =". Mas o nome do parâmetro "category" já é usado nesta predefinição para alimentar dados de categoria quando estiver no espaço de categoria. Então, em vez disso, esta predefinição usa category2 para uso semelhante a nocat. Assim:

  • Se "category2 =" (vazio, mas definido), ou "category2 = no", ou se category2 for alimentado com quaisquer outros dados (exceto conforme descrito nos próximos dois pontos), então esta predefinição não categoriza.
  • Se category2 for indefinido ou se "category2 = ¬", então esta predefinição categoriza normalmente.
  • Se "category2 = yes" esta predefinição categoriza mesmo quando está em páginas da lista negra.

Ao adicionar esta predefinição em uma predefinição que já usa a lógica "category =", você pode fazer assim para não quebrar nenhum uso existente:

{{Teste/Gkiyoshinishimoto/Category handler
| [[Categoria:Alguma categoria]]
| nocat = {{{nocat|}}}   <!-- Então "nocat=true/false" funciona -->
| category2 = {{{category|¬}}}   <!-- Então "category =" funciona -->
}}

Observe que o "¬" é necessário, ele ajuda esta predefinição a detectar se o parâmetro category está definido, mas vazio, ou indefinido.

Categorias e texto[editar código-fonte]

Além das categorias, você pode inserir qualquer outra coisa nesta predefinição, por exemplo, algum texto. Assim:

{{Teste/Gkiyoshinishimoto/Tmbox
| text = Esta é uma caixa de mensagem de página de discussão.
}}{{Teste/Gkiyoshinishimoto/Category handler
| talk = [[Categoria:Alguma categoria]]
| other = :::::Esta predefinição só deve ser usada em páginas de discussão.
| nocat = {{{nocat|}}}   <!-- Então "nocat=true/false" funciona -->
}}

Quando a predefinição acima for mostrada em qualquer outra coisa que não seja uma página de discussão, terá a seguinte aparência (observe o texto abaixo da caixa):

Esta predefinição só deve ser usada em páginas de discussão.

Esse texto não será mostrado nas páginas da lista negra, portanto, não use esse método para mostrar informações importantes. Alimentar "nocat = true" na predefinição oculta o texto, assim como suprime qualquer categorização.

O parâmetro "page"[editar código-fonte]

Para fins de testes e de demonstrações esta predefinição pode usar um parâmetro chamado page. Assim:

{{Teste/Gkiyoshinishimoto/Category handler
| main = Categoria:Alguma categoria
| talk = Categoria:Categoria de Discussão
| nocat = {{{nocat|}}}   <!-- Então "nocat=true/false" funciona -->
| page = Usuário Discussão:Exemplo
}}

No código acima, deixamos propositalmente os colchetes ao redor dos nomes das categorias para que possamos ver a saída na página. Não importa em que tipo de página o código acima seja usado, ele retornará isto:

Categoria:Categoria de Discussão

O parâmetro page faz com que esta predefinição se comporte exatamente como se estivesse naquela página. Até a lista negra funciona. O nome da página não precisa ser uma página existente.

Se o parâmetro page estiver vazio ou indefinido, o nome da página atual determina o resultado.

Você pode fazer com que sua predefinição também entenda o parâmetro page. Isso significa que você pode testar como sua predefinição irá categorizar em páginas diferentes, sem precisar editar essas páginas. Então faça assim:

{{Teste/Gkiyoshinishimoto/Category handler
| main = Categoria:Alguma categoria
| talk = Categoria:Categoria de Discussão
| nocat = {{{nocat|}}}   <!-- Então "nocat=true/false" funciona -->
| page = {{{page|}}}   <!-- Para testes -->
}}

Parâmetros[editar código-fonte]

Lista de todos os parâmetros:

{{Teste/Gkiyoshinishimoto/Category handler
| [[Categoria:Alguma categoria]]
| subpage = no / only
| 1 =
...
| 10 =
| all = [[Categoria:Alguma categoria]] / Texto
| main = 1 / ... / 10 / [[Categoria:Alguma categoria]] / Texto
...
| other = 1 / ... / 10 / [[Categoria:Alguma categoria]] / Texto

| nocat = {{{nocat|}}} / true / false
| categories = {{{categories|}}} / no / yes
| category2 = {{{category|¬}}} / 'empty' / no / 'not defined' / ¬ / yes

| page  = {{{page|}}} / Usuário:Exemplo
}}

Observe que os valores vazios para os parâmetros "main" ... "other" têm um significado especial (veja os exemplos acima). O parâmetro "all" não entende parâmetros numerados, pois nunca deveria haver necessidade disso.

Detalhes técnicos[editar código-fonte]

A lista negra centralizada de supressão de categorização está em Módulo:Testes/Gkiyoshinishimoto/Category handler/blacklist. Para ver ou atualizar a lista negra, vá até lá.

Para mais detalhes técnicos consulte o página de discussão (na enwiki).

Ver também[editar código-fonte]