Parser extension tag

Help:扩展标签

来自滚动的天空Wiki

扩展标签(Extension tag)是维基文本中与HTML标签相似的标签。扩展标签不可展开,但扩展标签作为模块参数传入会变化为复杂的代码,最后又会把处理后的内容放回。扩展标签顾名思义是由扩展提供的,也有MediaWiki自带的。

本页列举了一些常用的扩展标签。本Wiki完整的可用扩展标签的列表可参见Special:Version#mw-version-parser-extensiontags

categorytree[编辑]

该扩展标签可以以树状形式动态展示分类。该扩展标签由CategoryTree扩展提供。例如:

<categorytree mode="pages">模板</categorytree>

会产生:

该标签支持以下参数:

mode
决定页面在树状图中展示的方式。可以为categories(仅显示子分类)、pages(仅显示页面)、all(显示所有)、parents显示超类。
depth
树状图显示级别的深度。
hideroot
若为on,则会隐藏类名称。
hideprefix
隐藏命名空间前缀。可以是always(总是隐藏)、never(即使是对于分类页面,也不隐藏)、auto(仅展示分类时,隐藏分类的命名空间)、categories(总是隐藏分类的命名空间,但是会显示其他的前缀)。
showcount
若为on,则会显示子分类的项数。
namespaces
仅显示这些命名空间的页面。
category、style、id
同HTML属性。

