Open main menu
This page is a translated version of the page Extension:Labeled Section Transclusion and the translation is 97% complete.

Other languages:
Deutsch • ‎English • ‎Lëtzebuergesch • ‎català • ‎dansk • ‎español • ‎français • ‎hrvatski • ‎italiano • ‎magyar • ‎polski • ‎português do Brasil • ‎Ελληνικά • ‎български • ‎русский • ‎українська • ‎العربية • ‎فارسی • ‎मराठी • ‎हिन्दी • ‎বাংলা • ‎中文 • ‎日本語
MediaWiki扩展手册
OOjs UI icon advanced.svg
Labeled Section Transclusion
发布状态: 稳定版
实现 Tag, Parser function
描述 允许标记的文本部分被转换
作者 Steve Sanbeg
最新版本 continuous updates
MediaWiki 1.25+
PHP 5.4+
数据更新
许可协议 GNU General Public License 2.0 or later
下载
翻译Labeled Section Transclusion扩展如果在translatewiki.net可用
检查使用和版本矩阵。
问题 开放的工作 · 报告错误

标记部分转换扩展允许选择性transclusion标记文本部分,解析wikitext正常。它的功能类似于带有正常wiki转换的<onlyinclude>标记的增强版本,它选择包含的部分。它在所有维基媒体wiki上启用。

虽然正常转换主要用于转换大部分小模板,但标记的部分转换适用于大页面的一小部分。

但是,存在一些差异。在本机模板转换中,部分由行为标记,因此,您只能包含或跳过一个(可能是非连续的)部分。

这里,部分由名称标记,并且调用者选择行为,可以根据需要包括或跳过部分。不同的页面可以包括或排除选定的部分,可以有任意数量的部分,也可以任意重叠。

通过名称而不是行为标记部分允许编辑部分链接更适合于从较大文本中获取摘录,因为扩展现在可以考虑在页面开头跳过的部分,从而允许适当地偏移包含的部分。

Contents

工作原理

第1步:标记部分

使用<section>标签标记文本中的部分,如下所示:

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

请注意,这些标记不是HTML/XML,并且不使用普通属性语法。 出于这个原因,并且因为beginend标记是单独的,而不是普通的XML打开/关闭标记,这允许嵌套或重叠的部分。这允许您插入节标记而不必担心干扰其他节。

步骤2a:转换部分

调用解析器函数#lst来转换它,即从名为articleX的页面转换一个名为chapter1的部分:

