Extensão:Transcrição de Secção Sinalizada
Labeled Section Transclusion Estado de lançamento: estável |
|
---|---|
Implementação | Etiqueta , Função do analisador |
Descrição | Permite secções marcadas do texto a ser transcrito |
Autor(es) | Steve Sanbeg |
Política de compatibilidade | Lançamentos de capturas de ecrã junto com o MediaWiki. Original não é compatível com versões anteriores. |
MediaWiki | 1.19+ |
Alterações à base de dados | Não |
Licença | GNU - Licença Pública Geral 2.0 ou superior |
Transferência | |
Public wikis using | 6,919 (Ranked 26th) |
Traduza a extensão Labeled Section Transclusion se ela estiver disponível em translatewiki.net | |
Problemas | Tarefas em aberto · Reportar um erro |
A extensão Transcrição da Secção Sinalizada permite a transcrição seletiva das secções marcadas do texto, analisando o texto wiki como normal. A sua funcionalidade é semelhante a uma versão melhorada da etiqueta <onlyinclude>
com a transcrição normal da wiki, que seleciona secções para inclusão. Esta está ativada em todos as wikis da Wikimedia.
While normal transclusion is primarily intended to transclude large portions of small templates, labeled section transclusion is intended for small portions of large pages.
However, there are some differences. In the native template transclusion, sections are marked by behavior; thus you can have only one (possibly non-contiguous) section to be included or skipped.
Here, sections are marked by name, and behavior is chosen by the caller, which can include or skip sections as needed. Different pages can include or exclude selected sections; there can be arbitrary numbers of sections, which can also overlap arbitrarily.
Marking sections by name rather than behavior allows edit section links to be rendered more appropriately for getting excerpts from larger texts, since the extension can now account for sections that are skipped in the beginning of the page, allowing transcluded sections to be offset appropriately.
Instalação
- Exporte e coloque o ficheiro, ou ficheiros, num diretório chamado
LabeledSectionTransclusion
, na sua pastaextensions/
.
Developers and code contributors should install the extension from Git instead, using:cd extensions/
git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/LabeledSectionTransclusion - Acrescente o seguinte código ao fundo do ficheiro $LocalSettings:
wfLoadExtension( 'LabeledSectionTransclusion' );
- Pronto – Na página especial Special:Version da sua wiki verifique se a extensão foi instalada.
Também existe um «Gadget» na utilizaçlão de várias Wikisources que torna possível definir secções com uma sintaxe ## label ##
a simplificada.
O seu código pode ser encontrado em Wikisource:MediaWiki:Gadget-Easy_LST.js.
Functions
Transclude any marked part
Passo 1: Marcação das secções
Marque secções no texto utilizando etiquetas de <section>
como esta:
<section begin="chapter1" />this is chapter 1<section end="chapter1" />
Note que estas etiquetas não são HTML/XML, e não utilizam a sintaxe de atributo normal.
For this reason, and because the begin
and end
markers are individual, rather than normal XML open/close tags, this allows nested or overlapping sections. This allows you to insert section tags without worrying about interfering with other sections.
Passo 2a: Transcrição da secção
Call the parser function #lst to transclude it, i.e. to transclude a section called chapter1 from a page called articleX:
{{#lst:articleX|chapter1}}
The target article defines the location of the section; its behavior is determined by the parser function.
Passo 2b: Transcrição da página mas excluindo a secção
To transclude a page, but exclude a specified section, use the #lstx function:
{{#lstx:articleX|chapter1}}
Optionally, you may add replacement text to the excluded section.
{{#lstx:articleX|chapter1|replacement_text}}
Exemplo:
{{#lstx:articleX|chapter1|See chapter 1 in [[articleX]].}}
The replacement text will appear in the area where the section is skipped (excluded).
Secções descontíguas
It is possible to have multiple sections with the same name; in this case, every section with that name will be included/excluded. This is especially useful to mark various discussions.
Intervalos da secção
These functions have an additional, optional argument to specify a section range; i.e. {{#lst:articleX|chapter1|chapter3}}, to include everything from the beginning of chapter 1 to the end of chapter 3. This allows using empty marker pairs to mark one end of the section, possibly in a template. A similar mechanism is currently used at the French Wikisource.
Substituição
This also works with substitution; it's even possible for an article to substitute a section of itself. One use of this provides a neat way to archive talk pages: Mark the text to be archived using <section begin=archive />
, etc. Then create an archive page with the text, using {{subst:#lst:talk_page|archive}}, which copies archived sections. Lastly, replace the contents of talk_page with {{subst:#lstx:talk_page|archive}} to remove those sections.
There is optional support for transcluding sections of text marked with the normal headings, i.e. ==this section==
. If installed, this is done with the lsth function.
Transcrever a introdução
To transclude the introduction of a page (i.e. the content before the first heading), use
{{#lsth:pagename}}
Transcrever uma secção específica
You can also transclude the whole content of the sectionX (which includes all its sub-sections but excludes the heading of sectionX itself).
{{#lsth:pagename|sectionX}}
Coisas a considerar:
- Only the first occurrence of the sectionX is transcluded if you have more than one section with the same name.
- Make sure you type what the heading of sectionX is in wikitext, not how it is displayed. For example if the heading of the section is
==List of [[Extension]]==
, you should type "List of [[Extension]]
" not "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.
- The matching is case insensitive, to prevent links from breaking due to case changes.
Transcrever múltiplas secções
You can also transclude from the first occurrence of sectionX (excluding the heading of sectionX itself) until it reaches the next occurrence of sectionY. Note that sectionY acts as a stop point so the transclusion doesn't contain the content of sectionY.
{{#lsth:pagename|sectionX|sectionY}}
Notas acerca dos títulos ignorados
Since the traditional transclusion in MediaWiki isn't intended to transclude sections, it doesn't account for skipped headings. As a result, if you were to transclude a template with multiple headings, and skip the first heading, then all of the edit sections links would point to the wrong section in the template.
When this extension is used (with MediaWiki 1.9 or later), the #lst and #lsth functions count headings in the "skipped" beginning part, and offset transcluded headings appropriately. This will allow these links to point to the correct section in the simple case.
Note that #lstx does not count skipped headings, and that skipped headings within discontiguous sections are not offset.
But it seems it has been fixed now (likely when ported to MediaWiki's new preprocessor). The transcluded headings can be linked to the correct sections.
Localização
Internally, the parser functions all use the lst prefix, for consistency with the name of the extension. Since this acronym may be confusing to non-developers, readable English variants have been introduced, so the functions can currently be called from either name.
função | inglês | alemão | hebraico (RTL) | português |
---|---|---|---|---|
#lst | #section | #Abschnitt | #קטע |
#trecho |
#lstx | #section-x | #Abschnitt-x | #בלי קטע |
#trecho-x |
#lsth | #section-h |
Additionally, the tag can now be localised; currently:
inglês, alemão, hebraico, português; exemplo:
- inglês
<section begin=x/> ... <section end=x/>
- alemão
<Abschnitt Anfang=x/> ... <Abschnitt Ende=x/>
- hebraico (RTL)
<קטע התחלה=א> ... <קטע סוף=א>
("start" code to the right and "end" code to the left)- português
<trecho começo=x/> ... <trecho fim=x/>
Each localization is enabled only if the page matches the respective content language.
Limitações
- {{#lsth:pagename|sectionX}} only works on the first section if multiple sections have name sectionX. Only the first occurrence of sectionX is transcluded if an article has more than one section with the same name.
- While it is possible to use this extension across namespaces, interwiki references are not resolved. It is not yet possible, for example, to include part of a Wikisource page into a remote MediaWiki installation.
- Section tags cannot themselves be transcluded in order to work on other pages.
{{#lst:}}
and{{#lstx:}}
work only if section tags appear directly in the wikitext of the transcluded page. This means, for instance, that these tags cannot be embedded in a template using template parameters and parser functions. The#tag
magic word does not work with section tags.
- 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.
Exemplos
- wikisource:user:sanbeg/Includer - an early demonstration that shows several of the basic features.
Consulte também
- A «Lista de Págians Dinâmicas (terceiros) inclui uma versão integrada ligeiramente modificada a da «Transcrição da Secção Sinalizada»
Este extensão está a ser utilizado em um ou mais projetos da Wikimedia. Isso provavelmente significa que a extensão é estável e funciona bem o suficiente para ser usada por esses sites de alto tráfego. Procure o nome desta extensão nos arquivos de configuração CommonSettings.php e InitialiseSettings.php da Wikimedia para ver onde está instalado. Uma lista completa das extensões instaladas em um determinado wiki pode ser vista na página Special:Version do wiki. |
This extension is included in the following wiki farms/hosts and/or packages: This is not an authoritative list. Some wiki farms/hosts and/or packages may contain this extension even if they are not listed here. Always check with your wiki farms/hosts or bundle to confirm. |