FANDOM


模板在維基系統(MediaWiki)中是一個可以加入另一個頁面的頁面。這一加入過程叫做嵌入,就好像計算機語言中的子程序

本文提供太鼓之達人維基模板的使用手冊和指南,另外可以參考,

概述编辑

模板名字空間是以「Template:」開頭的名字空間,這個前綴是跨語言的。

在此名字空間的頁面叫做模板,此頁面的內容是用來通過嵌入技術加入到其他頁面中,從而創建複雜的文檔。

將名為「Template:模板名」的模板加入頁面中的語法是{{模板名}},這個叫做模板標籤。例如:「一二{{三到六}}七八」中使用了內容為「三四五六」的模板Template:三到六,結果就是「一二三四五六七八」。模板標籤使得編輯頁面在生成時找到並添加了模板,有時候我們還用例如「調用」、「參考」、「包括」、「嵌入」、「使用」等詞來替代「添加」或者「加入」,實際上描述的都是同一個過程。

如果「Template:模板名」不存在,{{模板名}}的作用就與[[Template:模板名]]相同,提供一個連接到不存在頁面的連結。所以,一種創建模板的方法就是先放一個模板標籤在頁面裡,然後點擊它開始編輯模板。

如果一個頁面不是以「Template:」開頭,則不屬於模板,但也可以使用模板標籤,例如{{Help:模板入門}}會將Help:模板入門中的內容加入到該頁來。這樣一來,所有頁面都可以當作是模板。但是,使用在模板名字空間的頁面(即真正的模板)有以下獨特的好處:

  • 所有被頁面使用的模板都在頁面編輯頁顯示出來。
  • 當模板改變時,所有使用模板頁面的服務器緩存(相對於瀏覽器緩存)自動被清空;而位於其他名字空間的頁面,服務器緩存往往要手工清空。

而模板名字空間以外的頁面一般在如下情况下作為模板使用:

  • 引用維基百科名字空間的界面消息。
  • 將一個不屬於主條目名字空間的長頁面(假設名字就叫做「長頁面」)拆分為較短頁面時,可以將短頁面命名為「長頁面/第一部分」、「長頁面/第二部分」等,然後使用{{/第一部分}}<br/>{{/第二部分}}來拼成長頁面。太鼓之達人維基:模板消息/全部就是一個好例子。

一個模板可以調用另一個模板,它也可以調用它自己(自我調用),但只有一层自我調用有效。例如:[[Template:模板1]]的內容編輯內容是「一次,{{模板1}}」,在[[Template:模板1]]中將顯示:「一次,一次,{{模板1}}」,如果其他條目調用該模板,所加入的文字將是「一次,{{模板1}}」。

模板中變量在模板被加入某頁面後才被賦值,而不是之前。因此,如果一個模板中含有{{PAGENAME}},該模板被某頁面調用,相應的位置顯示的將是調用頁面的名稱,而不是被調用模板的名稱。

一個頁面所調用的所有模板都在該頁編輯頁面中列出,並提供相應的連結,而且:

  • 只列出以「Template:」開頭的真正模板(位於模板名字空間的頁面),其他被調用的頁面則不列出;
  • 一個段落的編輯頁面列出的是所有被調用的模板,包括其他段落調用的模板;
  • 編輯旧版本的頁面,這個列表仍然是當前最新的;
  • 可加入模板擴展語法#if, #ifeq, #ifexist, #ifexpr, 或 #switch;
  • 如果不真正提交編輯,僅僅在預覽中使用的模板不被列出。

請注意,如果頁面結尾没有換行,編輯頁面中總是在結尾添加一個換行,但這並不影響模板的某些效果,即這個換行不真正起作用。例如:

{{編號演示}}{{編號演示}}
{{編號演示}}

的結果是:

  1. 日本
  2. 太鼓
  3. 日本
  4. 太鼓
  5. 日本
  6. 太鼓

參數编辑

模板可以使用參數,通過參數命名或者編號可以區分各個參數。

參數的定義和調用编辑

