Extension:Transclusão de seção etiquetada
Labeled Section Transclusion Estado da versão: estável |
|
---|---|
Implementação | Marcação , Função de análise sintática |
Descrição | Habilita seções de texto marcadas para serem transcluídas |
Autor(es) | Steve Sanbeg |
Política de compatibilidade |
Snapshots releases along with MediaWiki. Master is not backwards compatible. |
Modifica o banco de dados |
Não |
Licença | GNU GPL (Licença Pública Geral) 2.0 ou superior |
Download | |
Para traduzir a extensão Labeled Section Transclusion, verifique sua disponibilidade no translatewiki.net | |
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 que estas etiquetas não são HTML/XML, e não utilizam a sintaxe de atributo normal. 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:
- Apenas a primeira ocorrência de sectionX é transcluída se você tiver mais de uma seção com o mesmo nome.
- 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
".
- 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.
- 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, alemão, hebraico, português; i.e.:
- 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.
- Navegar pelas tags
- Selecione a tag
- Clique "snapshot"
- 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).
- Navegar pelos pacotes
- Selecione um nome de pacote
- Clique "Continuar"
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 pastaextensions/
. - Adicione o seguinte código ao final do seu arquivo LocalSettings.php:
wfLoadExtension( 'LabeledSectionTransclusion' );
- Concluído – 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
- wikisource:user:sanbeg/Includer é uma demonstração a curto prazo, que mostra algumas das características básicas.
- wikisource:Bible/2_John/1/1 é uma das primeiras páginas de conteúdo que mostram como usar a extensão.
Ver também
- [$svn download no Subversion]
- Brion's comments on the application of the extension at Wikisource
- A proposta original (no en.wikisource)
- bugzilla:5881 contém versões mais antigas da extensão como anexos.
- bugzilla:7995 é um pedido no site da Wikimedia para ter esta extensão instalada no Wikisource.
- bugzilla:6563 descreve uma limitação na predefinição de transclusão que é abordado por esta extensão.
- DynamicPageList (third-party) inclui uma versão embutida ligeiramente modificada da "Transclusão de seções etiquetadas"
Esta extensão está sendo usado por um ou mais projetos da Wikimedia. Isto significa que, provavelmente, a extensão é estável e funciona bem o suficiente para ser utilizada em sites de alto tráfego. Procure pelo nome dessa extensão nos arquivos de configuração CommonSettings.php e InitialiseSettings.php da Wikimedia para verificar onde ela foi instalada. Uma lista completa das extensões instaladas numa wiki em particular podem ser visualizadas na página Special:Version da wiki. |