此外也可以通过{{#categorytree:}}解析器函数以及特殊页面Special:CategoryTree访问分类树。

ce[编辑]

该扩展标签用于展示化学式和化学方程式。例如:

<ce>2H2O2 \xlongequal{MnO2} 2H2O + O2 ^</ce>

会产生:

charinsert[编辑]

用于创建点击之后将字符添加到文本框的字符列表。

gallery[编辑]

最常用的扩展标签,生成画廊。在很多地方都可见。

<gallery>
示例.jpg|说明1
示例.jpg|说明2
</gallery>

indicator[编辑]

可以添加一个页面状态指示符。指示符通常显示在页面的右上角、主要内容之外或页面标题之前(具体取决于皮肤,例如对于Timeless皮肤,应该显示在页面标题的右边)。例如:

<indicator name="foo">Parser extension tag</indicator>

现在看一看页面标题的右边,是不是有一行“Parser extension tag”?

inputbox[编辑]

该扩展可用于创建HTML表单。例如:

<inputbox>
type=create
break=no
placeholder=页面名称
bgcolor=#8885
</inputbox>

会产生:

该扩展标签支持以下参数:

type
输入框的类型。可以是search(搜索页面)、create(创建页面)、comment(在输入框内容指定的页面下新增一个段落)、commenttitle(在page=参数中的页面新增一个段落,其标题为输入框内容)、fulltext(搜索全文)、move(移动页面)。
arialabel
用于无障碍访问的屏幕阅读器。
bgcolor
输入框的背景色。同HTML颜色值,但不需要使用引号。
width
输入框的宽度,以字符为单位。
default
输入框中的默认文本。
preload
创建新页面时,该标题的页面内容将会预先载入至编辑框中。仅适用于type为create、comment、commenttitle时。
editintro
进入编辑页面后,在编辑窗口上方显示编辑指引。仅适用于type为create、comment时。
buttonlabel
表单的主按钮显示的文字。
hidden
隐藏文本框。仅适用于type为create、comment时。
searchbuttonlabel
表单“搜索全文”按钮显示的文字。仅适用于type为search、fulltext时。
fulltextbutton
在search2表单上显示“全文搜索”。仅适用于type为search2时。
labeltext
在左侧显示的文字。仅适用于type为search2时。
break
是否在输入框和按钮之间换行。默认为yes
namespaces
在全文搜索中,支持选择的命名空间。仅适用于type为search或fulltext时。
prefix
指定前缀。
  • 若type=search或fulltext,指定搜索以特定前缀开头的页面来缩小范围。默认为空(在所有页面中搜索)。
  • 若type=create,创建一个以特定前缀开头的页面。
  • 若type=move,前缀将加在默认参数前。
placeholder
文本框内容为空时的占位文字。
page
要添加新段落或者移动的页面。仅适用于type为commenttitle或move时。
minor
默认该编辑为小编辑。仅适用于type为comment或create时。
nosummary
无编辑摘要。(需要验证。)
summary
默认编辑摘要或者移动理由。仅适用于type为comment、commenttitle或move。
id
整个form标签的id属性。
inline
将整个输入框最为行内元素,开头不换行。仅适用于type=search2。
dir
书写方向。可以为rtlltr。默认与页面语言的方向相同。
searchfilter
在搜索中追加的参数。如insource:foo

如需在模板中使用以接收参数,应当使用解析器函数{{#tag:inputbox}}

langconvert[编辑]

用于将一段文本由一个语言变体转换成另一个语言变体。需要注意:该扩展标签不是解析器函数或魔术字,因此不能正常搭配其他解析器函数(如{{#ifexpr:}})或魔术字使用。此外,该标签产生的内容仍有可能在呈现时被转换成你当前所使用的语言变体,因此如需使用应当在停用繁简转换的环境下使用。

例如:

-{<langconvert from="gan-hans" to="gan-hant">虹桥火车站</langconvert>}-

会产生:虹橋火車站

-{<langconvert from="zh-hant-tw" to="zh-hans-sg">憂鬱烏龜</langconvert>}-

会产生:忧郁乌龟

math[编辑]

生成数学公式。例如:

<math>x=\frac{-b\pm\sqrt{b^2-4ac}}{2a}</math>

会产生:

mobileonlynomobile[编辑]

可以控制特定内容仅在移动版视图显示或者不在移动版视图显示。与<noinclude /><includeonly />有点类似。

<mobileonly>这句话只会在手机上显示。</mobileonly><nomobile>这句话不会在手机上显示。</nomobile>
效果:
这句话只会在手机上显示。
这句话不会在手机上显示。

不是解析器函数或者魔术字,不能搭配解析器函数和魔术字进行运算。

nowiki[编辑]

使维基文本不解析。在模块中可以使用mw.text.unstipNoWiki将其剥离。

poem[编辑]

可以在维基文本中格式化诗歌或者类似的片段。该标签内的所有内容,都会:

  • 所有的换行符都会保留,并转化为<br>
  • 文本块包含在<p>...</p>标签中(以及一个带有“poem”类的div标签)
  • 行首的冒号转换为1个字符宽度的缩进
  • 行首的空格不会产生pre标签。

例如:

<poem>
 Humankind
煮豆燃豆萁,
豆在釜中泣。
本是同根生,
相煎何太急!
</poem>

会产生:

 Humankind
煮豆燃豆萁,
豆在釜中泣。
本是同根生,
相煎何太急!

pre[编辑]

ref[编辑]

在页面中加入一个脚注。该标签所在的位置会生成一个编号。

ref标签可用的参数:

name
用于多次使用同一个脚注。第一次使用ref标签需要指定name属性以及内容,第二次使用ref标签则只要制定name属性并自我闭合。
group
将该脚注添加到一个分组中。
extends
用于引用同一个来源的不同部分。例如如果有个<ref name=name1>...</ref>,那么<ref extends=name1>...</ref>在参考文献列表中会显示在name1那个脚注的后面。
follow
用于合并多个脚注。

references[编辑]

列举所有的脚注内容。如果使用了多次,则第二次只会列举从上一次的位置后面的部分。

可以指定group参数以仅显示指定分组内的脚注。

一般该标签应该自我闭合,即<references />,但是如果文章中有只定义了name但没有内容的ref标签,可以在refenreces中定义其内容。

section[编辑]

用于标记文章章节,并选择性地嵌入。例如:

<section begin="section1"/>这是一段文本。<section end="section1"/>

这是一段文本。

注意:该标签不是简单的XML形式的开启与闭合,不同的章节之间可以有交叉。不要写成了<section begin="section1">这是一段文本。</section>

这样,使用{{#lst:页面名称|章节名称}}解析器函数来嵌入该章节。

例如,上面这段文字是“Help:扩展标签”页面的“section1”章节,因此{{#lst:Help:扩展标签|section1}}就会产生:这是一段文本。

此外,{{#lst:页面名称|章节名称|替换文本(可选)}}可以嵌入页面但排除一个章节。{{#lst:页面名称|段落名称}}可以嵌入指定页面中,由=== 段落名称 ===这样的标题定义的段落。

syntaxhighlight[编辑]

用于呈现一段有语法高亮的代码。例如:

<syntaxhighlight lang=python line>
def main():
    pass

if __name__ == '__main__':
    main()
</syntaxhighlight>

就会产生:

def main():
    pass

if __name__ == '__main__':
    main()

该标签支持以下参数:

lang
这段代码所使用的语言,如jsjavacss
line
启用行号。该属性不需要值。
start
第一行的行号。默认为1。需要有line属性才能生效。
highlight
突出显示的行数。例如,highlight="2,4-6"会突出显示第2行第第4到6行。
inline
将一部分代码内联,而不是显示为一整个段落。
class、style等
同HTML元素的class、style属性。

templatestyles[编辑]

模板样式。可以使得页面加载特定页面的过滤的样式表,方法就是<templatestyles src="页面名称">...</templatestyles>,需要注意被加载的页面的内容模型必须是“已过滤的CSS”。