說明:模板
模板是維基系統的特色。通過藉助模板,能避免某些重複性的工作,還可以簡化代碼、便於維護,並能得到更複雜的效果。
模板的使用
編輯簡單模板
編輯對於一些較簡單的模板,輸入
{{模板名}}
等類似格式的代碼,即可在網頁上的相應位置得到預設的內容。
{{User zh}}
即得到:
含參模板
編輯模板並非僅能簡單挪用預設的內容。通過參數,模板可根據具體需求來呈現出不同的內容。
編號參數
編輯{{模板名|<1號參數>|<2號參數>|<3號參數>}}
如上所示,在豎線|
後輸入參數的值後,再添加|
追加下一號參數,以此類推。
大多數模板都能用這種參數。如某書某章節完成了大概一半多,則可懸掛開發階段模板來標註:
{{stage|75%}}
命名參數
編輯{{模板名|参数1=<参数值>|参数2=<参数值>|参数3=<参数值>}}
某些參數有其特定的名稱,如上的例子中
{{模板名}}
模板的的三個參數從左到右依次叫「參數1,參數2,參數3」,並在參數名後加等號輸入該參數的值。
{{模板名|参数2=<参数值>|参数1=<参数值>|参数3=<参数值>}}
體會它與編號參數的不同。上例與第一個例子是等效的。
事實上前面提過的編號參數也有它們的名稱。顧名思義,它們的名稱是編號。
如
{{模板名|<1號參數>|<2號參數>|<3號參數>}}
與
{{模板名|1=<1號參數>|2=<2號參數>|3=<3號參數>}}
也是等效的。
通過視覺化編輯器使用模板
編輯在視覺化編輯器中使用模板很簡單,您只需在「插入」欄選擇「模板」,就會出現一個框,在裡面輸入要插入的模板名稱,點擊「新增模板」,之後會提示輸入各模板參數。全部輸入後,點擊「插入」,模板即被插入文中。
如果需要修改模板,僅需點擊模板所顯示的內容,再點擊「編輯」,之前的對話框就會再次出現,可以修改模板參數或刪除模板。
模板的編寫
編輯概述
編輯維基百科的一名用戶曾在IRC上提過他是通過觀察原始碼中花括號的對數而學會模板參數的用法的;所以不管怎樣,通過學習其他人寫的代碼並加以實踐總是一種有效的自學方法。要練習編寫模板,請在模板:沙盒、模板:沙盒2、模板:沙盒3和閣下的用戶頁及其子頁面中進行。
模板的原理是將模板頁中的內容插入到引用模板的頁面的相應位置中。如圖所示:
|
(被引用模板的模板頁內容) |
{{模板名}} |
(引用該模板頁面的原始碼) |
|
(引用該模板的頁面) |
而事實上,在兩對花括號{{ }}
中加入任何頁面的名稱後,都能在相應位置中引用其內容。但仍不建議(或不允許)在主名字空間中創建模板性質的內容,原因是:
- 為了方便分類與管理;
在以下條件下可以使用這種用法:
- 略。
參數
編輯前面提過,參數可使模板更具靈活性,大多數模板都使用了參數。
在模板頁中,參數由三對花括號{{{}}}
及其中的參數組成。使用模板時,參數的值會插入在模板中參數被定義到的位置。
{{{參數二}}} {{{參數一}}} {{{參數三}}} |
(被引用模板的模板頁內容) |
|
(引用該模板頁面的原始碼) |
□ △ ○ |
(引用該模板的頁面) |
請注意,第一個示例中參數是按「二、一、三」的順序排列的。
當然,參數也可被定義到多個位置上:
{{{參數一}}} {{{參數一}}} {{{參數一}}} |
(被引用模板的模板頁內容) |
{{模板名|參數一=⊙}} |
(引用該模板頁面的原始碼) |
⊙ ⊙ ⊙ |
(引用該模版的頁面) |
我們在 模板的使用 那一部分說過編號參數是種特殊的命名參數,因此我們還可以這樣:
{{{1}}} {{{2}}} {{{3}}} |
(被引用模板的模板頁內容) |
{{模板名|△|□|○}} |
(引用該模板頁面的原始碼) |
△ □ ○ |
(引用該模板的頁面) |
默認值
編輯當未給出某個參數的值時,該參數返回的值是類似於{{{参数名}}}
的字符,以提醒用戶補加參數,如:
{{{1}}} {{{2}}} {{{3}}} |
(被引用模板的模板頁內容) |
{{模板名|□}} |
(引用該模板頁面的原始碼) |
□ {{{2}}} {{{3}}} |
(引用該模板的頁面) |
我們可以通過{{{参数名|默认值}}}
等類似格式的代碼控制參數的默認輸出值。類似之前的例子:
{{{1|◇}}} {{{2|◇}}} {{{3|◇}}} |
(被引用模板的模板頁內容) |
{{模板名|□}} |
(引用該模板頁面的原始碼) |
□ ◇ ◇ |
(引用該模板的頁面) |
常見問題
編輯Q:模板參數的值可以是另一個模板嗎?
A:當然可以。而且那個模板也會被正常地調用。
Q:如果參數的值中含等號=
等維基模板代碼使用的符號時,則會發生混亂。此時該怎麼辦呢?
A:我們可以使用以下模板來代表這些符號,以期得到我們想要的效果。
模板 | {{((}} | {{))}} | {{=}} |
符號 | {{ | }} | = |
Q:模板中可以使用其他模板嗎?
A:可以。有許多模板是專門用於模板之中的,比如{{Userbox}}等;另一些模板有其子模板以完整地發揮其功能,如{{chem}}等。
Q:模板中能引用自身嗎?
A:也可以。但是只會循環引用一次,而不會無限循環引用下去。
Q:模板參數的名稱可以是其他模板或參數嗎?
A:可以,如果花括號的對數正確的話。
Q:我有其他問題怎麼辦?
A:閣下可在模板:沙盒或其它上面提過的可進行測試的頁面試驗您的想法,或在維基教科書:互助客棧反饋您的問題。我們相信大多數維基人是熱心的,但要注意您的問題不一定有答覆。
高級
編輯模板頁
編輯若模板頁中的內容只有模板本身的話,維基系統生成的模板頁的內容相當於調用一次沒有使用過參數的模板。這方面的一個例子是{{食譜}}。
{|align="right" style="border: 1px solid lightgray" width="200px" |- |align="center"|<big>'''{{{菜名}}}'''</big> |- |align="center" style="align:center;background:green;color:white"|'''菜系''' |- |align="center"|{{{菜系}}} |- |align="center" style="background: red;color: white"|'''主料''' |- |align="center"|{{{主料}}} |- |align="center" style="background:orange;color:white"|'''辅料''' |- |align="center"|{{{辅料}}} |- |align="center" style="background:gray;color:white"|'''厨具''' |- |align="center"|{{{厨具}}} |- |align="center" style="background:blue;color:white"|'''特色''' |- |align="center"|{{{特色}}} |} </div> |
({{食譜}}的原始碼) |
| |||||||||||
({{食譜}}的模板頁) |
對於不是太複雜的模板,這種模板頁即能提供足夠多的關於模板如何使用的信息。你能通過上面的學習獲得{{食譜}}的用法嗎?