在模板頁面中,用三個大括號可以調用參數,例如:{{{參數1|參數1的默認值}}}可以調用參數1,如果在模板調用中參數1没有賦值,則使用參數1的默認值作為參數1的賦值。在調用帶參數的模板的時候,語法是:

  • 如果在模板頁面中參數使用是名称形式,即诸如{{{參數1}}}...{{{參數2}}}...,則調用是使用{{甲模板|參數1=參數1的賦值|參數2=參數2的賦值}}
  • 如果在模板頁面中參數使用是編號形式,即诸如{{{1}}}...{{{2}}}...,則調用是使用{{甲模板|參數1的賦值|參數2的賦值}}

注意:參數默認值同參數賦空值是不同的。

例1:含有命名參數的模板编辑

我們可以創建一個名為姓名的模板,即[[Template:姓名]],內容為:

我是{{{姓}}}{{{名}}}。

如果用{{姓名}}調用這個模板,我們會得到:

我是{{{姓}}}{{{名}}}。

如果用{{姓名|姓=張|名=飛}},我們則得到:

我是張飛。

例2:含有編號參數的模板编辑

再來一個例子,說明一個編號參數的定義和調用:我們還是先要定義一個帶參數的模板,例如模板[[Template:數數]]的內容是

一二三{{{1|四五六}}}七八九

賦值調用{{數數|六五四}}的結果是:

一二三六五四七八九

賦空值調用{{數數|}}的結果是:

一二三七八九

未賦值調用,即調用默認值,{{數數}}的結果是:

一二三四五六七八九

參數值的限制编辑

  • 如果參數值中含有等號(=),調用模板時則必須使用參數名,即使參數名只是一個編號也要使用。
  • 如果參數值中含有兩個連續的右大括號(}}),調用參數時必須將其放入nowiki標記中,例如<nowiki>}}</nowiki>
  • 如果參數值中含有豎線(|),調用參數時必須將其放入nowiki標記中,例如<nowiki>|</nowiki>
  • 參數值可以很長,英文幫助中有一個長參數的例子:例子
  • 參數值中可以包含一對雙方括號,用於連結一個條目,但不能含有半個右雙方括號,然後再接半個左雙方括號。例如[[Template:數數]]中的內容是:
[[一二{{{1}}}六七]]
調用{{數數|三]]四[[五}}的結果是:
{{數數|三]]四[[五}}

命名?還是編號?编辑

編號參數的優點编辑

  1. 調用模板時不需要參數名和等號,從而節約打字和存儲空間。
  2. 阿拉伯數字是世界性的,在翻譯的時候省事,也可以被不懂中文的人理解。

命名參數的優點编辑

  • 參數的順序可以變化,模板的參數可以任意添加和修改,而不會對調用模板的頁面產生致命影響。
  • 參數的意義容易理解。

命名參數和編號參數混合使用编辑

命名參數和編號參數可以混合使用,此時的未命名參數根據位置被編號,命名參數不被編號。

例3:模板[[Template:又數數]]的內容是

{{{1}}}、{{{2}}}、{{{3}}}

{{又數數|3=1|2|1=3|4|5|6|7}}的結果是

3、4、5

想想為什麼...


注意下文中包含記述關於上面的答案的作品情節的段落,或許會降低欣賞原作的興致。


因為編號參數有順序規則,所以3不能提前調用,會被忽略。

而模板裡只有3個參數,所以從第一個接受的參數開始,只接受一共3個參數,之後的因為不存在,所以忽略。


對作品情節的記述到此結束。


未賦值並且没有默認值的參數编辑

例如:模板[[Template:再數數]]的內容是

一-{{{1}}}-三-{{{2}}}-五

調用{{再數數||}}的結果是

一--三--五

調用{{再數數|二|}}的結果是

一-二-三--五

調用{{再數數||二}}的結果是

一--三-二-五

調用{{再數數|二|{{{1}}}}}的結果是

一-二-三-{{{1}}}-五

調用{{再數數|{{{1}}}|四}}的結果是

一-{{{1}}}-三-四-五

調用{{再數數|{{{1}}}|{{{2}}}}}的結果是

一-{{{1}}}-三-{{{2}}}-五

參數賦值中包含參數编辑

如果一個參數未賦值,則在三個大括號中的參數名在模板調用是不起參數的作用。如果要它其作用,一定要賦值。

