Wikipédia:Predefinições

Predefinições são páginas que contém texto pré-definido, isto é, feito para ser reutilizado por outras páginas sem a necessidade de ser copiado manualmente em cada uma delas.

Embora qualquer página possa ser usada como uma predefinição, estas correspondem a um tipo especial de páginas, criadas especificamente para serem usadas dentro de outras, e que ficam no domínio predefinição.

Elas são comumente utilizadas no cabeçalho e rodapé, para indicar texto clichê, avisos e notificações padrão, infocaixas, predefinições de navegação e similares.

As predefinições são, de certa forma, no que diz respeito à edição de páginas, o recurso mais difícil de compreender e dominar da Wikipédia.

Nota: Antes de criar uma predefinição, tenha certeza de que leu e compreendeu esta e as outras páginas indicadas.

Tipos de predefinições

Quanto à manipulação da informação

Quanto à funcionalidade, as predefinições podem ser classificadas por predefinições estáticas ou predefinições dinâmicas.

Predefinições estáticas

São aquelas que apresentam a mesma informação em todas as páginas em que são utilizadas, ou ao menos, não tem qualquer campo, opção ou parâmetros personalizáveis ao utilizá-la. Esse tipo de predefinições é o mais simples de ser criado e utilizado. Alguns exemplos de predefinições estáticas: Predefinição:História da arte, Predefinição:Metallica, Predefinição:Jogos Olímpicos e Predefinição:Tabela periódica.

Predefinições dinâmicas

São predefinições um pouco mais complexas que permitem introduzir dados personalizados em determinadas páginas. Normalmente este tipo de predefinições atua como um "modelo" que pode ser preenchido, de forma semelhante a "formulários" que têm definidos os campos de preenchimento, localização e aparência visual. Ao utilizar essas predefinições numa determinada página, devem ser introduzidos dados personalizados de acordo com o tema. Dessa forma, as páginas que utilizam essas predefinições têm os dados organizados segundo uma determinada estrutura e apresentação. É exemplo disso a Predefinição:Info/País que é utilizada em artigos da Wikipédia relativos a países, como em Portugal e Brasil. Outro exemplo, a Predefinição:Info/Biografia é utilizada em artigos sobre pessoas, como em Albert Einstein e Leonardo da Vinci.

Alguns tipos de predefinições dinâmicas utilizam outros recursos avançados e não têm necessariamente parâmetros opcionais. Por exemplo, a Predefinição:Arquivo histórico que deve ser aplicada apenas em páginas inativas, normalmente do domínio Wikipedia, e nunca no domínio principal (artigos enciclopédicos) detecta se a predefinição foi aplicada numa página do domínio principal e coloca-a na Categoria:!Páginas com predefinições indevidas. Já a Predefinição:Discussão, que é utilizada em secções da esplanada e nos diversos cafés existentes, mostra informações diferentes consoante a página em que é mostrada.

Tabela de diferença entre predefinições estáticas e predefinições dinâmicas
Tipo Nome da predefinição (exemplo) Código da predefinição Código a colocar nos artigos É mostrado nos artigos
Estática Predefinição:Albert Einstein

{| border="1"
|Nome
|Albert Einstein
|-
|Nascimento
|[[1879]]
|}

{{Albert Einstein}}
Nome Albert Einstein
Nascimento 1879
Dinâmica Predefinição:Biografia {| border="1"
|Nome
|{{{nome completo}}}
|-
|Nascimento
|{{{data nascimento}}}
|}
{{Biografia
|nome completo=Albert Einstein
|data nascimento=[[1879]]
}}
Nome Albert Einstein
Nascimento 1879

Nos exemplos apresentados, a predefinição estática de Albert Einstein provavelmente só seria utilizada na página de Albert Einstein. O segundo exemplo pode ser adaptado para ser aplicado em muitas páginas, pois o conteúdo pode ser preenchido com os dados específicos da pessoa titular da página.

Quanto à função

As predefinições caracterizam-se também em diferentes tipos consoante a função:

Infocaixas

 Ver artigo principal: Ajuda:Caixa de informação

