說明:魔術字

出自Arcaea中文维基
於 2024年7月30日 (二) 20:22 由 CharaX對話 | 貢獻 所做的修訂 →‎变量:​ 调整了一些表述和样式,现在应该不那么难看了)

(參見Mediawiki上的Help:Magic Words 本頁面說明的魔術字均為Mediawiki對應頁面上所列舉出來的全部的魔術字,由於軟件版本的問題不一定都能生效。你維目前(編輯時)使用的Mediawiki版本為1.39.5。如果該魔術字在當前版本不能使用,會使用刪除線。

魔術字(Magic words)是MediaWiki軟件所識別的特定字符串,它們可以返回特定的值或觸發其他的功能:比如時間、站點設置或是頁面名稱等等。

魔術字有以下三種類型:

  • 狀態開關:通常寫成用兩個下劃線為前後綴的全大寫單詞,例如__ARCAEA__
  • 變量:用兩個大括號括起來,全大寫的字符,例如{{ARCAEA}}。用法於和模板類似。
  • 解析器函數:使用特定的函數(與一系列參數)計算值並表示,使用形式如{{#'''函数名''': 参数1|参数2...}}(請注意這裏是英文的冒號:而不是中文的全形冒號)

狀態開關

狀態開關可以控制頁面的顯示方式和其他行為(受皮膚的影響,有些開關可能不起作用)。往往用於排除/加入特定的頁面內容。

文字 描述
目錄
__NOTOC__ 隱藏當前頁面的目錄
__FORCETOC__ 強制於默認位置(第一個章節標題的上方,不受__NOTOC__的設置)顯示目錄。對於在文章內容外展示目錄的皮膚(比如Vector 2022)不起作用。
__TOC__ 在該魔術字的位置插入目錄(忽略__NOTOC__的設置)。多次使用時,在第一個魔術字處顯示目錄。同上,對部分皮膚不起作用。
編輯
__NOEDITSECTION__ 隱藏章節標題旁的編輯連結。這個特別有用,當章節標題在模板中被創建時,普通的編輯連結將會把用戶帶到編輯模板代碼界面,這與用戶的直覺不符。 在模板中使用它將擴充對模板嵌入頁面的影響,以及任何包含在同一頁面的其他模板。(Mediawiki原文如此)
__NEWSECTIONLINK__ 在非討論頁頂端「編輯」標籤右側加入一個按鈕,用於在頁面結尾加入新的章節(比如討論版)。
__NONEWSECTIONLINK__ 移除討論頁頂端「編輯」右側的加入新章節連結。
分類
__NOGALLERY__ 用於分類頁面(以Category為的頁面前綴,下同)。不顯示分類中所包含文件的縮略圖,而以普通連結代替。
__HIDDENCAT__ 用於分類頁面。加入後此分類成為隱藏分類,將不會顯示在上級分類其及成員頁面的分類列表中。
__EXPECTUNUSEDCATEGORY__ 在分類頁面上使用,從Special:UnusedCategories中刪除分類。
語言轉換
__NOCONTENTCONVERT__<br>__NOCC__ 在語言有不同變體時(如中文簡體和繁體),不對當前頁面進行字詞轉換。比如只顯示中文,而不是顯示大陸簡體、台灣繁體、新加坡簡體和香港繁體。
__NOTITLECONVERT__<br>__NOTC__ 在語言有不同變體時(如中文簡體和繁體),不對當前頁面進行標題轉換(其他內容照常轉換)。
其他
__START__ 無實際作用。曾用於指向不應被嵌入的注釋之後開始的數據庫消息。
__END__ 明確標記條目的結尾,來防止MediaWiki移除文末的空格。
__INDEX__ 允許搜尋引擎檢索本頁。
__NOINDEX__ 禁止搜尋引擎檢索本頁(比如不可在搜尋引擎列出指定頁面)。(效果應是本魔術字之後的內容都不可檢索)
__STATICREDIRECT__ 用於一些重定向頁面。當有人移動頁面並勾選「更新所有指向原始標題的重定向」時,禁止MediaWiki更新本頁的重定向。

變量

變量可以返回關於當前頁面、wiki站點或日期的信息。變量的語法與模板類似。其中標記為「[高開銷]」的變量會被軟件記錄,且在一個頁面中可使用的總數會被限制。

如果某個模板名和變量名重複,軟件會自動將其解釋為變量。

  • 比如現有一模板與魔術字都為BRCAEA,使用魔術字時只需要{{BRCAEA}},而如果要調用模板,則需要加上前綴Template:{{Template:BRCAEA}}。部分情況下,添加參數會迫使解析器調用模板;例如,寫{{BRCAEA|616}}會導致嵌入Template:BRCAEA並傳入相應參數(比如這裏是616),而不是調用變量。

日期與時間

以下的變量返回當前的日期和UTC時間。

在MediaWiki與瀏覽器緩存的影響下,這些變量顯示的往往是被緩存的值,而非當前的時間。

使用這些變量會使頁面被緩存的時間變得更短,這可以通過 MagicWordFactory 設置。

日期和時間魔術字被格式化為相應的語種。自1.19版本開始,它們取決於頁面內容語言。

(以上為Mediawiki原文)

翻譯:

以下變量返回當前的日期/時間。

受緩存(伺服器端)影響可能不准。

使用這些變量的頁面緩存時間會變短。

日期和魔術字會翻譯成相應語言(比如你站是中文)。

  • 補充:前導0:指日期格式中補充位數的0,比如4月會補足為04,9日會補足為09。
變量 輸出 描述
{{CURRENTYEAR}} 2024
{{CURRENTMONTH}} 11 月(補足前導0)
{{CURRENTMONTH1}} 11 月(不補足前導0)
{{CURRENTMONTHNAME}} 11月 月(本地語言中的月份名稱)
{{CURRENTMONTHNAMEGEN}} 11月 月(本地語言中月份名稱的屬格形式)
{{CURRENTMONTHABBREV}} 11月 月(本地語言中月份名稱的簡稱)
{{CURRENTDAY}} 15 日(無前導0)
{{CURRENTDAY2}} 15 日(補足前導0)
{{CURRENTDOW}} 5 星期(數字格式)
{{CURRENTDAYNAME}} 星期五 星期(文字形式)
時間
{{CURRENTTIME}} 23:36 時間(24小時制,格式為HH:mm)
{{CURRENTHOUR}} 23 時間(24小時制,有前導0)
其他
{{CURRENTWEEK}} 46 周數
{{CURRENTTIMESTAMP}} 20241115233647 YYYYMMDDHHmmss時間戳

CURRENTDATE不是魔術字,但很可能是一個模板。事實上在你站它並不是模板。

以下變量和上述變量作用相同(差了LOCAL和CURRENT),但使用的是網站伺服器端配置的時間。

變量 輸出 描述
{{LOCALYEAR}} 2024
{{LOCALMONTH}} 11 月(補足前導零)
{{LOCALMONTH1}} 11 月(不補足前導零)
{{LOCALMONTHNAME}} 11月 月(本地語言中的月份名稱)
{{LOCALMONTHNAMEGEN}} 11月 月(本地語言中月份名稱的屬格形式)
{{LOCALMONTHABBREV}} 11月 月(本地語言中月份名稱的簡稱)
{{LOCALDAY}} 16 日(無前導零)
{{LOCALDAY2}} 16 日(補足前導零)
{{LOCALDOW}} 6 星期(數字格式)
{{LOCALDAYNAME}} 星期六 星期
時間
{{LOCALTIME}} 07:36 時間(24小時制,格式為HH:mm)
{{LOCALHOUR}} 07 時間(24小時制,有前導零)
其他
{{LOCALWEEK}} 46 周數
{{LOCALTIMESTAMP}} 20241116073647 YYYYMMDDHHmmss時間戳

變量 輸出 描述
站點
{{SITENAME}} Arcaea中文維基 維基網站的名稱
{{SERVER}} https://arcwiki.mcd.blue 域名URL
{{SERVERNAME}} arcwiki.mcd.blue 子域名和域名
{{DIRMARK}}

{{DIRECTIONMARK}}


輸出這個wiki默認語言所使用的Unicode文本方向控制字符(從左到右書寫的語言使用‎,反之使用‏),這在多方向文本中很有用。取決於頁面語言。
{{ARTICLEPATH}} /$1 相關文章路徑
{{SCRIPTPATH}} 腳本相對路徑
{{STYLEPATH}} /skins 樣式相對路徑
{{CURRENTVERSION}} 1.39.5 此維基站點的MediaWiki版本。
{{CONTENTLANGUAGE}}

{{CONTENTLANG}}

zh

zh

默認界面語言
頁面
{{PAGEID}} 4941 返回頁面標識符(頁面ID)。
{{PAGELANGUAGE}}
{{#language:{{PAGELANGUAGE}}}}
zh
中文
返回當前頁面的語言。此變量返回的語言代碼可使用{{#language:...}}轉換為語言名。
{{TRANSLATABLEPAGE}} Template:TRANSLATABLEPAGE 如果某個頁面是可翻譯的(包括已翻譯的頁面),則返回翻譯頁面(其他語言的翻譯來源頁面)的標題;如果該頁面不可翻譯,則不返回任何內容。你維版本太低使用不了
<translate>

<!--T:1-->
Translated unit.
Language:
<tvar name=lang>
{{TRANSLATIONLANGUAGE}}
</tvar>.
</translate>

<translate>
<!--T:2-->
Untranslated unit.
Language:
<tvar name=lang>
{{TRANSLATIONLANGUAGE}}
</tvar>.
</translate>

已翻譯單元。語言:zh-CN.

Not translated unit. Language: en.

必須用於存在翻譯的頁面,在<translate>標籤內部。 返回當前翻譯單元的語言代碼。在翻譯頁面中,若此單元已被翻譯,則返回此翻譯的語言。否則,返回源語言。 此變量返回的語言代碼可使用{{#language:...}}轉換為語言名。只應由翻譯管理員使用。(此條在本站不能正常生效,但考慮到你站並沒有這個需求……)
{{PROTECTIONLEVEL:操作}} 輸出當前頁面對於特定行為(比如edit,move)的保護級別(autoconfirm或sysop等)。若未保護則返回空字符串。
{{PROTECTIONEXPIRY:操作}} 根據給出的動作(如edit、move),返回當前頁面的保護信息(例如:時間戳「20160418155030」,或「infinity」) 如果未被保護,則會返回"infinity"。
{{CASCADINGSOURCES}} [ 高開銷]返回當前頁面上的任意連鎖保護操作來源。除非存在自我嵌入,否則頁面將不會返回其各自標題。
查看當前頁面的歷史版本號(最近一次編輯版本或是選定的舊版本)
{{REVISIONID}} 53934 唯一修訂ID。 在預覽中恆為空白,因此能用來顯示僅限於預覽時的錯誤消息。 可能在守財奴模式(所有的WMF維基)中被停用,若不是在預覽中改為回傳-(?)
{{REVISIONDAY}} 30 最近一次編輯的日期(無前導0)。
{{REVISIONDAY2}} 30 最近一次編輯的日期(有前導0)
{{REVISIONMONTH}} 07 最近一次編輯的月份(有前導0)。
{{REVISIONMONTH1}} 7 最近一次編輯的月份(沒有前導0)。
{{REVISIONYEAR}} 2024 最近一次編輯的年份
{{REVISIONTIMESTAMP}} 20240730202236 最近一次編輯的時間戳。
{{REVISIONUSER}} CharaX 編輯相關內容的用戶或預覽編輯內容的用戶的用戶名。
{{REVISIONSIZE}} 25842 當前查看的頁面版本或預覽的大小(維基文本)。(單位為字節)
影響頁面內容
{{DISPLAYTITLE: 标题}}
{{DISPLAYTITLE: 标题|noerror}}
{{DISPLAYTITLE:标题|noreplace}}
設置當前頁面的顯示標題格式,這是頁面標題通常顯示的內容。 除非$wgRestrictDisplayTitle設置為false,否則該值必須等同於默認標題:僅允許對標題的某些部分(而不是全部)進行大寫更改,並允許用下劃線替換空格。 這可以通過$wgAllowDisplayTitle啟用或禁用。
可以使用第二個參數noerror或是noreplace,用來在當有多個標題在一個頁面使用時,阻止產生錯誤消息,或是在頁面中的前面已經指定了了一個displaytitle的情況下,使此displaytitle失效。($wg是伺服器端某個設置。)
{{DEFAULTSORT:排序关键字}}
{{DEFAULTSORTKEY:排序关键字}}
{{DEFAULTCATEGORYSORT:排序关键字}}
{{DEFAULTSORT:排序关键字|noerror}}
{{DEFAULTSORT: 排序关键字|noreplace}}
在為頁面分類時使用,用來設置當前頁面默認的分類排序關鍵字。 例如當你將{{DEFAULTSORT:Magic Word}}}放到頁面Help:魔術字的結尾,該頁面在分類頁面上的列表中將默認排到「M」項下。 可以使用第二個參數noerror或是noreplace,用來在當有多個默認排序關鍵字在一個頁面使用時,阻止產生錯誤消息,或是在頁面中的前面已經指定了了一個defaultsort的情況下,使此defaultsort失效。

統計

這些變量返回的數字往往包含分隔符(根據本地語言參數設置而可能是逗號或空格)。可以通過「:R」來返回無分隔號的數字(例如{{NUMBEROFPAGES}} → 616,616和4835 → 616616)。

對於PAGESINCATEGORY等需要參數的變量則使用「|R」(例如{{PAGESINCATEGORY:Help}}{{PAGESINCATEGORY:Help|R}}{{PAGESINCATEGORY:Help|subcats}}{{PAGESINCATEGORY:Help|subcats|R}})。 也適用於上述0。

返回數字的魔術字數字格式取決於內容語言的設定。

變量 輸出 描述
{{NUMBEROFPAGES}} 4,835 wiki頁面數量
{{NUMBEROFARTICLES}} 617 在內容命名空間中,作為條目的頁面個數。
{{NUMBEROFFILES}} 1,655 上傳文件的個數。
{{NUMBEROFEDITS}} 58,274 維基編輯的數量
{{NUMBEROFVIEWS}} 已移除 頁面瀏覽次數。通常對使用緩存的wiki無效。已移除
{{NUMBEROFUSERS}} 4,881 註冊用戶數量
{{NUMBEROFADMINS}} 4 管理員(sysop)組用戶數。
{{NUMBEROFACTIVEUSERS}} 67 活躍用戶總數,基於Special:Statistics中使用的標準。
{{PAGESINCATEGORY:分类名称}}
{{PAGESINCAT: 分类名称}}
0
0
[高開銷] 指定分類中的頁面總數(包括子類和文件)。(分類:幫助在此用於演示)
{{PAGESINCATEGORY: 分类名称|all}}
{{PAGESINCATEGORY: 分类名称|pages}}
{{PAGESINCATEGORY: 分类名称|subcats}}
{{PAGESINCATEGORY: 分类名称|files}}
0
0
0
0
[高開銷] 返回指定分類的:
  • 所有頁面數
  • 所有非分類頁和非文件頁數
  • 所有子分類頁數
  • 所有文件頁數

(分類:幫助|Help分類在此用於演示)

{{NUMBERINGROUP: 用户组}}
{{NUMINGROUP: 用户组}}
4
4
特定用戶群組中的用戶總數(這裏管理員組為例)
{{PAGESINNS: 索引编号}}
{{PAGESINNAMESPACE: 索引编号}}
未啟用。 [高開銷] 指定命名空間中的頁面總數。(將「索引編號」替換成相關命名空間編號)。 例如{{PAGESINNAMESPACE:14}}返回分類頁面總數。{{PAGESINNS:0}}{{NUMBEROFARTICLES}}不同之處在於包括重定向頁面和消除歧義頁面。默認禁用,可以通過$wgAllowSlowParserFunctions設置啟用。(你站沒有啟用。)

頁面名稱

變量 當前頁輸出 描述
{{FULLPAGENAME}} Help:魔術字 命名空間與完整頁面標題(包括子頁面級別)。
{{PAGENAME}} 魔術字 不包含命名空間的完整頁面標題(包括子頁面級別)。
{{BASEPAGENAME}} 魔術字 頁面標題,不包括當前子頁面標題及命名空間。在Help:Title/Foo/Bar頁面返回Title/Foo。
{{ROOTPAGENAME}} 魔術字 獲得當前頁面的根頁名。 在Help:Title/Foo/Bar頁面返回Title。
{{SUBPAGENAME}} 魔術字 子頁面標題。 在Help:Title/Foo/Bar頁面返回Bar。

如果子頁面不存在將會回傳{{PAGENAME}}的值。

{{SUBJECTPAGENAME}}
{{ARTICLEPAGENAME}}
Help:魔術字 獲得該頁面的完整頁面名。對討論頁十分有用。
{{TALKPAGENAME}} Help talk:魔術字 關聯討論頁的完整頁面名稱

這些變量不受{{DISPLAYTITLE:xxxx}}影響,它們都會按原來的頁面標題計算返回值。

{{BASEPAGENAME}}{{SUBPAGENAME}}這兩個魔術字只在啟用了子頁面模式的命名空間才生效。

以上魔術字可以接受一個參數,用於指定特定頁面,來代替要處理的當前頁面設定:

  • {{PAGENAME:Template:Main Page}}返回 Main Page。
  • 如果頁面標題包含存在「.」或「..」的任意部分,魔術字什麼都不會返回。
  • 頁面標題如果包括特定字符,例如:单引号'、星号*會導致以上魔術字會有不正常的處理結果。

URL 編碼後的頁面名稱

以下是在MediaWiki URL中的等價編碼(就是空格替換為下劃線,以及使用數字字符編碼的一些HTML溢出字符): {{FULLPAGENAMEE}}

{{PAGENAMEE}}

{{BASEPAGENAMEE}}

{{SUBPAGENAMEE}}

{{SUBJECTPAGENAMEE}}

{{ARTICLEPAGENAMEE}}

{{TALKPAGENAMEE}}

{{ROOTPAGENAMEE}}


命名空間

變量 輸出 描述
{{NAMESPACE}} Help 頁面的命名空間的名稱 (除去主空間)
{{NAMESPACENUMBER}} 12 頁面所在命名空間的ID
{{SUBJECTSPACE}}
{{ARTICLESPACE}}
Help
Help
相關聯的內容命名空間的名稱
{{TALKSPACE}} Help talk 相關聯的討論命名空間的名稱

以下是在MediaWiki URL中的的等價編碼(空格替換為下劃線,一些字符替換為百分號編碼): {{NAMESPACEE}}
{{SUBJECTSPACEE}}
{{ARTICLESPACEE}}
{{TALKSPACEE}}


這些可以是完整頁面名參數,並將返回與那個頁面相關的請求命名空間,而不是在當前頁面中:

  • {{NAMESPACENUMBER:MediaWiki}} → 0
  • {{NAMESPACE:MediaWiki}} → (主)空間中的頁面將返回空白
  • {{NAMESPACE:Template:Main Page}} → Template
  • {{SUBJECTSPACE:Template:Main Page}} → Template
  • {{ARTICLESPACE:Template:Main Page}} → Template
  • {{TALKSPACE:Template:Main Page}} → Template talk

參數必須不是一個命名空間名稱:

  • {{SUBJECTSPACE:Help talk}}

其他

  • {{!}}插入一個管道符(|),但這裏使用的是感嘆號
  • {{=}}插入一個等於號

這兩個魔術字在wiki上可能通過Template實現。(在本站是有的。)

解析器函數

Help:解析器函數