例4:

  • 模板[[Template:數數1]]的內容是
{{再數數|二}}
調用{{數數1|四}}的結果是:
一-二-三-{{{2}}}-五
  • 模板[[Template:數數2]]的內容是
{{再數數|二|{{{1}}}}}
調用{{數數2|四}}的結果是:
一-二-三-四-五
  • 模板[[Template:數數3]]的內容是
{{再數數|二|2={{{1}}}}}
調用{{數數3|四}}的結果是:
一-二-三-四-五

最簡單的參數迭代辦法就是在模板中用同樣的參數名。

例5:模板[[Template:姓名國籍]]中使用

{{姓名|姓={{{姓}}}|名={{{名}}}}}{{{國籍}}}人。

進一步的討論编辑

{{再數數||四}}這樣的調用將空值賦给參數1,而不是没有賦值,所以結果是

一--三-四-五

如果我們希望參數1不賦值,則應該將參數2用命名參數形式賦值,如

{{再數數|2=四}}

結果則是

一-{{{1}}}-三-四-五

如果這樣的參數值被賦给如<font size>這樣的標記,會使編碼錯誤,但這些錯誤會被系統(MediaWiki)忽略,而不產生奇怪的結果。請參看英文的例子:字體大小

參數“02”和參數“2”是不同的,例如模板[[Template:例5]]的內容是

{{{1}}}{{{2}}}{{{02}}}

調用{{例5|3|4|5|6}}的結果是

34{{{02}}}

注意:維基系統名字空間的參數名是不同的,它們是$1, $2, ...,參見Help:名字空間英文維基系統名字空間文本幫助

模板頁编辑

維基系統在生成模板頁面時,實際上相當於一次没有參數賦值的模板調用,因此如果參數有默認值,將被顯示。例如:模板[[Template:數一數]]的內容是

一二三{{{1|四五六}}}七八九

模板頁面的內容是

一二三四五六七八九

討論頁编辑

模板頁面同其他條目頁面是不同的,它的目的不是將知識傳遞给讀者,而僅僅是為系統定義模板。因此,其討論頁跟普通條目頁面的討論頁也不同,主要有兩個功能:

  • 第一部分要解释模板的作用和相關參數
    • 最好给出例子,調用模板的形式以及結果。
  • 第二部分則是普通的对模板的討論。

跨語言連結编辑

模板可以含有跨語言連結,但結果是所有調用模板的條目頁面都含有了該跨語言連結,這通常是非常糟糕的事情。為了僅僅讓模板本身擁有跨語言連結,而不包括使用模板的條目,我們必須使用<noinclude>標識。例如:

<noinclude>
[[en:Template:Europe]]
[[zh:Template:欧洲]]
</noinclude> 

注意:在模板中使用<noinclude>標識時要小心!不要在<noinclude>之前或者</noinclude>之後加空行,否則空行將被當作模板的一部分反映在調用模板的條目中。系統會自動忽略</noinclude>之後的單個空行。

例6:使用<noinclude>標識的後果编辑

如果在例1中的模板[[Template:姓名]]加入跨語言連結

我是{{{姓}}}{{{名}}}。

<noinclude>
[[en:Template:Name]]
</nocinlude>

{{姓名國籍|姓=張|名=飛|國籍=蜀國}}調用例5中的模板[[Template:姓名國籍]]時,結果是:

我是張飛。
蜀國人。

如果希望得到的結果是:

我是張飛。蜀國人。

在[[Template:姓名]]加入跨語言連結應該不含有換行:

我是{{{姓}}}{{{名}}}。<noinclude>[[en:Template:Name]]</nocinlude>

注意:我們推薦您使用後面一種方式使用<noinclude>標識。

模板分類编辑

模板也要進行分類,目的是為了更好的整理模板,以便更好的使用和管理模板。模板的分類同條目的分類相似,可以參閱有關條目分類的幫助文件,如Help:分類等,不同之处在於对於模板的分類需要使用<noinclude>標識,如果不加<noinclude>標識,則不僅模板被分類,所有使用該模板的條目也被分入同一類。

所有模板的根目錄(即分類)是Category:模板,所有模板分類名最後一定要含有“模板”二字,以區别於普通條目的分類。

例7:模板分類方法编辑

將例1中的模板[[Template:姓名]]分為Category:人物模板,需要加入:

我是{{{姓}}}{{{名}}}。<noinclude>[[Category:人物模板]]</noinclude>

可以在X月x日用<includeonly>括住上首頁<noinclude>括住

