說明:擴展

參見: mw:Category:Extensions


本幫助文檔是關於如何在Rotaeno中文維基使用擴展特性的說明。

自1.18版本開始,MediaWiki的可下載版本默認隨附了一些捆綁的擴展和皮膚,參考mw:Bundled_extensions_and_skins。具體內容可在特殊:版本查看。

頁面狀態指示器

頁面狀態指示器是顯示在主要內容之外的圖標或短文本片段,可提供有關頁面狀態的快速信息。 例如,你可以在本頁面標題右側看到一個形狀為 的指示器。 詳見mw:Help:Page_status_indicators/zh

語言轉換器

一些語言有多套書寫系統。<langconvert>標籤支持訪問語言轉換器, 要求fromto屬性為同一語言的BCP 47代碼。 詳見mw:Writing_systems/zh

維基文本 渲染
<langconvert from="zh-Hans" to="zh-Hant">汉语</langconvert>

漢語

<langconvert from="sr-Latn" to="sr-Cyrl">Srpski</langconvert>

Српски

引述

引述可以讓在頁面中加入腳註。

引述引入了兩個解析器標籤,用<ref />標籤插入腳註文本,用<references />標籤指定腳註位置。

可以插入多個<references />標籤,標籤之前組號相同的所有<ref />都會插入到這裡。 如果沒有<references />標籤,那麼參考引述(無組號腳註)仍會顯示在頁面結尾,其餘不顯示。

建議不要在模板中使用<references />標籤。

說明 維基文本 渲染
太阳很大。<ref>E. Miller, ''The Sun'', (New York: Academic Press, 2005), 23–25.</ref> 然而月亮不大。<ref>R. Smith, "Size of the Moon", ''Scientific American'', 46 (April 1978): 44–46.</ref>

参考资料:

<references />

太陽很大。[1] 然而月亮不大。[2]

參考資料:

  1. E. Miller, The Sun, (New York: Academic Press, 2005), 23–25.
  2. R. Smith, "Size of the Moon", Scientific American, 46 (April 1978): 44–46.
使用<ref name="name">復用腳註。用相同的name區分腳註。只有首個標籤內的文本起作用。

注意name屬性使用的標識符必須要有字母字符,以數字開頭會報錯。建議名稱保持簡單並限制為ASCII字符集。

这是多个引用使用一个脚注的例子。<ref name="multiple">记住当你多次引用相同的脚注时,会使用第一个引用中的文本。</ref>

有多个语句来自同一個的来源时,这種引用特別有用。<ref name="multiple" /> 任何复用标签都不应该包含额外文本,否则会产生错误。 仅使用空标签。

进行多次引用的简洁方法是使用空的ref标签,在末尾加上斜杠。
尽管这样子减少繁杂工作,但是请注意,如果以后有个编辑者移除了第一个引用,后面使用空的ref标签的引用都会丢失。<ref name="multiple" />

注:

<references />

這是多個參考使用一個腳註的例子。[1]

有多個語句來自相同來源時,這樣引用來源會特別有用。[1] 任何復用標籤都不應該包含額外文本,否則會產生錯誤。 僅使用空標籤。

進行多次引用的簡潔方法是使用空的ref標籤,在末尾加上斜槓。 儘管這樣子減少繁雜工作,但是請注意,如果以後有個編輯者移除了第一個引用,後面使用空的ref標籤的引用都會丟失。[1]

註:

  1. 1.0 1.1 1.2 記住當你多次指向相同的腳註時,會使用第一個引用中的文本。
使用<references group="group" />為腳註分組,生成單獨的引用列表。

注意group屬性使用的標識符必須要有字母字符,以數字開頭會報錯。建議名稱保持簡單並限制為ASCII字符集。

科学家称,太阳很大。<ref>E. Miller, ''The Sun'', (New York: Academic Press, 2005), 23–25.</ref> 事实上,非常大。<ref group="footnotes"> 相信他们的话。 千万不要直视太阳!</ref>

脚注:

<references group="footnotes" />

参考资料:

<references />
科學家稱,太陽很大。[1] 事實上,非常大。[footnotes 1]

腳註:

  1. 相信他們的話。 千萬不要直視太陽!

參考資料:

  1. E. Miller, The Sun, (New York: Academic Press, 2005), 23–25.
將部分或全部引述文本移動到<references />標籤內,防止大段引述影響閱讀。可用於從文本中拆分參考資料。

注意需要自行維護參考的標號和順序。


太阳很大。<ref name="miller" /> 然而月亮不大。<ref name="smith" />

参考资料:

