Extension:Transclusão de seção etiquetada

From MediaWiki.org
Jump to navigation Jump to search
This page is a translated version of the page Extension:Labeled Section Transclusion and the translation is 81% complete.

Outdated translations are marked like this.
Other languages:
Deutsch • ‎English • ‎Lëtzebuergesch • ‎català • ‎dansk • ‎español • ‎français • ‎hrvatski • ‎italiano • ‎magyar • ‎polski • ‎português do Brasil • ‎Ελληνικά • ‎български • ‎русский • ‎українська • ‎العربية • ‎فارسی • ‎मराठी • ‎हिन्दी • ‎বাংলা • ‎中文 • ‎日本語
Manual de extensões do MediaWiki
OOjs UI icon advanced.svg
Labeled Section Transclusion
Estado da versão: estável
Implementação Tag , Parser function
Descrição Habilita seções de texto marcadas para serem transcluídas
Autor(es) Steve Sanbeg
Última versão continuous updates
MediaWiki 1.25+
PHP 5.4+
Modifica o banco
de dados
Não
Licença GNU General Public License 2.0 or later
Download
Traduzir a extensão Labeled Section Transclusion, se estiver disponível no translatewiki.net
Verificar uso e matriz de versões
Problemas Tarefas em aberto · Relatar um bug

Esta extensão permite transclusão seletiva de seções marcadas de texto. Sua funcionalidade é semelhante a uma versão melhorada da tag <onlyinclude> com transclusão wiki normal, que seleciona as seções para a inclusão. Está habilitada em todas as wikis da Wikimedia.

Enquanto a transclusão normal é destinada principalmente para transcluir grandes porções de pequenas predefinições, a transclusão de seções etiquetadas destina-se a pequenas porções de páginas grandes.

No entanto, existem algumas diferenças. Na transclusão de predefinição nativa, as seções são marcadas por comportamentos; portanto, você pode ter apenas uma seção (possivelmente não contígua) a ser incluída ou ignorada.

Aqui, as seções são marcadas por nome, e o comportamento é escolhido pelo autor da chamada, que pode incluir ou pular seções, conforme necessário. Diferentes páginas podem incluir ou excluir seções selecionadas; pode haver números arbitrários de seções, que também podem se sobrepor de forma arbitrária.

A marcação de seções por nome em vez de comportamento permite que links de edição de seção sejam processados de forma mais adequada para obter trechos de texto maiores, já que a extensão pode agora responder por seções que são ignoradas no início da página, permitindo que seções transcluídas sejam compensadas de forma adequada.

Como funciona

Passo 1: Marque as seções

Marque as seções no texto usando tags <section>, desta maneira:

<section begin=chapter1 />this is a chapter 1<section end=chapter1 />

Note that these tags are not HTML/XML, and do not use the normal attribute syntax.

Observe que ela utiliza dois marcadores individuais, em vez das tags XML normais de abertura e fechamento, o que simplifica seções aninhadas ou sobrepostas. Isso permite que você insira marcas de seção sem se preocupar com a interferência com outras seções.

Passo 2a: Transclua a seção

Chame a parser function #lst para transclui-la, p.ex. para transcluir uma seção chamada chapter1 de uma página chamada articleX:

{{#lst:articleX|chapter1}}

O artigo de destino define o local da seção; o seu comportamento é determinado pela parser function.

Passo 2b: Transclua a página, mas excluindo a seção

Para transcluir uma página, porém excluindo uma seção específica, utilize a função #lstx:

{{#lstx:articleX|chapter1}}

Opcionalmente, você pode adicionar o texto de substituição para a seção excluída.

{{#lstx:articleX|chapter1|replacement_text}}

Exemplo:

{{#lstx:articleX|chapter1|See chapter 1 in [[articleX]].}}

O texto de substituição será exibido na área onde a seção é ignorada (excluída).

Outras funções

Seções adjacentes

É possível ter várias seções com o mesmo nome; neste caso, todas as seções com esse nome serão incluídas/excluídas. Isto é especialmente útil para marcar várias discussões.

Intervalos de seções

Estas funções têm um argumento adicional, opcional para especificar um intervalo de seção; ou seja, {{#lst:artigoX|capítulo1|capítulo3}}, para incluir tudo, desde o início do capítulo 1 ao fim do capítulo 3. Isto permite a utilização de pares de marcadores vazios para marcar uma extremidade da seção, possivelmente em uma predefinição. Um mecanismo semelhante é usado atualmente no Wikisource em francês.

Substituição

Isso também funciona com substituição; é até possível para um artigo substituir uma seção dele mesmo. Um dos usos fornece uma maneira elegante para arquivar páginas de discussão: Marque o texto a ser arquivado usando <section begin=archive />, etc. Em seguida, crie uma página de arquivo com o texto, usando {{subst:#lst:talk_page|archive}}, que copia seções arquivadas. Por fim, substitua o conteúdo do talk_page com {{subst:#lstx:talk_page|archive}} para remover essas seções.

Transcluindo seções através de títulos

Há suporte opcional para transcluir seções de texto marcadas com os títulos normais, ou seja, ==this section==. Se instalado, isto é feito com a função lsth.

Transclusão de introdução

Para transcluir a introdução de uma página (isto é, o conteúdo antes da primeira posição), usar

{{#lsth:pagename}}

Transclusão de uma seção específica

Você também pode transcluir todo o conteúdo da sectionX (que inclui todas as suas sub-secções, mas exclui o título de sectionX).

{{#lsth:pagename|sectionX}}

Coisas a serem observadas:

  1. Apenas a primeira ocorrência de sectionX é transcluída se você tiver mais de uma seção com o mesmo nome.
  2. Certifique-se de digitar o título de sectionX que está em código wiki, não como ele é exibido. Por exemplo, se o título da seção é ==List of [[Extension]]==, você deve digitar "List of [[Extension]]", não "List of Extension".
  3. When transcluding a section from a page marked for translation using the translate extension, transclude from the language-specific version. E.g. from pagename/en rather than from pagename.
  4. A correspondência não diferencia maiúsculas de minúsculas, para evitar links quebrados devido a alterações de caso.

Transclusão de múltiplas seções

Você também pode transcluir a partir da primeira ocorrência de sectionX (excluindo o próprio cabeçalho de sectionX) até que atinja a próxima ocorrência de sectionY. Observe que sectionY atua como um ponto de parada de forma que a inclusão não contém o conteúdo de sectionY.

{{#lsth:pagename|sectionX|sectionY}}

Notas sobre títulos ignorados

Uma vez que a transclusão tradicional no MediaWiki não se destina a transcluir seções, que não leva em conta títulos ignorados. Como resultado, se você fosse transcluir um predefinição com vários títulos, e pular o primeiro título, em seguida, todos os links de edição de seções apontaria para a seção errada na predefinição.

Quando esta extensão é usada (com MediaWiki 1.9 ou posterior), as funções #lst e #lsth contam títulos na parte inicial "ignorada", e compensam títulos transcluída adequadamente. Isso permitirá que esses links apontem para a seção correta no caso simples.

Note que #lstx não conta títulos ignorados, e que estes títulos dentro de seções adjacentes não são compensados​​. Mas parece que isso foi corrigido agora (provavelmente quando portado para o novo pré-processador do MediaWiki). Os títulos transcluídos podem ser ligados às seções corretas.

Localização

Internamente, todas as funções do analisador usam o prefixo lst, por coerência com o nome da extensão. Uma vez que esta sigla pode ser confusa para não-desenvolvedores, as variantes de inglês legível foram introduzidas, então as funções atualmente podem ser chamadas a partir de qualquer nome.

função inglês alemão hebraico (RTL) português
#lst #section #Abschnitt
#קטע
#trecho
#lstx #section-x #Abschnitt-x
#בלי קטע
#trecho-x
#lsth #section-h

Adicionalmente, a tag já pode ser localizada (atualmente inglês, alemão e hebraico), ou seja:

inglês
<section begin=x/> ... <section end=x/>
alemão
<Abschnitt Anfang=x/> ... <Abschnitt Ende=x/>
hebraico (RTL)
<קטע התחלה=א> ... <קטע סוף=א> (código de "início" para a direita e código de "final" para a esquerda)
português
<trecho começo=x/> ... <trecho fim=x/>

Limitações

  • Embora seja possível usar essa extensão em todos os namespaces, referências interwiki não são resolvidas. Ainda não é possível, por exemplo, para incluir parte de uma página Wikisource em uma instalação remota do MediaWiki.
  • Tags de seção Tags de seção não podem se ser transcluídas para funcionar em outras páginas. Isto significa, por exemplo, que essas tags não podem ser incorporadas em uma predefinição usando parâmetros de predefinição e funções parser. A palavra mágica #tag não funciona com tags de seção. #tag produz tags equilibradas, enquanto as tags de seção utiliza tags singulares. Consulte bug 37256.
  • As of 2014, section tags don't have any effect when used inside a template parameter. If page A contains a text {{B|X}}, there's no way {{#lst:A|...}} can access X.

Download

A extensão pode ser recuperada diretamente a partir do Git [?]:

  • Navegar pelo código
  • Algumas extensões possuem tags para versões estáveis.
  • Cada pacote está associado com uma versão antiga do MediaWiki. Existe também um pacote "master" que contém a versão alfa mais recente (pode exigir uma versão alfa do MediaWiki).

Extraia o snapshot e coloque-o no diretório extensions/LabeledSectionTransclusion/ de sua instalação do MediaWiki.

Se você estiver familiarizado com o Git e tem acesso shell para seu servidor, você pode obter a extensão, como se segue:

cd extensions/
git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/LabeledSectionTransclusion.git

Instalação

  • Baixe e coloque o(s) arquivo(s) num diretório chamado LabeledSectionTransclusion na sua pasta extensions/.
  • Adicione o seguinte código ao final do seu arquivo LocalSettings.php:
    wfLoadExtension( 'LabeledSectionTransclusion' );
    
  • Yes Pronto – Navegue à página Special:Version em sua wiki para verificar se a instalação da extensão foi bem sucedida.

Para usuários executando o MediaWiki 1.27 ou anteriores:

As instruções acima descrevem a nova forma de instalar essa extensão utilizando wfLoadExtension(). Se precisar instalar essa extensão em versões antigas (MediaWiki 1.27 e anteriores), em vez de wfLoadExtension( 'LabeledSectionTransclusion' );, você precisa usar:

require_once "$IP/extensions/LabeledSectionTransclusion/LabeledSectionTransclusion.php";

There is also a Gadget in use on various Wikisources that makes it possible to define sections with a simplified ## label ## syntax. Its code can be found at Wikisource:MediaWiki:Gadget-Easy_LST.js.

Exemplos

Ver também