標識编辑

注意:以下內容只限於模板中使用的情況,在其他名字空間使用的情況請參考相關幫助文檔。

<noinclude>和<includeonly>编辑

前面已經提到,<noinclude>標識的作用是將<noinclude></noinclude>之間的文本加入所在的模板頁中,而不加入調用模板的條目或模板中,針對模板的說明、分類和跨語言連接都可以置於該標識之間。

例8:針對Template:SongboxCategory:訊息框模板就可以置於<noinclude></noinclude>之間,而對於調用該模板條目的Category:バラエティ可以置於標識之外:

[[Category:バラエティ]]<noinclude>[[Category:訊息框模板]]</noinclude>

另外,<noinclude>和<includeonly>的關係如下:

<noinclude>A</noinclude>B<noinclude>C</noinclude>

等價於

A<includeonly>B</includeonly>C

<includeonly>编辑

<includeonly>標識的作用跟<noinclude>標識的作用正好相反,是將<includeonly></includeonly>之間的文本加入所在的模板頁中,而加入調用模板的頁面中。

上面的例8中針對調用該模板的條目的分類Category:バラエティ實際上應該置於<includeonly></includeonly>之間:

<includeonly>[[Category:バラエティ]]</includeonly>

這樣,在Category:バラエティ分類中就不會出現Template:Songbox模板了。

替換引用编辑

Help:替換引用的用法是:{{subst:模板名}}。它的作用是一次性將模板內容編譯成維基文檔,加入到頁面中去,而不是每次顯示頁面的時候調用有關模板。這樣可以按模板當前的形式編輯條目,並使條目免受模板變化的影響,並減輕服務器負擔。

作用编辑

如果想將同一段文本複製到兩個或者多個頁面,我們可以考慮使用模板,但也並不是一定要用模板。如果使用模板,要修改這段文本時,不需要針對每一個頁面進行逐個修改,而只需要修改模板的內容,所有使用該模板的頁面都自動被修改。由於有參數存在,所以模板文本並不需要完全一樣,對於不同頁面,我們可以賦不同值,從而生成不同的文本。模板不僅僅是使用方便,它有時候還可以起到控制頁面統一格式的作用。

模板的一般用法有:

  • 模板消息,例如:Template:stub傳遞“小作品”的消息。
  • 導航模板,用於給讀者提供類似的條目,例如:Template:Taiko OST
  • 信息框模板,用於同一類條目中提供統一格式的信息,例如:Template:Songbox在條目右邊繪製信息框,提供歌曲的相關信息。
  • 提供跨語言文本。
  • 提供合成圖片。
  • 以上幾種的組合。

在對話中引用模板编辑

在某些情况下,我們可能需要在對話中提及某一個模板,但是如果我們直接输入模板的代碼的話,模板會自動展開,這當然不是我們想要的。一種辦法是使用nowiki語法,但是更好的用法,則是使用太鼓之達人維基的內部連結模板。下面給出了一些例子。

您所输入的 您所看到的
請您不要再隨意删除<nowiki>{{afd}}</nowiki>模板。
請您不要再隨意删除{{afd}}模板。
請您不要再隨意删除{{tl|afd}}模板。
請您不要再隨意删除{{afd}}模板。
歡迎新用戶可以使用{{tls|welcome}}語法,
但不要使用{{tl|welcome}}語法。
歡迎新用戶可以使用{{subst:welcome}}語法,

但不要使用{{welcome}}語法。

[[:Template:nosign]]的用法如下:
{{tlx|nosign|用戶留言時間|用戶名}}
Template:nosign的用法如下:

{{nosign|用戶留言時間|用戶名}}

{{tnull|nosign|用戶留言時間|用戶名}}
用於補簽名。
{{nosign|用戶留言時間|用戶名}}

用於補簽名。

參見编辑

本頁使用了標題或全文手工轉換

模板(template)是一種特別形式的頁面,被設計用來放置在其他的頁面中。一個模板可以同時放在許多的頁面裡,因此可以節省很多重複工作、也可以統一頁面的格式。

模板在以下地方可能很有用:

  • 在許多頁面都需要出現的內容。
  • 在許多頁面中設計一致性、規範性內容(例如資訊框)
  • 用於在編輯者之間溝通常需要的短訊。
  • 用來取代一長串的代碼,使編輯變得容易。
  • 僅保護頁面的一部分不讓人編輯。(其他部分開放)

