Predefinição:Namespace detect

Origem: Wikipédia, a enciclopédia livre.
Ir para: navegação, pesquisa
Ícone de documentação Documentação da predefinição[ver] [editar] [histórico] [purgar]
Lua-logo-nolabel.svg Esta predefinição usa o Módulo:Namespace detect, um script escrito na linguagem de programação Lua. Por favor, consulte Wikipédia:Lua para aprender mais sobre Lua ou ajudar na conversão de outras predefinições.

Esta é a metapredefinição {{namespace detect}}. Ela ajuda outras predefinições a detectar em que tipo de página elas estão.

Ela detecta e agrupa todos os diferentes domínios utilizados na Wikipédia em vários tipos:

principal = Domínio principal, em que os artigos normais da Wikipédia são mantidos.
discussão = Todos os domínio de discussão, incluindo páginas cujos nomes começam com "Discussão:", "Usuário Discussão:", "Ficheiro Discussão:" e assim por diante.
usuário, wikipédia, arquivo, mediawiki, predefinição, ajuda, categoria, portal e livro = Outros domínios exceto as páginas de discussão.
outro = Qualquer outro domínio que não foi especificado como um parâmetro da predefinição. Ver explicações mais adiante.

A predefinição também entende imagem para o domínio ficheiro.

Nota: Para a maior parte dos casos pode ser melhor utilizar as predefinições de detecção de domínios mais simples (ver seção ver também). Esta predefinição é mais propensa a erros humanos tais como a digitação incorreta dos nomes dos parâmetros.

Uso

Esta predefinição aceita um ou mais parâmetros nomeados de acordo com os diferentes tipos de páginas listados anteriormente. Assim:

{{namespace detect
| principal  = Texto para os artigos
| discussão  = Texto para as páginas de discussão
| outro = Texto para qualquer outro tipo de página
}}

Se a predefinição estiver em uma página do domínio principal (um artigo), ela produzirá o seguinte:

Texto para os artigos

If the template is on any outro page than an article or a discussão page it will return this: Se a predefinição estiver em qualquer outra página que não seja um artigo ou página de discussão, ela produzirá o seguinte:

Texto para qualquer outro tipo de página

O exemplo acima faz com que a predefinição produza algo para todos os tipos de página. Mas se não for utilizado o parâmetro outro ou ele for deixado vazio então não será produzido nada nos demais tipos de páginas. Assim:

{{namespace detect
| file     = Texto para páginas de arquivos
| categoria = Texto para páginas de categorias
| outro    =
}}

Em páginas que não sejam de ficheiros ou categorias o código anterior não produzirá nada.

Utilizando um parâmetro vazio é possível fazer com que a predefinição não produza nada em alguns tipos específicos de página. Assim:

{{namespace detect
| principal  = 
| outro = Texto para qualquer outro tipo de página
}}

O código acima não produzirá nada quando estiver nas páginas do domínio principal (artigos), mas produzirá o seguinte em outros tipos de páginas:

Texto para qualquer outro tipo de página

Página e domínio para demonstração

Para fins de teste esta predefinição aceita dois parâmetros denominados domínio para demonstração e página.

O domínio para demonstração entende qualquer um dos tipos de páginas utilizados por esta predefinição, incluindo tipo outro. Ele faz com que a predefinição se comporte como se estivesse em um tipo de página específico. Assim:

{{namespace detect
| principal  = Texto para os artigos
| outro = Texto para qualquer outro tipo de página
| domínio para demonstração = main
}}

Não importa o tipo de página em que o código acima esteja, ele produzirá isto:

Texto para os artigos

Por outro lado, o parâmetro página aceita um nome de página normal. Ele faz com que a predefinição se comporte exatamente como se estivesse naquela página. O nome da página não precisa ser o de uma página existente. Assim:

{{namespace detect
| user  = Texto para as páginas de usuário
| outro = Texto para qualquer outro tipo de página
| página = Usuário:Exemplo
}}

Não importa em que tipo de página o código acima esteja, ele produzirá o seguinte:

Texto para as páginas de usuário

Pode ser conveniente deixar que sua predefinição entenda os parâmetros página e domínio de demonstração e passá-lo para a predefinição {{namespace detect}}. Para isso, faça o seguinte:

{{namespace detect
| principal  = Texto para os artigos
| outro = Texto para qualquer outro tipo de página
| domínio para demonstração = {{{domínio para demonstração|}}}
| página  = {{{page|}}}
}}

Se tanto o parâmetro domínio para demonstração quanto o página estiverem vazios ou indefinidos então a predefinição detectará os tipos de página como de costume.

Parâmetros

Lista de todos os parâmetros:

{{namespace detect
| principal  = 
...
| outro =
| domínio para demonstração = {{{domínio para demonstração|}}} / principal / discussão / usuário /
              wikipédia / ficheiro / mediawiki / predefinição /
              ajuda / categoria / portal / livro / outro
| página  = {{{página|}}} / Usuário:Exemplo
}}

Nota: Valores em branco nos parâmetros "principal" ... "livro" não têm qualquer significado especial.

Detalhes técnicos

Translation Latin Alphabet.svg Esta página ou secção está a ser traduzida. Ajude e colabore com a tradução.

Namespace "Image" was renamed to "File" on 11 December 2008. This template was updated to understand both names well before that, thus it still works fine. For backwards compatibility it still understands "image" both as a parameter name, such as "image = File page text", and as a value "domínio para demonstração = image".

Namespace "Book" was added to the English Wikipedia on 28 December 2009. This template has been updated so it detects the "Book:" namespace as type book, and it already automatically detected "Book discussão:" as type discussão.

If you intend to feed tables as content to the numbered parameters of this template, then you need to know this:

Templates do have a problem to handle parameter data that contains pipes "|", unless the pipe is inside another template {{name|param1}} or inside a piped link [[Help:Template|help]]. Thus templates can not handle wikitables as input unless you escape them by using the {{!}} template. This makes it hard to use wikitables as parameters to templates. Instead the usual solution is to use "HTML wikimarkup" for the table code, which is more robust.

For more technical details such as about "copying to other projects" and "CSS based namespace detection" see {{main talk other}} and its talk page.

Ver também

Predefinição:Namespace detect see also