維基百科討論:模板指導
模板編輯問題
[編輯]- 關於我在模板中使用的顔色問題,主要因爲我編輯的模板內容較複雜,行與列列內容內容不同,爲了看起來明瞭,所以冠以顔色便於瀏覽,特別對於有註解的內容更是如此,至於簡單的模板可以不使用顔色。
- 關於模板的轉換和編輯建議,我的看法是使用FrontPage很好,容易轉換和比較通用。雖然文件的資料量很大,但格式統一,修改和遍及容易。Cncs|(對話) 01:52 2006年2月15日 (UTC)
參見:{{拼音系統比較表}}
政策提議:避免使用嵌套模板
[編輯]- 此文由en:WP:AUM翻譯而來,可能有不準確之處,請指正。
模板是一些能夠被引用的文本,它能夠實現一處更改,處處變化的功能。本文中,術語「模板嵌套」是指在一個模板中使用其他的模板或者這種行為。
儘管嵌套能帶來方便,但是可能由於其複雜的語法結構給新人帶來困惑。嵌套也可能用來搞破壞和阻礙維護。本文即對這些問題進行討論。
缺點
[編輯]複雜度
[編輯]嵌套模板對於普通編輯相當複雜。特別是一些非技術領域的編輯想修改嵌套模板,就顯得十分困難。結果就是正常的維護與編輯的不到保證,而一些誤操作卻會造成伺服器的不必要的負擔。因此在編寫模板時應注意複雜度及相關說明。
模板連結
[編輯]當頁面被編輯後,頁面上被使用的模板就被列為「模板連結」,在頁面下方,並儲存在數據庫里。不過不光是直接引用的模板會列在下方,那些間接引用的模板也會。
嵌套模板生成的模板連結常常會給模板的維護帶來麻煩。比如一個模板template:a被用於若干頁面,然後在template:a中引用template:b,這時,所有的條目級別的模板連結都不會更新出現template:b,直到條目被編輯或purge。因此模板連結常常是不可信的,這樣維護工作便增加了困難,特別是bot的工作。
破壞
[編輯]任何具有高使用數的模板都是優秀的拒絕服務攻擊工具,因為只要對它稍作修改,伺服器便會更新大量緩存,可能造成伺服器的嚴重負擔。
所以,那些被廣泛的直接或間接引用的模板應該受到高度重視。一個多重嵌套的模板中可能具有破壞性的內容,但令人難以覺察。
保護
[編輯]正如前文所述,由於有潛在的破壞或伺服器負擔問題,一些高使用數模板應該被保護,避免不必要的麻煩。(需要準確翻譯)If the meta-template is rarely changed, then any daughter templates probably don't change either, so it may make sense to move the formatting into the daughter templates. This was done with stub templates, which now no longer use a meta-template scheme.
條件分支技術
[編輯]使用嵌套模板最普遍的原因是給模板增加條件分支功能,即選擇性顯示或隱藏。目前,MediaWiki只支持一種條件機制,即默認參數(參見meta:Help:Parameter default)能夠顯示出預設的字符當此參數未賦值時。還有一些其他高級方式來實現條件分支技術,不過各有各的缺點:
- Template:Qif
- 空字符串參數
- Template:Switch
維基媒體的開發人員表示,他們有興趣開發出一些基本的條件語句供編輯使用,不過何時能夠實現仍是未知數。對條件模板的使用應當特別注意儘量避免,首先因為它們結構複雜難以閱讀,其次他們並不是最終的和最好的實現條件分支技術的解決方案。
另闢蹊徑
[編輯]- 設計,製作說明,然後才實現 ——在編寫模板之前應該設計好算法,並認真思考其正確性、可讀性、優化性,然後在模板的對話頁製作說明書(可以通過template:doctu實現),然後再寫入模板。
- 使用CSS ——有一些模板僅只用來呈現一些特定的格式,比如尺寸、位置、顏色等等。如果是這樣,可以通過CSS來實現這些功能,以避免模板造成的緩存負擔。
- 使用列表以代替模板和分類 ——有一些模板和分類被用於幫助用戶尋找特定類別的條目。對於這種情況,使用列表將會更好,並可以加上評論以及排序。而模板和分類,特別是分類,給伺服器帶來許多負擔。
- 使用subst
- MediaWiki需要開發人員 ——只有開發人員才能更好地、更根本地解決以上問題。
還是想用?
[編輯]如果你想使用嵌套模板,應事先思考一下以下問題:
- 這個模板的最終產品對維基百科是真正有用,還是只是裝飾性的?
- 這個模板是否會帶來嚴重的伺服器負擔?
- 目標效果是否只能通過模板嵌套來實現?如果有其他方法,而且沒有更多的麻煩,這種嵌套模板應避免使用。
- 隨後的編輯能夠理解這個模板嗎?
沒有好的理由,模板嵌套應被避免使用。
參見
[編輯]Upssdr - t 08:32 2006年3月11日 (UTC)
- 翻譯的很不錯,是不是打算貼出來作為維基指南呢?我認為可以,但應該進行一段時間的討論。還有,subst的用法應該簡單介紹一下,或者請讀者參見Help:模板。-無名無形 02:05:41 2006年3月13日 (UTC)
- Upssdr翻譯的這篇是由元維基來的,個人認為不必討論了,可以在具體的詞語上斟酌。比如寫的高使用數模板一詞最好為高使用率模板。如大家同意,移到wikipedia:避免使用嵌套模板怎麼樣?— fdcn talk 2006年03月14日07:54 (UTC+8 15:54)
- 貼出來可以,但要加一個Template:proposed模板。-無名無形 12:30:05 2006年3月14日 (UTC)
- 注意,這個提議在en是有爭議的。Mediawiki的主要開發人員Brion Vibber說:
- I have to date refused requests to advocate the AUM "policy" based on server load because nobody's yet produced any evidence for this server load claim. While in a basic sense, calling two templates will involve twice as many template data loads as calling one, I've not seen any indication that this is significantly burdensome at realistic levels. If you can get James to produce a solid test for it, we'll talk about it. --Brion 02:12, 21 January 2006 (UTC) ([1], Line 639)
- Generally, you should not worry much about little things like templates and "server load" at a policy level. If they're expensive, we'll either fix it or restrict it at a technical level; that's our responsibility. --Brion 01:01, 21 January 2006 (UTC) ([2], Line 582)
- "Policy" shouldn't really concern itself with server load except in the most extreme of cases; keeping things tuned to provide what the user base needs is our job. --Brion 01:01, 21 January 2006 (UTC) ([3], Line 627)
Upssdr - t 08:20 2006年3月18日 (UTC)
- Brion的理由成立,而且充分。所以如果有這個政策提議,我會因為上述理由而投反對票。-無名無形 22:37:22 2006年3月19日 (UTC)
模板標準化
[編輯]目前越來越有這種需要了。可以看看en:WP:TS。Upssdr - t 09:21 2006年4月22日 (UTC)
但是標準化不是只要該用DIV排版就算的了,XHTML標準並沒有廢除Table,而且也沒提及硬性廢除Table用作「排版」用途,只是不建議這樣做,更沒有說不能利用Table展示應該用表格展現出來的內容
基於各瀏覽器對CSS標準的支援程度的不同(即使號稱真正支援CSS2.0的Firefox也是),如果沒必要就不要濫用DIV標簽--翔風Syaoran☆有事找我*^-^* 08:55 2006年5月7日 (UTC)
- 從目前模板的代碼編寫情況來看,table被濫用的情況很多,比如各類小作品模板完全沒有應用table的必要卻應用了。反而div沒有得到用效的使用。其實,對基本CSS的支持,各瀏覽器還是相同的,為了維基能夠輸入明晰簡潔代碼並體現語義,一定程度的標準化還是必要的。— fdcn talk 2006年05月23日06:33 (UTC+8 14:33)
移入完毕
模板指引
[編輯]針對近期模板出現的一些東西,比如這裏和這裏,我寫了一個Wikipedia:模板編輯使用指引,請大家表達意見。
暫時並不申請成為正式指引,希望能補充一些日常應注意的事項。— fdcn talk 2007年4月2日22:24 (UTC+8 4月3日06:24)
- 我增加了兩個段落:「導航模板」和「信息框模板」,建議導航模板不要過大(20個內容以內),不要包含不存在的連結(此類連結可以置於列表中),以及放置位置的規定;信息框模板建議隱藏空信息。另外,請問{{小作品}}{{admin}}{{FA}}此類模板應該叫什麼模板?「標記模板」?-下一次登錄 於2007年4月3日01:16留言
關於模板中應用自動產生日期或簽名
[編輯]以下內容移動自互助客棧(技術),新留言請置於框外。--Ellery 02:48 2007年4月16日 (UTC)
一段時間以來,看到過大量模板都被維基人試圖用Help:魔術字來產生自動的日期、簽名等,卻沒有注意模板本身有很多不是用於subst:來應用的。
我提醒一下,在對模板作這類編輯時變量值進行固化的嘗試時,先要確定模板本身是否要求以subst:方式運用。如否的話,目前的技術不可能做到這一點的。請取消這類嘗試。所有非確定的魔術字、簽名的~~~等都在此列。— fdcn talk 2007年4月2日12:29 (UTC+8 4月2日20:29)
- 其中的一個模板我提出來討論一下,以後可能涉及的不少。template:cod模板原先一直定位於用subst:語法,後來有人根據類似模板的一個功能進行了修改,結果我看到大量沒有用subst:的{{cod}},這已是一個即成現實了。但非subst:用法卻有了一個錯誤,在無參數情況下並非自動產生當時的日期,而是一個每天都在變化的日期,這已無意義了。
- 在修改時很是費事,即要保證有日期參數的現有已應用頁面的{{cod|月|日}},又要保證產生自動日期的{{subst:cod}},這個模板最終變成了一個怪胎,產生的代碼極不優雅。另一個類似情況存在問題的template:importance模板我終於沒有去動它。
- 這裏我希望把功能區別開用兩個模板分別用於subst:和非subst:方式,鑑於{{cod|月|日}}已被應用的情況,個人建議把重定向template:substub變成僅支持subst的{{subst:substub}},原template:cod僅支持{{cod}}。否則現在的{{subst:cod}}產生出來的替代代碼太雜亂了。不知大家怎麼看?— fdcn talk 2007年4月2日20:24 (UTC+8 4月3日04:24)
- Fdcn, 分開當然最簡單,但以後要同時維護、同步兩頁。。。亦可考慮m:Help:Substitution#Optional substitution
{{ {{{Subst|}}}模板}}。雖然要代入時較麻煩(要加參量 subst=subst:)但一般用subst:的都是有經驗的維基人。---Hillgentleman | 書 | 2007年4月2日( 一 ), 23時16分02秒. - 簡單的說:如果{{cod}}不加參數也不加subst,那麼不管怎麼改,cod模板都是不能用的。這種情況下可以考慮建立「標記日期不明的小小作品」類別。-下一次登錄 於2007年4月3日01:25留言
- Fdcn, 分開當然最簡單,但以後要同時維護、同步兩頁。。。亦可考慮m:Help:Substitution#Optional substitution
- 用在條目中的臨時模板,用subst:的話,到時要移除較麻煩。我認為這種須輸入時間的模板應該作個編輯按鈕,按了之後自動帶入今天的日期。--Jnlin(討論) 05:58 2007年4月4日 (UTC)
沒有被使用的模板
[編輯]最近相當多的模板以「沒有被使用」的理由提刪。我這裏並非反對提刪行為,在不明了模板用途並且模板沒有被使用時,可能會是某些試驗和塗鴉的遺留物,通過提刪進行清理並無不可。比如這個模板。
但我反對以「沒有被使用」做為提刪理由,我認為應當用「沒有潛在的用途」、「已有相同功能模板」、「沒有可用性(比如翻譯沒完成)」等做為理由。
「沒有被使用」的模板未必沒有用處,比如Template:DRitem、Template:DRItemNotice、Template:STCRequest、Template:STCRequestInstruction1等沒有被「使用」。當然這例子不恰當,它們在真實使用着的,請看另外一些例子:Wikipedia:巴別、Wikipedia:用戶框/時間、Wikipedia:用戶框/地域下的絕大多數Wikipedia:用戶框模板,極有可能其中一些永遠用不上,但不宜刪除。再如Category:邏輯模板、Category:日期計算模板下的一些模板構成一個相對完整的模板群,它們中的一些也許目前就用不上,但並非人人會建立這樣的模板,如果刪除,需要它的維基人可能會受限制。
我以其中被提刪的Template:Boolnand為例,原先它是使用在Template:Infobox Language中,為了優化我直接改寫成擴展模板形式,現在因不被使用提刪,如果想用Template:Boolnand功能建立模板的其它維基人可能面臨困難。同樣,{{#if:{{Boolne|A|B}|值}}比{#ifeq:A|B||值}}更易讓人理解。
其實,沒有使用並不會對目前的維基帶來多大的負面影響,對有潛在應用的不妨寬容一些。比如提刪的Template:Bhutan模板,作者顯然花了心思進行排版和翻譯,我們不能排除將來中文維基會建立這些行政區劃,先刪除再重建是個重複勞動。我想,對沒有被使用的模板以其它更有效的理由提刪、保持一份寬容可能更好。— fdcn talk 2007年4月29日21:40 (UTC+8 4月30日05:40)
- 僅就目前提刪的幾個模板的一些看法:
- Category:邏輯模板正在被Help:模板擴展語法取代,2006年4月23日就被提刪過了,除了個別技術高手,這幾個沒有使用的模板確實是「沒有潛在的用途」、「已有相同功能模板」
- 作為一個沒有使用的模板如Template:Bhutan,更有可能的結果是埋沒在眾多模板之中,後人建立另一個相同功能的模板而不使用它;提刪之後欣然發現不丹行政區劃的條目建立了,並使用了這個模板,提刪理由消失
- —Isnow 2007年4月30日 (一) 07:19 (UTC)
- Isnow,我表達的主要是「沒有被使用」這一理由不妥並擔憂不必要的趨勢,至於具體的模板其實我在刪除投票中並沒有參與,擔心自己的視角。我想主要的是,避免以後用「沒有使用」做為理由。我們也不宜以「另建模板而不是使用它」的假設來說明提刪有用途模板的正當,我希望這一點上應當以儘量不刪除為好。— fdcn talk 2007年4月30日07:53 (UTC+8 4月30日15:53)
- 我也不想刪除某些模板的,但若沒有人跟進改進和充實相關內容,就不適合留在維基了。—Isnow 2007年4月30日 (一) 09:35 (UTC)
- Isnow,我表達的主要是「沒有被使用」這一理由不妥並擔憂不必要的趨勢,至於具體的模板其實我在刪除投票中並沒有參與,擔心自己的視角。我想主要的是,避免以後用「沒有使用」做為理由。我們也不宜以「另建模板而不是使用它」的假設來說明提刪有用途模板的正當,我希望這一點上應當以儘量不刪除為好。— fdcn talk 2007年4月30日07:53 (UTC+8 4月30日15:53)
- 模板的問題主要是檢索不便,因此沒有使用的話,絕大多數人不知道有該模板存在,往往也會製造相似功能或目的的template(中文版由於大部分都複製自英文版,因此問題還不是很大)。因此如何利用是一個需要解決的問題--百無一用是書生 (☎) 2007年4月30日 (一) 15:31 (UTC)
- 書生說的太對了,現在沒有一個辦法能夠查詢到模板,所以有時候想用了往往就自己去做一個,而不能夠靠搜索得到。我覺得可以讓以後做的模板都歸入相應的模板catagory。至少能夠方便一點查找。—人神之間擺哈龍門陣 2007年5月1日 (二) 10:26 (UTC)
- 有相應的分類計劃,參見Category:維基百科模板,只是開始不久,大家還沒有養成習慣。-下一次登錄 2007年5月8日 (二) 04:52 (UTC)
- 書生說的太對了,現在沒有一個辦法能夠查詢到模板,所以有時候想用了往往就自己去做一個,而不能夠靠搜索得到。我覺得可以讓以後做的模板都歸入相應的模板catagory。至少能夠方便一點查找。—人神之間擺哈龍門陣 2007年5月1日 (二) 10:26 (UTC)
大型模板填寫樣式的規範化
[編輯]填寫樣式甲型 | 填寫樣式乙型 |
---|---|
{{模板名| |
{{模板名 |
目前infobox等大型模板的填寫樣式主要有右列兩種,主要差別在於垂直分隔線|
在列末或列首。
我個人認為樣式乙型比樣式甲型易於閱讀,而且樣式甲型有兩個問題:
- 最後一個參數(即例中的參數3)後面的垂直分隔線是不必要的,但往往由於模板說明撰寫者及模板使用者的粗心或不了解而誤添加。
- 垂直分隔線置於列末常常發生被誤刪的情況。又或者為了區別參數與垂直分隔線而添加許多空白。
另外有些人為了對齊增加層次感而喜歡在列首加空白(可說是一種程式員的習慣),但我認為那是不必要的。而且雖然一個空白才佔據1byte的容量,但累積起來也是頗為可觀的數字。
基於這些理由,提議:
- 參數填寫採用樣式乙型。
- 列首不要加入空白
對齊。
以上。--百楽兎 2009年6月8日 (一) 06:04 (UTC)
- 大部分的參數填寫已採用乙型,我也支持使用乙型。但是參數的補白可能需要,編輯時能比較方便罷了。—Fantasticfears (留言) 2009年6月8日 (一) 06:13 (UTC)
- ( ✓ )同意、(+)支持使用乙型。——03 - ☭ -
❂2009年6月8日 (一) 06:26 (UTC)- 贊同把管道符號放在行首,但是應該允許使用空格進行對齊。不然按您這麼說回車和空格一樣是多餘的了—Ben.MQ 2009年6月8日 (一) 06:43 (UTC)
- 回車每列只有一次,空白每列是好幾個,比例上不能相提並論。「為了對齊而在列首加空白」是我用詞不正確,正確來說是為了增加層次感。加入層次感是否會比較方便呢?我個人覺得沒有效果,故曰多餘。--百楽兎 2009年6月8日 (一) 06:53 (UTC)
- 贊同把管道符號放在行首,但是應該允許使用空格進行對齊。不然按您這麼說回車和空格一樣是多餘的了—Ben.MQ 2009年6月8日 (一) 06:43 (UTC)
- ( ✓ )同意、(+)支持使用乙型。——03 - ☭ -
- 如果樣式乙型能成為共識,希望有人能開發機械人來執行規範工作。--百楽兎 2009年6月8日 (一) 06:56 (UTC)
- 機械人跑這樣的程序也同樣是浪費資源的。就好比英文維基百科不允許將image:改成File:的機械人運行一樣—Ben.MQ 2009年6月9日 (二) 01:10 (UTC)
- 對於某些參數很多而又分組的模版,例如{{ArticleHistory}}如果閣下維護過就應該有體會,通過空格和換行將四個參數一組並對其,看起來一目了然,既不會出錯也便於他人維護—Ben.MQ 2009年6月9日 (二) 04:58 (UTC)
- 列首沒加空白時看起來就夠整齊了。--百楽兎 2009年6月9日 (二) 08:20 (UTC)
- 總之在下的意見是,管道符號應該採用乙型,但不應該阻止空格「縮進」的使用。—Ben.MQ 2009年6月9日 (二) 09:46 (UTC)
- 對於某些參數很多而又分組的模版,例如{{ArticleHistory}}如果閣下維護過就應該有體會,通過空格和換行將四個參數一組並對其,看起來一目了然,既不會出錯也便於他人維護—Ben.MQ 2009年6月9日 (二) 04:58 (UTC)
- 個人也喜愛後者......不過,個人有些時候會因為懶惰(直接複製過來再改參數),還是會使用到前者......。-Alberth2-汪汪 2009年6月8日 (一) 07:22 (UTC)
- 機械人跑這樣的程序也同樣是浪費資源的。就好比英文維基百科不允許將image:改成File:的機械人運行一樣—Ben.MQ 2009年6月9日 (二) 01:10 (UTC)
- 如果樣式乙型能成為共識,希望有人能開發機械人來執行規範工作。--百楽兎 2009年6月8日 (一) 06:56 (UTC)
我也習慣使用乙型的方式,寫模板說明時也是附上乙型的空模板,主要是避免誤刪和增加在編輯介面的閱讀性。建議要填參數的模板(主要是infobox類)都採用這種方式,方便其他人修改。至於是否用空格對齊我沒意見,基本上分別不大,但我習慣上都在等號兩邊加空格,想讓參數名稱跟輸入數值分隔遠一點。—Altt311 (留言) 2009年6月8日 (一) 08:23 (UTC)
- 當然是乙型好--onsf (留言) 2009年6月8日 (一) 09:24 (UTC)
- 有層次感在編寫時可以一目了然,為何不好?寫代碼的時候同樣也講究層次感的。--菲菇@維基食用菌協會 2009年6月8日 (一) 10:05 (UTC)
- (+)支持乙型!一向用乙型啊。一目了然。YunHuBuXi 2009年6月8日 (一) 11:56 (UTC)
- (!)意見:在下認為:在條目裏面使用的模板如果有三個以上的參數,或者有任意一個參數的字符數大於20個字符,使用乙型的寫法會比較好。但是,如果模板內部使用了比較複雜的結構,應當允許編寫模板的維基人適當加入空格增加代碼的可讀性。雖然使用空格會浪費存儲空間,但是可能會比較方便其他維基人對模板的維護。—小周(XiaoZhou)(留言) 2009年6月8日 (一) 18:41 (UTC)
- (+)支持乙型,一目了然,結構清晰,而且還是既成事實。—Pagan (留言) 2009年6月9日 (二) 01:25 (UTC)
- (!)意見:對於來源的幾個模板,屬於例外吧。—Fantasticfears (留言) 2009年6月9日 (二) 01:44 (UTC)
- (+)支持乙型,結構清晰,好模仿與理解,特別適合入門者。說句題外話,中文條目目前模板實在太多,建議有心者合併一部分。—cncs (留言) 2009年6月9日 12:38 (UTC+8)
- (+)支持使用乙型,1容易理解,2避免編輯參數時意外刪除「|」。-小為 (留言) 2009年6月9日 (二) 06:00 (UTC)
- 先問各位一個問題,倘此題達成共識,這是意味着會成為統一做法(鼓勵)、指引還是方針?—LUFC~~Marching on Together 2009年6月9日 (二) 11:27 (UTC)
- (:)回應:我認為最多也只能成為指引吧,不太想到有甚麼強烈的理據使這個規定能成為方針—Altt311 (留言) 2009年6月9日 (二) 16:10 (UTC)
- (+)支持乙型,可以用機械人來跑一下。—Dingar (留言) 2009年6月10日 (三) 04:01 (UTC)
- (+)支持乙型成為指引而不是方針。--William915(與我討論) 2009年6月10日 (三) 04:32 (UTC)
- (+)支持成為指引。—Fantasticfears (留言) 2009年6月11日 (四) 00:24 (UTC)
- (+)支持乙型成為指引,但(-)反對成為方針或以機械人修改,畢竟不同條目有不同情況,無必要統一。—THIS IS charlie (留言) 2009年6月11日 (四) 06:01 (UTC)
- 補充,(-)反對 限制對齊方式。—THIS IS charlie (留言) 2009年6月12日 (五) 16:49 (UTC)
簡單的模板可以考慮統一一下格式,但反對對嵌套其他模板的複雜模板也要求去除前方的空白,比如{{Chembox new}},原因是去除空白之後的模板不美觀,而且沒有層次感,難以辨認。—Choij (留言) 2009年6月11日 (四) 06:12 (UTC)
(+)支持乙型成為指引,無必要開動機械人,有機會編輯條目時才一併更改格式就好。但我個人喜歡加入空白以增加層次感,而且這樣確實可以幫助理解和減少出錯,所以(-)反對「列首不要加入空白」 —Quest for Truth (留言) 2009年6月11日 (四) 18:53 (UTC)
(+)支持乙型成為指引、(-)反對用機械人、(-)反對連空白或對齊都要管,作範例則可。—Tlrmq (留言) 2009年6月12日 (五) 15:42 (UTC)
(!)意見:機械人可以按引用模板來作修改嗎?如果技術上可行,可以提報模板形式,以機械人協助修改。—Altt311 (留言) 2009年6月14日 (日) 05:48 (UTC)
- 討論快一週了,基本上結論就是採用乙型樣式作為編輯的共識。至於要不要用人工或出動機械人去修改使用甲型樣式的條目,有志者自為之。這個討論可以close了。--百楽兎 2009年6月14日 (日) 13:57 (UTC)
- 那就close吧,麻煩百楽兎根據共識修改WP:模板指引。--William915(與我討論) 2009年6月14日 (日) 14:11 (UTC)
- 不用了,作為一個編輯共識存檔起來備查即可。--百楽兎 2009年6月14日 (日) 14:20 (UTC)
- 完成,加一句而已,無傷大雅。—Altt311 (留言) 2009年6月14日 (日) 19:16 (UTC)