<references>
<ref name="smith">R. Smith, "Size of the Moon", ''Scientific American'', 46 (April 1978): 44–46.</ref>
<ref name="miller">E. Miller, ''The Sun'', (New York: Academic Press, 2005), 23–25.</ref>
</references>

太陽很大。[1] 然而月亮不大。[2]

參考資料:

  1. E. Miller, The Sun, (New York: Academic Press, 2005), 23–25.
  2. R. Smith, "Size of the Moon", Scientific American, 46 (April 1978): 44–46.
使用<ref follow="name">為具名腳註追加參考文獻內容。
这是将多个文本合并到相同脚注的例子。<ref name="main">记住所有的文本都会包含在含有name="…"属性的参考中。</ref>

<ref follow="main">在带有follow="…"属性的标签内,简单包含额外文本,并符合第一个参考的名称。</ref>

参考资料:

<references/>

這是將多個文本合併到相同腳註的例子。[1]


參考資料:

  1. 記住所有的文本都會包含在含有name="…"屬性的參考中。 在帶有follow="…"屬性的標籤內,簡單包含額外文本,並符合第一個參考的名稱。

替換引用和嵌入解析器函數

由於Cite的<ref />標籤是在MediaWiki的解析器函數(如{{#ifexpr:…}})、變量(如{{PAGENAME}})或subst:之前解析的,因此在引述的參考內不會起效果。 反之,你應該使用魔術字{{#tag:…}}才對。

維基文本 結果
Foo<ref>这不起作用,参见{{subst:#time:Y-m-d|now}}</ref> bar baz…
Foo{{#tag:ref|而这样就会起作用,参见{{subst:#time:Y-m-d|now}}}} bar baz…
<references />

Foo[1] bar baz… Foo[2] bar baz…

  1. 這不起作用,參見{{subst:#time:Y-m-d|now}}
  2. 而這樣就會起作用,參見2024-04-19

解析器函數

#expr

使用下面這個函數計算並返回數學表達式的結果。

{{#expr: 表达式 }}

使用布爾代數時,0表示false,其他任何非0數值(無論正負)均表示true。

空表達式返回空值,錯誤的表達式返回錯誤信息。

置於數字前的加減號會被視為正負號而不會報錯。

以下是支持的運算符。

運算符的說明參見metawikimedia:Help:Calculation

類型 運算符號
分組 ( )
數字 1234.5   e (2.718)   pi (3.142)
二進制操作者e 一元 +,-
Unary not ceil trunc floor abs exp ln sin cos tan acos asin atan
二進制 ^
* / div mod
+ -
取整 round
邏輯 = != <> > < >= <=
and
or

#if

此函數判斷一個字符串是否為空。只包含半角空格的字符串被視為空字符串,這意味着,全角空格 是不被當做空字符串的。

{{#if: 字符串 | 空值返回 | 非空值返回 }}

當字符串是空值時返回第二個參數,當字符串不是空值時返回第三個參數。 當字符串填寫參數來判斷是否賦值時,需要添加豎線:

{{#if: {{{参数名|}}} | 空值返回 | 非空值返回 }}

返回值不一定需要填寫可以為空,這樣就不會返回內容。這對於下面判斷類型的解析器函數一致適用。

#ifeq

此函數判斷兩個輸入字符串是否相同,並根據結果輸出兩個字符串的其中一個。如果需要更多的比較和輸出字符串,請考慮使用#switch

{{#ifeq: 字符串1 | 字符串2 | 相同返回 | 不相同返回 }}

注意:區分大小寫。

#switch

此函數將一個輸入值與多個測試用例進行比較,如果找到匹配項,則返回關聯的字符串。

{{#switch: 输入值 
 | 值1 = 输入值是值1时返回的内容 
 | 值2 = 输入值是值2时返回的内容
 | 当找不到一样的值时返回的内容 }}

還有一種高級的switch-true用法可以支持更多功能。

{{#switch: 1 
 | {{#ifexpr: 表达式 | 1 | 0 }} =
 | {{#if: 页面 | 1 | 0 }} = 返回值1
 | {{#ifeq: 字符串1 | 字符串2 | 1 | 0 }} = 返回值2 }}

#iferror

此函數以一個字符串為輸入,然後在兩條預選結果中取其一而返回。

{{#iferror: 字符串 | error返回 | correct返回 }}

這個函數可以認定解釋器函數和模板等的錯誤。

{{#iferror: {{#expr: 表达式 }} | error | correct }}

與其他不同的是,如果不填寫correct返回的內容,那麼correct返回的內容會是被測字符串本身。

#ifexpr

此函數會判斷數學表達式並根據其布爾值結果返回對應的字符串。

{{#ifexpr: 表达式 | true返回 | false返回 }}

#ifexist

此函數將一組字符串作為輸入,並翻譯成頁面標題,然後根據在本地wiki上是否存在該頁面而返回對應的值。

{{#ifexist: 页面名 | 存在时返回 | 不存在时返回 }}

#rel2abs

此函數將相對文件路徑轉換為絕對文件路徑。

{{#rel2abs: 相对路径 | 基路径 }}

「相對路徑」可以使用以下類型的句法:

  • . → 本級路徑
  • .. → 回到上一級
  • /foo → 向下一級進入子目錄/foo

「基路徑」默認為函數所在頁面的絕對路徑。

例如,若指定基路徑為用户:用户名/sandbox/模板:测试

./style.css用戶:用戶名/sandbox/模板:測試/style.css
../style.css用戶:用戶名/sandbox/style.css

#time

此解析器函數需要日期和/或時間,並根據給定的語法設置其格式。可以指定日期/時間對象;默認值是魔法詞的值,即頁面最後呈現到 HTML 的時間。

{{#time: format string }}
{{#time: format string | date/time object }}
{{#time: format string | date/time object | language code }}
{{#time: format string | date/time object | language code | local }}

#timel

此函數等效於#time函數將local參數設置為true,因此它始終使用 wiki 的本地時間。

#titleparts

此函數根據斜槓將頁面標題分隔為段,然後返回其中一些段作為輸出。

{{#titleparts: 页面路径 | 要返回的段数 | 第一个返回段 }}

Scribunto

Scribunto擴展可以在wiki中嵌入腳本。

當前唯一被支持的腳本語言是Lua。 Scribunto Lua腳本以模块:為前綴。 模塊使用#invoke解析器函數,這也是目前本wiki唯一由擴展引入的解析器函數,例如:

{{#invoke: Module_name | function_name | arg1 | arg2 | arg3 ... }}

詳見mw:Extension:Scribunto/zh

SimpleMathJax

SimpleMathJax插件提供了在MediaWiki中排版「數學環境」內的TeX公式的方法。詳見mw:Extension:SimpleMathJax/zh#示例

維基文本 渲染
<math>\mathbf{V}_1 \times \mathbf{V}_2 =  \begin{vmatrix}
\mathbf{i} & \mathbf{j} & \mathbf{k} \\
\frac{\partial X}{\partial u} & \frac{\partial Y}{\partial u} & 0 \\
\frac{\partial X}{\partial v} & \frac{\partial Y}{\partial v} & 0
\end{vmatrix}</math>

[math]\displaystyle{ \mathbf{V}_1 \times \mathbf{V}_2 = \begin{vmatrix} \mathbf{i} & \mathbf{j} & \mathbf{k} \\ \frac{\partial X}{\partial u} & \frac{\partial Y}{\partial u} & 0 \\ \frac{\partial X}{\partial v} & \frac{\partial Y}{\partial v} & 0 \end{vmatrix} }[/math]

<chem>x Na(NH4)HPO4 ->[\Delta] (NaPO3)_x + x NH3 ^ + x H2O</chem>

[math]\ce{ x Na(NH4)HPO4 ->[\Delta] (NaPO3)_x + x NH3 ^ + x H2O }[/math]

語法高亮

使用<syntaxhighlight>擴展標籤對源代碼提供富文本格式。詳見mw:Extension:SyntaxHighlight/zh#參數,目前本wiki的實現不是很好。

維基文本
<syntaxhighlight lang="python" line start="3" highlight="1,5-7">
def quick_sort(arr):
	less = []
	pivot_list = []
	more = []
	if len(arr) <= 1:
		return arr
	else:
		pass
</syntaxhighlight>

模板樣式

TemplateStyles擴展引入了一個<templatestyles />標籤,用於指定wiki頁面應該加載的樣式表。 將此標籤放入模板中可使該模板加載自定義的樣式,而無需將樣式放入MediaWiki:Common.css

編輯者添加<templatestyles src="[某页面]" />到一個頁面,該頁面的內容將被解析為 CSS,它被過濾,並通過直接使用或是通過模板嵌入方式,載入到使用了此<templatestyles>標籤的頁面。

[某页面]必須指定內容模型為「已過濾的CSS」,若頁面使用模板:前綴且以.css結尾則無需額外設置內容模型。推薦的模式是把Template:Foo的樣式儲存在子頁面,例如Template:Foo/styles.css

使用時如果缺少前綴,默認使用模板:前綴。例如<templatestyles src="Foo/styles.css" />將會載入Template:Foo/styles.css

<templatestyles />標籤應該被放置在使用樣式的內容前面,例如在模板的最上方。這是為了避免頁面載入時只有部分被渲染而發生無樣式內容閃爍的可能性。

詳見mw:Extension:TemplateStyles/zh