{{#lst:articleX|chapter1}}

目标文章定义了该部分的位置,它的行为由解析器函数决定。

步骤2b:转换页面但不包括部分

要转换页面,但排除指定的部分,请使用#lstx函数:

{{#lstx:articleX|chapter1}}

(可选)您可以将替换文本添加到排除部分。

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

例如:

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

替换文本将出现在跳过该部分的区域(排除)。

其他功能

不连续的章节

可以有多个具有相同名称的部分,在这种情况下,将包含/排除具有该名称的每个部分。这对标记各种讨论特别有用。

章节范围

这些函数有一个额外的可选参数来指定一个节范围,即{{#lst:articleX|chapter1|chapter3}},包括从第1章开头到第3章结尾的所有内容。这允许使用空标记对来标记该部分的一端 ,可能在模板中。目前法语维基文库使用了类似的机制。

替换引用

这也适用于替代,甚至可以用一篇文章替换它自己的一部分。这样做的一个用途是提供一种简洁的方式来存档讨论页:使用<section begin=archive />等标记要存档的文本,然后使用{{subst:#lst:talk_page|archive}}创建一个包含文本的存档页面,该页面复制存档的部分。最后用{{subst:#lstx:talk_page|archive}}替换讨论页的内容以删除这些部分。

按标题嵌入章节

可选支持转换标有正常标题的文本部分,即==this section==。如果已安装,则使用lsth功能完成。

转发介绍

要转换页面的引入(即第一个标题之前的内容),请使用

{{#lsth:pagename}}

转换特定部分

您还可以转换sectionX的整个内容(包括其所有子节,但不包括sectionX本身的标题)。

{{#lsth:pagename|sectionX}}

注意以下几点:

  1. 如果您有多个具有相同名称的部分,则仅转换sectionX的第一个匹配项。
  2. 确保键入sectionX的标题是in wiki code而不是它的显示方式。例如,如果该部分的标题是==List of [[Extension]]==,则应键入“List of [[Extension]]”而不是“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. 匹配是敏感的情况,以防止链接因案例更改而中断。

转换多个部分

您还可以从第一次出现sectionX(不包括sectionX本身的标题)转换,直到它到达sectionY的下一次出现。请注意,sectionY充当停止点,因此转换不包含sectionY的内容。

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

关于跳过标题的注释

由于MediaWiki中的传统转换不是为了转换部分,因此不会考虑跳过的标题。因此,如果您要转换包含多个标题的模板,并跳过第一个标题,则所有编辑部分链接都将指向模板中的错误部分。

当使用此扩展时(使用MediaWiki 1.9或更高版本),#lst#lsth函数会计算“跳过”开头部分中的标题,并相应地偏移已转换的标题。这将允许这些链接指向简单情况下的正确部分。

请注意,#lstx不计算跳过的标题,并且在不连续的部分中跳过的标题不会被抵消。 但它现在似乎已得到修复(可能在移植到MediaWiki的新预处理器时)。被剔除的标题可以链接到正确的部分.

本地化

在内部,解析器函数都使用lst前缀,以与扩展名称保持一致。由于这个首字母缩略词可能会让非开发人员感到困惑,因此引入了可读的英语变体,因此目前可以从任一名称调用这些函数。

功能 英语 德语 希伯来语 (RTL) 葡萄牙语
#lst #section #Abschnitt
#קטע
#trecho
#lstx #section-x #Abschnitt-x
#בלי קטע
#trecho-x
#lsth #section-h

此外,标签现在可以本地化(目前是英语、德语和希伯来语),即:

英语
<section begin=x/> ... <section end=x/>
德语
<Abschnitt Anfang=x/> ... <Abschnitt Ende=x/>
希伯来语 (RTL)
<קטע התחלה=א> ... <קטע סוף=א> (“启动”代码到右边,“结束”代码在左边)
葡萄牙语
<trecho começo=x/> ... <trecho fim=x/>

限制

  • 虽然可以跨命名空间使用此扩展,但跨维基来源未解析。例如,将维基文库页面的一部分包含在远程MediaWiki安装中是不可能的。
  • 部分标签本身不能被转换以便在其他页面上工作。{{#lst:}} and {{#lstx:}}仅在部分标记直接出现在已转换页面的wiki文本中时才起作用。这意味着,例如使用模板参数解析函数不能将这些标签嵌入到模板中。#tag魔术字不适用于章节标签。#tag生成平衡标签,而章节标签使用单数标签。见任务T39256
  • 截至2014年,在模板参数中使用时,节标记没有任何效果。如果页面A包含文本{{B|X}},则{{#lst:A|...}}无法访问X。

下载

此扩展可直接从Git检索到 [?]:

  • 浏览代码
  • 部分扩展有稳定版本标签。
  • 每个分支与过去的MediaWiki发布版本相关联。 这里也有一个“主线”分支,包含最新alpha版本(可能需要MediaWiki的alpha版本)。

提取快照,并将它放置在您的MediaWiki安装副本的extensions/LabeledSectionTransclusion/目录中。

如果您对git熟悉,并且拥有您服务器的shell访问权,您也可以通过以下方法获得扩展:

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

安装

  • 下载文件,并将其放置在您extensions/文件夹中的LabeledSectionTransclusion目录内。
  • 将下列代码放置在您的LocalSettings.php的底部:
    wfLoadExtension( 'LabeledSectionTransclusion' );
    
  •   完成 – 在您的wiki上导航至Special:Version,以验证扩展已成功安装。

致使用MediaWiki 1.27或更早版本的用户:

上面的说明介绍的是安装此扩展的新方法,它使用wfLoadExtension() 如果您需要在早期版本(MediaWiki 1.27和更早版本)中安装此扩展,而不是wfLoadExtension( 'LabeledSectionTransclusion' );,您需要使用:

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

在各种维基文库上还有一个Gadget,可以使用简化的## label ##语法定义部分。 它的代码可以在Wikisource:MediaWiki:Gadget-Easy_LST.js找到。

例子

参见