全球专业中文经管百科,由121,994位网友共同编写而成,共计435,826个条目

Help:模板

出自 MBA智库百科(https://wiki.mbalib.com/)

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

本文提供MBA智庫百科模板的使用手冊和指南,另外,


目錄

概述

模板名字空間是以“Template:”開頭的名字空間,這個首碼是跨語言的。

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

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

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

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

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

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

  • 引用MBA智庫百科名字空間的界面消息。
  • 將長頁面(名字就叫做“長頁面”)拆分為較短頁面時,可以將短頁面命名為“長頁面/第一部分”、“長頁面/第二部分”等,然後使用{{/第一部分}}<br/>{{/第二部分}}來拼成長頁面。

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

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

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

  • 只列出以“Template:”開頭的真正模板(位於模板名字空間的頁面),其他被調用的頁面則不列出;
  • 一個段落的編輯頁面列出的是所有被調用的模板,包括其他段落調用的模板;
  • 編輯舊版本的頁面,這個列表仍然是當前最新的;
  • 如果不真正提交編輯,僅僅在預覽中使用的模板不被列出。

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

參數

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

參數的定義和調用

在模板頁面中,用三個大括弧({{{}}})可以調用參數,例如:{{{参数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

想想為什麼...

未賦值並且沒有預設值的參數

例如:模板[[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>之前或者</noinclude>之後加空行,否則空行將被當作模板的一部分反映在調用模板的條目中。系統會自動忽略</noinclude>之後的單個空行。

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

如果在例1中的模板[[Template:姓名]]加入跨語言鏈接 我是{{{姓}}}{{{名}}}。

<noinclude> [[en:Template:Name]] </nocinlude> 用{{姓名国籍|姓=张|名=飞|国籍=蜀国}}調用例5中的模板[[Template:姓名国籍]]時,結果是:

我是張飛。
蜀國人。

如果希望得到的結果是:

我是張飛。蜀國人。

在[[Template:姓名]]加入跨語言鏈接應該不含有換行: 我是{{{姓}}}{{{名}}}。<noinclude>[[en:Template:Name]]</nocinlude> 註意:我們推薦您使用後面一種方式使用<noinclude>標識。

模板分類

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

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

例7:模板分類方法

將例1中的模板[[Template:姓名]分为[[Category:人物模板]]],需要加入: 我是{{{姓}}}{{{名}}}。<noinclude>[[Category:人物模板]]</nocinlude>

標識

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

<noinclude>

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

例8:針對[[Template:网球男单世界第一]]模板的分類[[:Category:体育模板]]就可以置於<noinclude></noinclude>之間,而對於調用該模板條目的分類[[:Category:网球运动员]]可以置於標識之外: [[Category:网球运动员]]<noinclude>[[Category:体育模板]]</noinclude>

<includeonly>

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

上面的例8中針對調用該模板的條目的分類[[:Category:网球运动员]]實際上應該置於<includeonly></includeonly>之間: <includeonly>[[Category:网球运动员]]</includeonly> 這樣,在[[:Category:网球运动员]]分類中就不會出現網球男單世界第一模板了。

subst

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

作用

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

模板的一般用法有:

參見

中文

以上内容根据网友推荐自动排序生成

下载APP

闽公网安备 35020302032707号