模板一般會放在 Template 命名空間,包括任何Template:開頭的頁面,例如 Template:Name.

如何建立基本的模板

模板可能非常有效,但有時會非常複雜。剛開始時最好先建立比較簡單的模板,之再試著作較複雜的。以下為一個簡單的例子:

  • 在Fandom上,進入Template:Example 並按下建立。
  • 編輯器上輸入 "Hello"
  • 點擊「儲存頁面」,你就會建立一個模板了。
  • 在Fandom上,建立一個叫「模板試驗」的頁面。
  • 在編輯器上,選擇原始碼模式,並輸入:
{{Example}}
  • 點擊「儲存頁面」,你的「模板試驗」頁面就會顯示你模板上的「Hello」。

至此為止你已經成功建立並使用一個模板了!之後也可以循同樣方式來在你的wiki上建立或使用不同的模板。

使用已存在的模板

Templates-rightrail

Fandom中會有一些預設存在的模板,你可以在你的wiki站中的Special:AllPages中,名字空間的選單中選擇「Template」,並按下提交,就可以看到模板的列表。

  • 在編輯器的可視模式中,模板會以「拼圖」的圖樣顯示,你可以在右側的模板位置中點擊「添加其他模板」,可以從所有你的Fandom站中的模板中選擇要用的模板。
  • 在原始碼模式中,你可直接在頁面上輸入 {{模板名稱}}
  • 進階的使用者(管理員以上)可以編輯MediaWiki:Editor-template-list這個頁面來改變視覺化編輯器中右側欄位直接列出的模板,最多可以設定四個。

進階模板

模板參數

模板可以有參數(parameters)這讓你可以改變同個模板在不同頁面中的樣子,包括內容和形式。

Template:Wikipedia為例,只打上{{Wikipedia}}是假設在維基百科上的頁面名稱和該模板目前所在頁面的名稱相同。但是也可以加上一個參數。例如打上 {{Wikipedia|Microsoft}},表示該頁面在維基百科上的頁面名稱叫作 Microsoft.

要進一步學習關於如何改變使用參數,可參見:Help:模板參數 以及 Help:Parser functions.

替換引用模板

另一個使用模板的方式是「替換引用」(substitute)。在頁面{{之後輸入subst: : {{subst:templatename}}. 這樣一旦頁面儲存之後,連結到該模板的連結會被移除,而是用當時模板內的內容取代它,並可以進一步編輯,之後對於模板的編輯就不會影響到這個頁面。

進一步可參見Help:替換引用模板.

更新及增加標準模板

Fandom官方的Starter Wiki以及半官方的 Templates Wiki有時會改進一些文件,並開發一些特別適於Fandom的模板,所以可以不時去那邊逛逛。

從其他的wiki中複製模板

Fandom中的貢獻者們建立了各式各樣的模板,所以如果先複製一個模板,再修改成所需要的樣子,是會比自己設計簡單的。Templates Wiki是尋找適用模板的好地方。一般來說,複製Fandom的模板是沒問題的,CC-by-SA的使用原則,但少數情況下可能有些模板會特別標示不同的版權狀況。

以下是複製模板的一般步驟:

  1. 找到你想複製的模板(通常是http://wikiname.wikia.com/wiki/Template:Templatename).
  2. 點擊「編輯」,選擇所有的 wiki文本 並複製。
  3. 在你的Fandom站中建立新的模板頁面。

(http://yourwiki.wikia.com/wiki/Template:Templatename?action=edit).

  1. 將複製的內容貼上並按下「儲存頁面」。

很多模板會有一個附屬的「模板文件」用來說明這個模板,你需要也把它複製過來,通常會放在模板的子頁面中:

  1. 找到模板的文件頁面 (通常是 http://wikiname.wikia.com/wiki/Template:Templatename/doc).
  2. 點擊編輯鈕,選擇所有的 wiki文本 並複製。
  3. 在你的Fandom站中建立新的模板子頁面。(http://yourwiki.wikia.com/wiki/Template:Templatename/doc?action=edit).
  4. 將複製的內容貼上並按下「儲存頁面」。

參見

除了特别提示,社区内容遵循CC-BY-SA 授权许可。