Wikian:Substituição

Predefinição:Shortcut

<templatestyles src="Ambox/styles.css"></templatestyles>

**Substituição** é uma função que permite, quando um editor publica (salva) uma página, que um item escrito em wikitexto seja substituído permanentemente pelo código-fonte presente no item naquele momento de publicação da página. Em particular, uma predefinição pode ser substituída, em alternativa à transclusão. A diferença é que quando uma predefinição é substituída em uma página, o seu aspecto nessa página não será mais afetado por mudanças posteriores feitas à predefinição em si. Em outras palavras, uma corresponde à cópia permanente do conteúdo de uma página noutra e a outra reflete a atualização do conteúdo da página transclusa nas páginas onde está transcluída.

O mais comum é aplicar a substituição de predefinições em páginas de variados domínios. Para substituir uma predefinição, adicione o modificador `subst:` após as chaves de abertura, ou seja, `{{subst:nome da página}}`. Por exemplo, para substituir a Predefinição:Mostrar previsão use `{{subst:mostrar previsão}}`, em contraste à transclusão: `{{mostrar previsão}}`.

Além disso, esta página lista predefinições que devem sempre ou nunca serem substituídas, exceto no domínio Wikipedia. Ferramentas automáticas (robôs) que realizam tais substituições **nunca** devem ser usadas nas páginas das predefinições originais.

## Sobre o *subst*

### Definição

A palavra mágica **subst:** (abreviação de "substituição") é usada como prefixo dentro de códigos de predefinição. Ela altera o modo como o software expande a predefinição. Normalmente, uma predefinição será expandida durante o uso; ou seja, o código da predefinição em uma página chama uma página diferente cada vez que ela é formada. Embora a maioria das exibições de página sejam advindas do cache, as páginas precisam ser formadas para previsões, e formadas novamente quando a página é alterada. Quando alguém está editando uma página com uma chamada "normal" de predefinição (transclusão), eles veem a chamada da predefinição. Adicionar "subst:" dentro das chaves diz ao software para substituir **permanentemente** a predefinição com o texto da predefinição (por exemplo, o texto que está na página do artigo da predefinição *quando a predefinição é adicionada à página*). Logo {{predefinição}} se torna {{subst:predefinição}}, até a página ser salva. O próximo editor não vê a chamada da predefinição, mas o texto da predefinição de quando você salvou; ele não muda, mesmo se a predefinição o fizer.

### Uso

Você pode substituir uma predefinição adicionando "subst:" a ela. Por exemplo, use {{subst:teste5}} ao invés de {{teste5}}.

Tratando-se do componente principal de uma edição, recomendamos que a predefinição seja mencionada no sumário de edição. Por exemplo, coloque "{{subst:teste}}", "subst:teste" ou "teste aplicado" em seu sumário de edição, para que outros editores possam saber facilmente o que você fez.

Adicionalmente, ao criar ou editar predefinições que geralmente são substituídas, adicionar um comentário em HTML à página da predefinição ajuda editores a ver como as predefinições estão sendo usadas (ex. `<!-- Substituído de Predefinição:Documentação -->`).

### Benefícios

* Muitas vezes predefinições são modificadas ou eliminadas. Se uma predefinição é texto clichê, considere se você quer que ele varie conforme a predefinição é modificada. Se a sua resposta for "não", a substituição é justificada. Um exemplo disto é a predefinição `{{bem-vindo}}`. Os arquivos de discussão de uma página de usuário devem ser a real mensagem que o usuário recebeu, não a mensagem de boas-vindas usada atualmente.
* Se há uma predefinição que você gostaria de modificar para uma única ocasião, mas você não quer alterar a predefinição para todas as páginas, sem torná-la uma nova predefinição, você pode substituir a predefinição e depois com uma segunda edição, realizar as modificações. Por exemplo: uma predefinição pode ser usada para todos os estados dos Estados Unidos e com o Distrito de Colúmbia. A predefinição pode estar correta para os estados, mas imprecisa para DC. Para corrigir isto, você pode substituir a predefinição, e depois alterá-la.
* Substituir predefinições muito usadas, mas desprotegidas (das quais há poucas) limita o dano que pode ser causado ao vandalizá-las. Veja predefinições em alto risco.
* Usar a substituição em massa **talvez** acelere o sítio, embora o quanto e a importância disto seja alvo de debates frequentes. Sempre que uma página é formada, o servidor precisa buscar o conteúdo de outra página, e fará isto para cada predefinição utilizada; enquanto que cada predefinição, individualmente, possui pouco efeito, o vasto número de predefinições usadas em determinadas seções da Wikipédia afeta a carga sobre o servidor e o tempo de acesso aos artigos. No entanto, o Chief Technical Officer Brion Vibber (quem "mantém a responsabilidade geral para todas as funções técnicas da fundação, incluindo ambos hardware e software") disse: Predefinição:" 'Políticas não devem importar-se de verdade com a carga do servidor, exceto no mais extremo dos casos; manter tudo configurado para fornecer o que a base de usuários precisa é o nosso trabalho." (Veja Wikipédia:Não se preocupe com a performance.)

