檢視 使用說明:模板 的原始碼
←
使用說明:模板
前往:
導覽
、
搜尋
由於下列原因,您沒有權限進行 編輯此頁面 的動作:
您剛才的請求只有這個使用者組的使用者才能使用:
使用者
你可以檢視並複製本頁面的原始碼。
'''模板'''在維基系統(MediaWiki)中是一個可以加入另一個頁面的頁面。這一加入過程叫做嵌入,就好像計算機語言中的子程序。 本文提供{{SITENAME}}模板的使用手冊和指南,另外, *模板簡介在[[Help:模板入門|模板入門]]; *模板分類在[[:Category:{{SITENAME}}模板|]]; *模板名字空間的幫助信息在[[Help:模板名字空間|模板名字空間]]。 ==概述== '''模板名字空間'''是以「'''Template:'''」開頭的[[Help:名字空間|名字空間]],這個前綴是跨語言的。 在此名字空間的頁面叫做'''模板''',此頁面的內容是用來通過嵌入技術加入到其他頁面中,從而創建複雜的文檔。 將名為「Template:模板名」的模板加入頁面中的語法是<code><nowiki>{{模板名}}</nowiki></code>,這個叫做模板標簽。例如:「<code>一二<nowiki>{{三到六}}</nowiki>七八</code>」中使用了內容為「<code>三四五六</code>」的模板<nowiki>[[Template:三到六]]</nowiki>,結果就是「一二三四五六七八」。模板標簽使得編輯頁面在生成時找到並添加了模板,有時候我們還用諸如「調用」、「參考」、「包括」、「嵌入」、「使用」等詞來替代「添加」或者「加入」,實際上描述的都是同一個過程。 如果「Template:模板名」不存在,<code><nowiki>{{模板名}}</nowiki></code>的作用就與<code><nowiki>[[Template:模板名]]</nowiki></code>相同,提供一個連接到不存在頁面的鏈接。所以,一種創建模板的方法就是先放一個模板標簽在頁面里,然後點擊它開始編輯模板。 如果一個頁面不是以「Template:」開頭,則不屬於模板,但也可以使用模板標簽,例如<code><nowiki>{{Help:模板入門}}</nowiki></code>會將[[Help:模板入門|模板入門]]中的內容加入到該頁來。這樣一來,所有頁面都可以當作是模板。但是,使用在模板名字空間的頁面(即真正的模板)有以下獨特的好處: *所有被頁面使用的模板都在頁面編輯頁顯示出來。 *當模板改變時,所有使用模板頁面的服務器緩存(相對於瀏覽器緩存)自動被清空;而位於其他名字空間的頁面,服務器緩存往往要手工清空。 而模板名字空間以外的頁面一般在如下情況下作為模板使用: *引用{{SITENAME}}名字空間的界面消息。 *將長頁面(名字就叫做「長頁面」)拆分為較短頁面時,可以將短頁面命名為「長頁面/第一部分」、「長頁面/第二部分」等,然後使用<code><nowiki>{{/第一部分}}<br/>{{/第二部分}}</nowiki></code>來拼成長頁面。 一個模板可以調用另一個模板,它也可以調用它自己(自我調用),但只有一層自我調用有效。例如:<nowiki>[[Template:模板1]]</nowiki>的內容編輯內容是<code><nowiki>「一次,{{模板1}}」</nowiki></code>,在<nowiki>[[Template:模板1]]</nowiki>中將顯示:<nowiki>「一次,一次,{{模板1}}」</nowiki>,如果其他條目調用該模板,所加入的文字將是<nowiki>「一次,{{模板1}}」</nowiki>。<!-- However, with templates redirecting to the template that one would want to call recursively, one can achieve recursion without having to make copies of the whole template content, with the number of levels limited by the number of redirects. See also Repetition within a page and m:Template:List of template calls (talk, backlinks, edit).--> 模板中[[Help:變量|變量]]在模板被加入某頁面後才被賦值,而不是之前。因此,如果一個模板中含有<code><nowiki>{{PAGENAME}}</nowiki></code>,該模板被某頁面調用,相應的位置顯示的將是調用頁面的名稱,而不是被調用模板的名稱。 一個頁面所調用的所有模板都在該頁編輯頁面中列出,並提供相應的鏈接,而且: *只列出以「Template:」開頭的真正模板(位於模板[[Help:名字空間|名字空間]]的頁面),其他被調用的頁面則不列出; *一個段落的編輯頁面列出的是所有被調用的模板,包括其他段落調用的模板; *編輯舊版本的頁面,這個列表仍然是當前最新的; *如果不真正提交編輯,僅僅在預覽中使用的模板不被列出。 請注意,如果頁面結尾沒有換行,編輯頁面中總是在結尾添加一個換行,但這並不影響模板的某些效果,即這個換行不真正起作用。例如: <nowiki>{{編號演示}}{{編號演示}}</nowiki> <nowiki>{{編號演示}}</nowiki> 的結果是: <nowiki>編號演示編號演示編號演示</nowiki> ==參數== 模板可以使用參數,通過參數命名或者編號可以區分各個參數。 ===參數的定義和調用=== 在模板頁面中,用三個大括號(<nowiki>{{{}}}</nowiki>)可以調用參數,例如:<code><nowiki>{{{參數1|參數1的默認值}}}</nowiki></code>可以調用''參數1'',如果在模板調用中參數1沒有賦值,則使用''參數1的默認值''作為參數1的賦值。在調用帶參數的模板的時候,語法是: *如果在模板頁面中參數使用是名稱形式,即諸如<code><nowiki>{{{參數1}}}</nowiki>...<nowiki>{{{參數2}}}</nowiki>...</code>,則調用是使用<code><nowiki>{{甲模板|參數1=參數1的賦值|參數2=參數2的賦值}}</nowiki></code>; *如果在模板頁面中參數使用是編號形式,即諸如<code><nowiki>{{{1}}}</nowiki>...<nowiki>{{{2}}}</nowiki>...</code>,則調用是使用<code><nowiki>{{甲模板|參數1的賦值|參數2的賦值}}</nowiki></code>。 '''注意:'''參數默認值同參數賦空值是不同的。 ====例1:含有命名參數的模板==== 我們可以創建一個名為'''姓名'''的模板,即<nowiki>[[Template:姓名]]</nowiki>,內容為: 我是<nowiki>{{{姓}}}{{{名}}}。</nowiki> 如果用<code><nowiki>{{姓名}}</nowiki></code>調用這個模板,我們會得到: :我是<nowiki>{{{姓}}}{{{名}}}。</nowiki> 如果用<code><nowiki>{{姓名|姓=張|名=飛}}</nowiki></code>,我們則得到: :我是張飛。 ====例2:含有編號參數的模板==== 再來一個例子,說明一個編號參數的定義和調用:我們還是先要定義一個帶參數的模板,例如模板<nowiki>[[Template:數數]]</nowiki>的內容是 一二三<nowiki>{{{1|四五六}}}</nowiki>七八九 賦值調用<code><nowiki>{{數數|六五四}}</nowiki></code>的結果是: :一二三六五四七八九 賦空值調用<code><nowiki>{{數數|}}</nowiki></code>的結果是: :一二三七八九 未賦值調用,即調用默認值,<code><nowiki>{{數數}}</nowiki></code>的結果是: :一二三四五六七八九 ===參數值的限制=== *如果參數值中含有等號(<code>=</code>),調用模板時則必須使用參數名,即使參數名只是一個編號也要使用。 *如果參數值中含有兩個連續的右大括號(<code><nowiki>}}</nowiki></code>),調用參數時必須將其放入nowiki標記中,例如<code><nowiki><nowiki>}}</nowiki></nowiki></code>。 *如果參數值中含有豎線(<code><nowiki>|</nowiki></code>),調用參數時必須將其放入nowiki標記中,例如<code><nowiki><nowiki>|</nowiki></nowiki></code>。 *參數值可以很長。 *參數值中可以包含一對雙方括號,用於鏈接一個條目,但不能含有半個右雙方括號,然後再接半個左雙方括號。例如<nowiki>[[Template:數數]]</nowiki>中的內容是: <nowiki>[[一二{{{1}}}六七]]</nowiki> :調用<nowiki>{{數數|三]]四[[五}}</nowiki>的結果是: ::<nowiki>{{數數|三]]四[[五}}</nowiki> ===命名?還是編號?=== ====編號參數的優點==== #調用模板是不需要參數名和等號,從而節約打字和存儲空間。 #阿拉伯數字是世界性的,在翻譯的時候省事,也可以被不懂中文的人理解。 ====命名參數的優點==== *參數的順序可以變化,模板的參數可以任意添加和修改,而不會對調用模板的頁面產生致命影響。 *參數的意義容易理解。 <!---*some special techniques use the fact that multiple assignments of values to the same parameter in the same template call is allowed and results in the last value being used; this implies that at least one parameter name is specified explicitly in the template call ---> ====命名參數和編號參數混合使用==== 命名參數和編號參數可以混合使用,此時的未命名參數根據位置被編號,命名參數不被編號。 '''例3:'''模板<nowiki>[[Template:又數數]]</nowiki>的內容是 <nowiki>{{{1}}}、{{{2}}}、{{{3}}}</nowiki> <code><nowiki>{{又數數|3=1|2|1=3|4|5|6|7}}</nowiki></code>的結果是 :3、4、5 想想為什麼... ===未賦值並且沒有默認值的參數=== 例如:模板<nowiki>[[Template:再數數]]</nowiki>的內容是 <nowiki>一-{{{1}}}-三-{{{2}}}-五</nowiki> 調用<code><nowiki>{{再數數||}}</nowiki></code>的結果是 :一--三--五 調用<code><nowiki>{{再數數|二|}}</nowiki></code>的結果是 :一-二-三--五 調用<code><nowiki>{{再數數||二}}</nowiki></code>的結果是 :一--三-二-五 調用<code><nowiki>{{再數數|二|{{{1}}}}}</nowiki></code>的結果是 :一-二-三-<nowiki>{{{1}}}</nowiki>-五 調用<code><nowiki>{{再數數|{{{1}}}|四}}</nowiki></code>的結果是 :<nowiki>一-{{{1}}}-三-四-五</nowiki> 調用<code><nowiki>{{再數數|{{{1}}}|{{{2}}}}}</nowiki></code>的結果是 :<nowiki>一-{{{1}}}-三-{{{2}}}-五</nowiki> ===參數賦值中包含參數=== 如果一個參數未賦值,則在三個大括號中的參數名在模板調用是不起參數的作用。如果要它其作用,一定要賦值。 '''例4:''' *模板<nowiki>[[Template:數數1]]</nowiki>的內容是 <nowiki>{{再數數|二}}</nowiki> :調用<code><nowiki>{{數數1|四}}</nowiki></code>的結果是: ::一-二-三-<nowiki>{{{2}}}</nowiki>-五 *模板<nowiki>[[Template:數數2]]</nowiki>的內容是 <nowiki>{{再數數|二|{{{1}}}}}</nowiki> :調用<code><nowiki>{{數數2|四}}</nowiki></code>的結果是: ::一-二-三-四-五 *模板<nowiki>[[Template:數數3]]</nowiki>的內容是 <nowiki>{{再數數|二|2={{{1}}}}}</nowiki> :調用<code><nowiki>{{數數3|四}}</nowiki></code>的結果是: ::一-二-三-四-五 最簡單的參數迭代辦法就是在模板中用同樣的參數名。 '''例5:'''模板<nowiki>[[Template:姓名國籍]]</nowiki>中使用 <nowiki>{{姓名|姓={{{姓}}}|名={{{名}}}}}{{{國籍}}}人。</nowiki> ====進一步的討論==== 像<code><nowiki>{{再數數||四}}</nowiki></code>這樣的調用將空值賦給參數1,而不是沒有賦值,所以結果是 :一--三-四-五 如果我們希望參數1不賦值,則應該將參數2用命名參數形式賦值,如 <nowiki>{{再數數|2=四}}</nowiki> 結果則是 :一-<nowiki>{{{1}}}</nowiki>-三-四-五 如果這樣的參數值被賦給如<code><nowiki><font size></nowiki></code>這樣的標記,會使編碼錯誤,但這些錯誤會被系統(MediaWiki)忽略,而不產生奇怪的結果。 參數「02」和參數「2」是不同的,例如模板<nowiki>[[Template:例5]]</nowiki>的內容是 <nowiki>{{{1}}}{{{2}}}{{{02}}}</nowiki> 調用<code><nowiki>{{例5|3|4|5|6}}</nowiki></code>的結果是 :<nowiki>34{{{02}}}</nowiki> '''注意:'''維基系統名字空間的參數名是不同的,它們是<code><nowiki>$1, $2, ...</nowiki></code>,參見[[Help:名字空間]]。 ==模板頁== 維基系統在生成模板頁面時,實際上相當於一次沒有參數賦值的模板調用,因此如果參數有默認值,將被顯示。例如:模板<nowiki>[[Template:數一數]]</nowiki>的內容是 <nowiki>一二三{{{1|四五六}}}七八九</nowiki> 模板頁面的內容是 :一二三四五六七八九 ===討論頁=== 模板頁面同其他條目頁面是不同的,它的目的不是將知識傳遞給讀者,而僅僅是為系統定義模板。因此,其討論頁跟普通條目頁面的討論頁也不同,主要有兩個功能: *第一部分要解釋模板的作用和相關參數 **最好給出例子,調用模板的形式以及結果。 *第二部分則是普通的對模板的討論。 <!--In complicated cases, "subst:" can be very helpful in the explanation, see below. You can use {{doctl}} for this task.--> '''注意:'''在模板中使用<code><nowiki><noinclude></nowiki></code>標識時要小心!不要在<code><nowiki><noinclude></nowiki></code>之前或者<code><nowiki></noinclude></nowiki></code>之後'''加空行''',否則空行將被當作模板的一部分反映在調用模板的條目中。系統會自動忽略<code><nowiki></noinclude></nowiki></code>之後的單個空行。 ====例6:使用<nowiki><noinclude></nowiki>標識的後果==== 如果在例1中的模板<nowiki>[[Template:姓名]]</nowiki>加入跨語言鏈接 <nowiki>我是{{{姓}}}{{{名}}}。</nowiki> <nowiki><noinclude></nowiki> <nowiki>[[en:Template:Name]]</nowiki> <nowiki></nocinlude></nowiki> 用<code><nowiki>{{姓名國籍|姓=張|名=飛|國籍=蜀國}}</nowiki></code>調用例5中的模板<nowiki>[[Template:姓名國籍]]</nowiki>時,結果是: :我是張飛。 : :蜀國人。 如果希望得到的結果是: :我是張飛。蜀國人。 在<nowiki>[[Template:姓名]]</nowiki>加入跨語言鏈接應該不含有換行: <nowiki>我是{{{姓}}}{{{名}}}。<noinclude>[[en:Template:Name]]</nocinlude></nowiki> '''注意:'''我們推薦您使用後面一種方式使用<nowiki><noinclude></nowiki>標識。 ===模板分類=== 模板也要進行分類,目的是為了更好的整理模板,以便更好的使用和管理模板。模板的分類同條目的分類相似,可以參閱有關條目分類的幫助文件,如[[Project:分類方式]]等,不同之處在於對於模板的分類需要使用<code><nowiki><noinclude></nowiki></code>標識,如果不加<code><nowiki><noinclude></nowiki></code>標識,則不僅模板被分類,所有使用該模板的條目也被分入同一類。 所有模板的根目錄(即分類)是[[:Category:{{SITENAME}}模板]],所有模板分類名最後一定要含有「模板」二字,以區別於普通條目的分類。 ====例7:模板分類方法==== 將例1中的模板<nowiki>[[Template:姓名]分為[[Category:人物模板]]]</nowiki>,需要加入: <nowiki>我是{{{姓}}}{{{名}}}。<noinclude>[[Category:人物模板]]</nocinlude></nowiki> ===標識=== '''注意:'''以下內容只限於模板中使用的情況,在其他名字空間使用的情況請參考相關幫助文擋。 ====<nowiki><noinclude></nowiki>==== 前面已經提到,<code><nowiki><noinclude></nowiki></code>標識的作用是將<code><nowiki><noinclude></nowiki></code>和<code><nowiki></noinclude></nowiki></code>之間的文本加入所在的模板頁中,而不加入調用模板的條目或模板中,針對模板的說明、分類和跨語言連接都可以置於該標識之間。 '''例8:'''針對<nowiki>[[Template:網球男單世界第一]]</nowiki>模板的分類<nowiki>[[:Category:體育模板]]</nowiki>就可以置於<code><nowiki><noinclude></nowiki></code>和<code><nowiki></noinclude></nowiki></code>之間,而對於調用該模板條目的分類<code><nowiki>[[:Category:網球運動員]]</nowiki></code>可以置於標識之外: <nowiki>[[Category:網球運動員]]<noinclude>[[Category:體育模板]]</noinclude></nowiki> ====<nowiki><includeonly></nowiki>==== <code><nowiki><includeonly></nowiki></code>標識的作用跟<code><nowiki><noinclude></nowiki></code>標識的作用正好相反,是將<code><nowiki><includeonly></nowiki></code>和<code><nowiki></includeonly></nowiki></code>之間的文本'''不'''加入所在的模板頁中,而加入調用模板的頁面中。 上面的例8中針對調用該模板的條目的分類<nowiki>[[:Category:網球運動員]]</nowiki>實際上應該置於<code><nowiki><includeonly></nowiki></code>和<code><nowiki></includeonly></nowiki></code>之間: <nowiki><includeonly>[[Category:網球運動員]]</includeonly></nowiki> 這樣,在<nowiki>[[:Category:網球運動員]]</nowiki>分類中就不會出現網球男單世界第一模板了。 ====<nowiki>subst</nowiki>==== '''subst'''的用法是:<code><nowiki>{{subst:模板名}}</nowiki></code>。它的作用是一次性將模板內容編譯成維基文擋,加入到頁面中去,而不是每次顯示頁面的時候調用有關模板。這樣可以按模板當前的形式編輯條目,並使條目免受模板變化的影響,並減輕服務器負擔。 ==作用== 如果想將同一段文本複制到兩個或者多個頁面,我們可以考慮使用模板,但也並不是一定要用模板。如果使用模板,要修改這段文本時,不需要針對每一個頁面進行逐個修改,而只需要修改模板的內容,所有使用該模板的頁面都自動被修改。由於有參數存在,所以模板文本並不需要完全一樣,對於不同頁面,我們可以賦不同值,從而生成不同的文本。模板不僅僅是使用方便,它有時候還可以起到控制頁面統一格式的作用。 模板的一般用法有: *[[:Category:工具模板|工具模板]],例如:[[Template:stub]]標示條目為「小作品」。 *[[:Category:導航模板|導航模板]],用於給讀者提供類似的條目。 *以上幾種的組合。 ==參見== ===中文=== *[[Help:模板入門|模板入門]] *[[Help:模板名字空間|模板名字空間]] [[Category:幫助文檔|MB]]
返回至
使用說明:模板
。
導覽選單
個人工具
登入
命名空間
說明頁面
討論
變體
檢視
閱讀
檢視原始碼
檢視歷史
更多
搜尋
導覽
首頁
近期變動
隨機頁面
使用說明
工具箱
連結至此的頁面
相關頁面修訂記錄
特殊頁面
頁面資訊