Infocaixas, ou caixas de informação (do inglês infoboxes) localizam-se normalmente no início das páginas do lado direito, apresentando determinadas informações essenciais de forma resumida. Exemplos de caixas de informação: Predefinição:Info/Barragem, Predefinição:Info/Filme e Predefinição:Info/Biografia.

Predefinições de navegação

Auxiliam o leitor a navegar entre artigos do mesmo tema. Notar também que normalmente os artigos estão numa determinada categoria e se pode navegar entre categorias mas, ao contrário delas, as caixas de navegação apresentam de forma resumida e prática outros artigos sobre o mesmo tema ou até divididos por subtemas. As caixas de navegação encontram-se normalmente no final das páginas e por vezes no início da página do lado direito caso não haja uma caixa de informação (infobox) nesse local. Exemplos de caixas de navegação: Predefinição:Meses, Predefinição:Páginas por características, Predefinição:Peqind e Predefinição:África.

Caixa de avisos ou indicações relevantes

Destacam determinada mensagem aos leitores e editores. Quando aplicados em artigos enciclopédicos, normalmente esses avisos são temporários. Localizam-se na maioria das vezes no início de uma página ou de uma secção da página. Exemplos de caixas de avisos: Predefinição:Parcial e Predefinição:Má tradução. Exemplos de caixas de informação: Predefinição:Reciclagem, Predefinição:Esboço e Predefinição:Fusão.

Indicações breves

Indicam de forma breve que existe determinado recurso, por exemplo, um portal sobre um tema. Exemplos: Predefinição:Commons e Predefinição:Portal.

Formatação de elementos

Auxiliam na normalização de terminada informação. Exemplos de formatação de elementos: Predefinição:Carece de fontes, Predefinição:Citar web e Predefinição:Ligações externas.

Predefinições para predefinições

Algumas predefinições destinam-se a serem utilizadas em outras predefinições, como a antiga Predefinição:! (para contornar problemas técnicos existentes antes da implementação da palavra mágica equivalente), ou a Predefinição:Predefinição complexa (que também pode ser considerada uma caixa de aviso).

Páginas ou secções de outras páginas

São utilizadas para simplificar páginas complexas ou para permitir a inclusão de uma secção em várias páginas, como a Predefinição:Projetos correlatos que é mostrada na página principal e pode ser utilizada em outras páginas. No caso, a Predefinição:Projetos correlatos é por vezes colocada nas páginas de usuários.

Marcações invisíveis

Servem normalmente apenas para colocar o artigo em que a predefinição é usada numa determinada categoria ou para incluir esse artigo nos afluentes da predefinição. Este tipo de predefinições permite facilitar a classificação na manutenção de determinados artigos. Apesar destas predefinições poderem ser substituídas por uma categoria, permite no entanto filtrar por domínio as páginas que usem a predefinição. Por exemplo, esta lista mostra onde é utilizada a predefinição no domínio Wikipédia.

Como utilizar uma predefinição

Elas podem ser utilizadas de duas formas: transcluídas ou substituídas, e podem ou não aceitar ou exigir parâmetros.

Basicamente, usar uma predefinição consiste do nome da predefinição e os vários parâmetros que são especificados, cada um separado por uma barra vertical (ou pipe), e o conjunto é cercado por chaves duplas, {{...}}. Nunca se é necessário especificar o prefixo Predefinição: para usar uma predefinição, apenas para encontrar e editar a própria predefinição (embora se a intenção for translcluir uma página de um domínio diferente, o prefixo torna-se obrigatório). Nem todas as predefinições têm parâmetros, e nem todas as predefinições que possuem parâmetros precisam ter valores previstos, por isso às vezes {{nome da predefinição}} é suficiente para usar uma predefinição. Se um parâmetro é realmente necessário, mas um valor não foi fornecido pelo usuário, a predefinição pode ter como resultado algo como {{{...}}} no texto, onde o '...' pode ser um número ou o nome do parâmetro em falta. Isso serve para informar ao usuário que um parâmetro, nomeado ou não, está faltando. Tal pode ser evitado pelo uso de valores padrão para o parâmetro.