### Desvantagens

* Uma vez que uma predefinição é substituída, o resultado não é mais ligado à predefinição, tornando difícil encontrar todas as páginas exibindo o seu resultado, embora categorizações possam evitar isto. Este problema também pode ser evitado, facilmente, ao incluir uma ligação à predefinição no código da predefinição.
* Uma predefinição substituída não é atualizada quando a predefinição for.
* Se a predefinição é usada para padronizar alguma experiência, você realmente não quer a substituição. Um exemplo disto é uma tabela de conteúdos ou uma caixa de navegação.
* Substituições em massa, editando milhares de artigos com robôs, retarda o sítio e gasta recursos do servidor.
* Substituições aumentam o tamanho de artigos no banco de dados, e nas descargas do banco de dados.
* Uma predefinição substituída pode adicionar muito código wiki ou HTML ao artigo, ferindo a acessibilidade, principalmente para os usuários menos familiarizados.
* Evita que novatos aprendam a usar predefinições, e de encontrar a sua documentação.
* Se a predefinição só está sendo usada temporariamente, é melhor não substituí-la. Substituições são muito difíceis de remover ou modificar.
* Quando uma predefinição vandalizada é substituída, é mais difícil reparar os danos devido à falta de ligação entre a predefinição e suas incarnações, somadas à falta de atualizabilidade.
* Algumas metapredefinições, como `{{((}}`, não funcionam se elas são substituídas.

### Predefinição:AnchorO modificador safesubst:

Predefinição:Shortcut
O modificador `subst:` pode ser substituído pelo modificador alternativo `safesubst:`. As duas tem o mesmo modo de actuação, excepto quando eles são encontrados durante expansão não substituída (transclusão ou mostrar directo) da predefinição. Nesta situação, o código `{{subst:...}}` mantém-se sem ser processado, ao invés de `{{safesubst:...}}` que é tratado como se nenhum modificador estivesse presente (por isso a subpredefinição é transcluída ou a váriavel ou função de parser é evaluada).

Assim o modificador `safesubst:` é usado no código da predefinição que foram criadas para produzir substituição recursiva quando são substituídas, mas também são feitas para funcionar quando são transcluídas – ou simplesmente vistas diretamente. Utilizando o básico `subst:` em tais predefinições deve quebrar a transclusão (e possivelmente visualização direta). Para mais detalhes sobre como implementar isto (em particular, como prevenir a substituição de ser feita logo que a predefinição é salva), veja § Substituição recursiva.

## Substituição *necessária*

### Fora do domínio principal e não afetadas por outra regra

* Qualquer espaço nominal em que são usadas
	+ Predefinição:Lpsp
	+ Predefinição:Lpsp/Predefinição:Lpsp e afins
	+ Predefinição:Lpsp
	+ *Smilies*

### Em páginas de discussão de usuário

* A princípio **todas**:
	+ Mensagens para usuários
	+ Premiações e medalhas em geral

### As que não funcionam sem tal recurso

As que necessitam de tal recurso, de forma explícita em sua documentação:

* Qualquer espaço nominal em que são usadas
	+ Predefinição:Lpsp
	+ Predefinição:Lpsp
	+ Predefinição:Lpsp
	+ Predefinição:Lpsp
	+ Predefinição:Lpsp
	+ Predefinição:Lpsp
	+ Predefinição:Lpsp
	+ Predefinição:Lpsp
	+ Predefinição:Lpsp
	+ Predefinição:Lpsp

## Substituição *infundada*

### Padronização de alguma experiência

* Em qualquer espaço nominal em que são usadas
	+ Userboxes
		- `{{Userbox}}`, `{{Userbox-nível}}` e afins
	+ `{{Bot}}`
	+ `{{Usuário inativo}}`
	+ `{{Página de usuário}}`
	+ `{{Página de usuário/rodape}}`
	+ `{{Wikistress}}`
	+ `{{Sock puppet}}`
	+ `{{IP partilhado}}`
	+ `{{Proxy bloqueado}}`
	+ `{{!Info pessoal}}`
	+ `{{Anonblock}}`

### No domínio principal

A princípio, **todas** em artigos:

* Predefinições de navegação: `{{GNU}}`, `{{Biografias}}`...
* Esboço/mínimo
* As que vão na página de discussão do artigo
* Formatação do texto: cores, estilos, ligações, tabelas...
* Caixas de informação/Infoboxes: `{{Info/SO}}`, `{{Info/Biografia}}`...

## Substituição *opcional*

### Formatação pura em HTML

* Todos os domínios, **exceto no principal**
	+ Marca, Movido de, Movido para, Acima movido de
	+ Predefinições de cor: Azul, Vermelho, Fonte...

## Ver também

* Leia mais sobre a substituição no Meta
* Especial:ExpandTemplates
* `{{Nota-subst}}` Predefinição à ser colocada na documentação de predefinições para indicar se ela deve ou não ser substituída.
* Categoria:!Predefinições que devem ser substituídas

Predefinição:Ensaios
Predefinição:Políticas e recomendações da Wikian

zh:Help:替换引用