2023年政策修订增补工作正在进行中,欢迎参与!
  • Moegirl.ICU:萌娘百科流亡社群 581077156(QQ),欢迎对萌娘百科运营感到失望的编辑者加入
  • Moegirl.ICU:账号认领正在试运行,有意者请参照账号认领流程

User:红石小蝈/WikitextLogic

萌娘百科,万物皆可萌的百科全书!转载请标注来源页面的网页链接,并声明引自萌娘百科。内容不可商用。
跳转到导航 跳转到搜索

这个页面将以贴近本质的方式讲述MediaWiki是如何把您输入的Wikitext解析成HTML。

阅读此页面可能需要一定的逻辑思维基础,若无特殊说明,这里所有的符号默认是半角的。

由于萌百相对于原生 Mediawiki 装了很多的额外插件,这篇内容里的许多信息可能并不适用于其他 wiki.

序言 - Wikitext和HTML

对于Wikitext,在座的各位一定有所了解,Wikitext就是我们用来编辑萌百之类的媒体维基(Media Wiki)网站的语言,更准确地说,是标记语言(Markup Language),什么是标记语言呢?你可能听说过一些其他的标记语言,比如HTML, Markdown, LaTeX之类的,这些语言都属于标记语言。标记语言通俗讲就是能被软件解析成能给你看的界面的语言。MediaWiki所做的就是将Wikitext这种标记语言转换成HTML, 通过浏览器展现给你。

换行

在Wikitext中,两个连着的换行(Line Break, 即大多数语言中的"\n")一般情况下对应着HTML里的一个段落间隔,即两个不同的<p></p>标签,特殊情况下,当有一个<div>标签仍未闭合(即得到对应的</div>标签)时,会直接在div内生成<p>标签。

通常情况下,仅有一个换行的时候,这个换行对应着HTML文件里的一个换行,但当内容包含在列表元素里(即Wikitext中#(井号, Hash),*(星号, Asterisk), ;(分号, Semicolon)或:(冒号, Colon)开头的一行代码中)时,无论这个换行是直接体现在代码里的,或是出现在引用里的,都会导致这个列表的结束。

标题

通常情况下,当一行的开头和结尾都有$n$个连续的等号时($1 \le n \le 6$),这一行就会被解析成一个$n$级标题,多余的等号会被解析成标题的一部分。

比如某一行Wikitext的内容是== blablabla ==,那么这一行会被解析成<h2>blablabla</h2>,至于页面端标题后面带的“编辑”与移动端标题后面编辑的符号,是MW内置的。而这允许“一级标题”在正文中存在(尽管并不推荐这种写法)。

列表

Wikitext中存在3种不同的列表,分别是有序列表无序列表,和混合列表,其中有序列表用#声明,无序列表用*声明,混合列表用;:共同声明。

有序列表

无序列表

混合列表

链接

Wikitext中的链接有两种格式,内链和外链。[1]

内链

内链,即内部链接,是链向自己维基(即萌娘百科)的超链接。

Wikitext中内链的写法是[[ooo]][[ooo|xxx]], 即为用两对"[" 和 "]"(中括号, Square Brackets)包起来的一段文字。若中括号中有"|"(管道符, Pipe),则管道符之前是链向的页面名称,之后则是链接上显示的文字;若没有管道符,则会将链想的页面名称作为链接上显示的文字。具体来说,[[ooo]][[ooo|xxx]]都是链向https://zh.moegirl.org/ooo的链接(其中ooo是页面名称)。若有管道符但管道符后面无内容则会按照这样的逻辑预编译:去掉标题文字":"(冒号)及之前的内容或/和第一个"("与最后一个")"(圆括号, Parentheses)及括号间的内容,放到管道符之后作为显示文字。

特殊内链

Wikitext中有两种内链比较特殊,分别是File名字空间下的内链(形如[[File:ooo|xxx|xxx|xxx|xxx]], 具体见Help:图像,这里不再阐述细节)和Category名字空间名字空间下的内链(形如[[Category:ooo|xxx]]),前者会生成成一张图片,后者会使写入这段的这个页面包含在此分类里,并按照xxx排序。

正确生成链向这两个名字空间内链的方法是在链接前面加一个:,形如[[:ooo:xxx]],这样就会生成到对应页面的链接了。

跨wiki链

跨维基链接是一种介于内链和外链之间的链接[2],它用内链的格式书写(此特性在下面还会被提到),但会链接到别的维基。跨维基链的格式是[[prefix:name]],其中的 "prefix" 是链向的维基名,所有的萌百能用的 prefix 见Special:跨wiki

跨wiki链的原理类似同一名字空间的不同别名,这里就不再赘述。

跨语言链接

跨语言链接是一种特殊的跨wiki链接,格式为[[lang:oo]](这里的lang语言代码,汉语对应zh,英语对应en,日语对应ja),它并不会原地生成一个链接,而是在侧边栏上生成一个到对应语言萌百的链接(e.g. 二次元

若想原地生成到对应语言萌百的链接,需要和特殊内链这里一样的技巧,写[[:lang:oo]]即可。

外链

引用

魔术字

表格

预编译

杂项

注释与外部链接

  1. mw:Help:Links
  2. 事实上,跨维基链接并不是原生 MediaWiki 的功能,而是某个插件的作用