Parâmetros podem ter duas formas básicas:

  • Sem nome (às vezes chamados de parâmetros 'posicionais'): os valores são colocados na predefinição na ordem em que aparecem
{{nome da predefinição|parâmetro1|parâmetro2|...}}
  • Nomeados: os valores são associados a uma chave particular nomeada na predefinição
{{Nome da predefinição|nomedoparâmetro1 = parâmetro1|nomedoparâmetro2 = parâmetro2|...}}

Estes podem ser misturados:

{{nome da predefinição|parâmetro1|parâmetro2|nomedoparâmetro1 = parâmetro3|nomedoparâmetro2 = parâmetro4| ...}}

Por convenção os parâmetros nomeados estão listados por último, mas isto não é um requisito. Caracteres em branco (espaços, tabulações, retornos) são removidos do início e fim dos valores dos parâmetros nomeados (parâmetros posicionais não eliminam os espaços, mas os retêm, ver #Espaços em branco), mas não a partir do meio: assim {{ ... | param = isto é um teste }} será tratado como se o usuário tivesse digitado {{ ... |param=isto é um teste}}.

A página da predefinição pode incluir material que não é transcluído com a predefinição (tais como documentação ou categorias que pertencem à própria predefinição), ou material que é usado somente quando a página é transcluída (tais como as categorias que se aplicam à página de transclusão, mas não a predefinição). Veja a seção #noinclude, includeonly e onlyinclude abaixo.

Tentar transcluir uma predefinição que não existe produz um link vermelho, assim como links para qualquer outra página que não existe. Seguindo o link permite criar essa predefinição em particular.

Os nomes das predefinições são exatamente como os das outras páginas: CaseSensitive, exceto a primeira letra, com espaços indistinguíveis sublinhados.

As próximas seções descrevem como utilizar a sintaxe da transclusão e da substituição:

Transclusão

 Ver artigo principal: Wikipedia:Transclusão

É o modo mais comum de se utilizar predefinições, através da sintaxe {{nome da predefinição}}. Esse código faz com que o sistema busque o conteúdo da Predefinição:Nome da predefinição e o exiba. Cada vez que o conteúdo da predefinição sofre uma alteração, esta será refletida em todas as páginas que contiverem o código {{nome da predefinição}}.

Tabela da sintaxe de transclusão para os diferentes domínios
Domínios Sintaxe Resultado
Predefinição {{Nome da predefinição}} Transclusão do conteúdo da predefinição
Principal {{:Título do artigo}} Transclusão do conteúdo do artigo
Principal sem os dois pontos {{Nome do artigo}} Link vermelho para a predefinição não criada
Fora do domínio predefinição e principal {{Domíno:Nome da página}} Transclusão do conteúdo da página

Substituição

 Ver artigo principal: Wikipedia:Substituição

Em certos casos, em vez de utilizar uma predefinição transcluída deve-se substituí-la com a seguinte sintaxe: {{subst:nome da predefinição}}. Ao fazê-lo, o código da predefinição é gravado na página e a predefinição não terá essa página como afluente. Note que no caso de a predefinição ser alterada posteriormente, a página em que foi substituída não será atualizada. Devido a esse fator, o recurso só deve ser utilizado quando não se pretende padronizar alguma experiência e o conteúdo da predefinição não necessitar de atualização. Regra geral, predefinições em páginas enciclopédicas nunca devem ter seu código substituído no artigo. Existem certas exceções, em predefinições que adicionam a data, e que na verdade só são parcialmente substituídas porque se substitui uma predefinição que utiliza o código de outra predefinição, como é o caso da {{VDA}} que utiliza a {{VDA2}}. Neste caso, ao substituir o código, apenas se está a fazer na {{VDA}} e não na {{VDA2}}.

Erros comuns

URLs

URLs podem conter sinais de igual (=), como em http://some.page.org?key=value&key2=value2. No entanto, o primeiro sinal de igual em um parâmetro de predefinição é sempre tratado como se fosse uma chamada de parâmetro. Assim {{nome da predefinição|http://some.page.org?key=value&key2=value2}} irá agir como se http://some.page.org?key fosse um nome de parâmetro, e não o início de uma URL. Há duas soluções para esse problema:

  • Usar uma referência explícita para o parâmetro posicional: {{nome da predefinição|1=http://some.page.org?key=value&key2=value2}}. O '1=' refere-se explicitamente ao primeiro parâmetro posicional, e evita que os posteriores sinais de igual sejam interpretados.
  • Usar a predefinição especial {{=}}: {{nome da predefinição|http://some.page.org?key{{=}}value&key{{=}}value2}}. Essa predefinição retorna um sinal de igual que não é analisado ou interpretado pelo software wiki.

Espaços em branco

Os parâmetros nomeados tiram espaços automaticamente – espaços, tabulações e retornos, ou outros caracteres não visíveis a partir de um parâmetro. Parâmetros não nomeados mantem todos os espaços. Isso pode causar problemas de formatação, e o resultado não será o esperado.

Barras verticais

O caractere "|" (barra vertical) é usado em predefinições (e nas funções sintáticas) para separar parâmetros e também argumentos. Se é necessário fornecer esse caractere para um parâmetro da predefinição (por exemplo, se o título da citação é BBC News|Business...), então a palavra mágica {{!}} deve ser usada, que retorna uma barra vertical não analisada, o que também pode ser obtido pelo código HTML |.

Outras informações

  • Se o símbolo # (normalmente usado para ligar a uma seção de uma página) aparece na transclusão, ele e todos os caracteres que o seguem são ignorados.
  • Para citar uma predefinição, criando um link para ela em vez de realmente chamá-la, use a Predefinição:Lp (ligação para predefinição). Por exemplo, o texto "{{Lp|teste}}" cria um link para a Predefinição:Teste sem transcluí-la: {{teste}}.
  • Uma lista de todas as páginas onde uma determinada predefinição está transcluída pode ser encontrada por meio da ferramenta de páginas afluentes no menu "Ferramentas" ao lado esquerdo da página da predefinição.
  • Uma lista de todas as predefinições utilizadas numa página em particular pode ser encontrada na aba "Editar" da página, abaixo da janela de edição. A lista inclui a árvore completa das predefinições, isto é, qualquer predefinição chamada por outra também é listada. Para encontrar a real predefinição usada na página do artigo, é preciso procurar na janela de edição pela predefinição invocada (nomes incluídos entre chaves "{{...}}").
    • A lista de predefinições usadas em uma seção específica pode ser encontrada clicando-se no link "Editar" da seção e mostrando previsão.
    • Da mesma forma, uma lista de predefinições usadas em uma versão antiga da página, pode ser encontrada escolhendo a versão no histórico da página, clicando na aba "Editar", e pré-visualizando-a. Note que isto só funciona para um nível: as sub-predefinições listadas irão refletir o estado atual das predefinições transcluídas na página antiga. Não há nenhuma maneira de examinar quais foram as sub-predefinições transcluídas no momento em que a página antiga era atual.
  • Predefinições podem parecer pequenas se comparadas a outras páginas, mas a sua edição pode consumir uma quantidade desproporcional de recursos do sistema, particularmente quando são transcluídas em um grande número de páginas. Quando uma alteração é feita numa predefinição, o software MediaWiki coloca automaticamente cada página onde ela está transcluída na fila de tarefas para atualizá-las e garantir que exibam as novas alterações. Para predefinições muito usadas, é melhor criar uma cópia em subpáginas próprias ou na Predefinição:Teste, e testar as alterações necessárias lá, apresentá-la na página de discussão da predefinição para se certificar de que não haja objeções, e depois apresentá-la como uma edição única.
  • Em raras circunstâncias, as predefinições podem ser tão complexas e invocar tantas sub-predefinições, que elas impõem uma carga significativa ao software analisador. Esta carga pode ser verificada através da análise do código HTML gerado para a página e olhar o comentário "NewPP limit report", que mostra quão relativamente "pesada" a página é.

noinclude, includeonly e onlyinclude

noinclude

A tag 'noinclude' serve para não permitir que o texto da predefinição seja transcluído ou substituído na página alvo. É frequentemente utilizado para:

Uso:

Se este texto estivesse numa predefinição, esta parte seria transcluída
<noinclude>mas este texto não seria transcluído</noinclude>

Uma das peculiaridades do 'noinclude' é que o texto contido nele é processado, ainda que não esteja incluído no resultado final. Isso tem a ver com o relatório de erros: o processador necessita reter o texto enquanto verifica se existe uma tag 'noinclude' de fechamento válida (</noinclude>), e isto consome recursos do sistema. Para predefinições que não são muito utilizadas, isto raramente é um problema, mas em algumas predefinições que têm texto em excesso (interwikis em particular) pode criar uma enorme sobrecarga para o sistema. Como regra geral, os interwikis e a documentação devem ser colocados na subpágina /doc (que é gerada automaticamente pela Predefinição:Documentação).

includeonly

'includeonly' faz o oposto do 'noinclude'. O texto dentro de includeonly só é incluído quando a página é transcluída/substituída, e não aparece na página da predefinição em si. É frequentemente utilizado para:

  • Categorias que se aplicam apenas à página transcluída
  • Esconder um texto confuso ou mensagens de erro que ocorrem somente na predefinição (muitas vezes porque os parâmetros que necessitam de um valor estão indefinidos)

Uso:

Se este texto estivesse numa predefinição, essa parte iria aparecer na página da predefinição e na página da transclusão
<includeonly>mas esse texto só apareceria na página da transclusão</includeonly>

onlyinclude

A tag 'onlyinclude' inclui na transclusão/substituição apenas o texto que está entre ela; qualquer outra coisa na página – mesmo o texto dentro de 'includeonly' – aparecerá na página da predefinição, mas não será incluído na tranclusão/substituição. Esta tag não é frequentemente usada, mas pode ser útil quando apenas uma pequena porção de texto no meio de uma página grande deve ser transcluída.

Uso:

Se este texto estivesse numa predefinição, esta parte seria visível lá, mas não seria transcluída
<onlyinclude>Este texto é tudo o que seria transcluído</onlyinclude>

Detalhes técnicos

Estas tags são utilizadas da mesma forma que o padrão HTML ou blocos XML: abertura e fechamento de tags entre colchetes angulares (por exemplo, <noinclude>wikitexto afetado</noinclude>).

Talvez a questão mais comum com o uso desses blocos sejam espaços ou linhas indesejados. É importante lembrar que o efeito dessas tags termina imediatamente após o colchete angular passado, e não na linha seguinte ou com o próximo caractere visível.

Estas tags podem ser aninhadas umas dentro das outras, embora (para uma determinada página) isso realmente só se aplica a tag 'onlyinclude'; aninhar 'includeonly' e 'noinclude' é bastante inútil. Cuidado para não dividir as tags, no entanto. Construções como esta <onlyinclude>abc<includeonly>def</onlyinclude>ghi</includeonly> não vão funcionar como o esperado. Use a regra 'primeiro aberto, último fechado', que é padrão para XML.

Note ainda que a expansão pode não ocorrer da maneira esperada. Por exemplo, ~<includeonly>~</includeonly>~~ será exibido como ~~~ na predefinição, e será transcluída como ~~~~, mas não vai ser expandida em ambos os casos (como 'nome do usuário' ou a combinação 'nome de usuário/data'). A predefinição teria de ser substituída para que este wikitexto fosse expandido.

Fragilidades e limitações

Fragilidades

Quando uma predefinição é muito utilizada, ela acaba por se tornar de alto risco. Isto porque caso ocorra algum vandalismo ou edição desastrosa nesta predefinição, o erro ou vandalismo alastra-se pelos seus afluentes, tornando a má edição visível em milhares de artigos. O mesmo ocorre com redirecionamentos de predefinição.

Predefinições substituídas também podem sofrer do mesmo mal, com o problema agravante de que se, ela for utilizada enquanto estava com a edição ruim, não há como consertar, a não ser apagando o texto substituído e reutilizando a predefinição.

Limites

Alguns limites foram tecnicamente impostos pelos desenvolvedores a fim de evitar transtornos, tanto aos usuários quanto aos servidores. Entre eles incluem-se o limite de predefinições aceitas numa única página (ver a Categoria:!Páginas com excesso de predefinições), e a castração de ParserFunctions custosas, como o #ifexist:, caso excedam certo número numa página (ver a Categoria:!Páginas com demasiadas chamadas a funções exigentes).

Como criar predefinições

Como adicionar dados do wikidata

Ver também