跳转到内容

英文维基 | 中文维基 | 日文维基 | 草榴社区

维基百科讨论:模板指导

页面内容不支持其他语言。
维基百科,自由的百科全书

Category talk:維基百科模板移入

模板編輯問題

[编辑]
  • 關於我在模板中使用的顔色問題,主要因爲我編輯的模板內容較複雜,行與列列內容內容不同,爲了看起來明瞭,所以冠以顔色便於瀏覽,特別對於有注解的內容更是如此,至於簡單的模板可以不使用顔色。
  • 關於模板的轉換和編輯建議,我的看法是使用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)能够显示出预设的字符当此参数未赋值时。还有一些其他高级方式来实现条件分支技术,不过各有各的缺点:

维基媒体的开发人员表示,他们有兴趣开发出一些基本的条件语句供编辑使用,不过何时能够实现仍是未知数。对条件模板的使用应当特别注意尽量避免,首先因为它们结构复杂难以阅读,其次他们并不是最终的和最好的实现条件分支技术的解决方案。

另辟蹊径

[编辑]
  1. 设计,制作说明,然后才实现 ——在编写模板之前应该设计好算法,并认真思考其正确性、可读性、优化性,然后在模板的对话页制作说明书(可以通过template:doctu实现),然后再写入模板。
  2. 使用CSS ——有一些模板仅只用来呈现一些特定的格式,比如尺寸、位置、颜色等等。如果是这样,可以通过CSS来实现这些功能,以避免模板造成的缓存负担。
  3. 使用列表以代替模板和分类 ——有一些模板和分类被用于帮助用户寻找特定类别的条目。对于这种情况,使用列表将会更好,并可以加上评论以及排序。而模板和分类,特别是分类,给服务器带来许多负担。
  4. 使用subst
  5. MediaWiki需要开发人员 ——只有开发人员才能更好地、更根本地解决以上问题。

还是想用?

[编辑]

如果你想使用嵌套模板,应事先思考一下以下问题:

  1. 这个模板的最终产品对维基百科是真正有用,还是只是装饰性的?
  2. 这个模板是否会带来严重的服务器负担?
  3. 目标效果是否只能通过模板嵌套来实现?如果有其他方法,而且没有更多的麻烦,这种嵌套模板应避免使用。
  4. 随后的编辑能够理解这个模板吗?

没有好的理由,模板嵌套应被避免使用。

参见

[编辑]

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:TSUpssdr - 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秒.
    這個我已考慮過,對使用者而言不太可行。— fdcn  talk  2007年4月2日23:50 (UTC+8 4月3日07:50)
  • 简单的说:如果{{cod}}不加参数也不加subst,那么不管怎么改,cod模板都是不能用的。这种情况下可以考虑建立“标记日期不明的小小作品”类别。-下一次登录 2007年4月3日01:25留言
    现在的问题不是cod工作错误,而是代码太差不利维护。判断日期不明(不加参数也不加subst)又要一长串代码。不支持分开的话,我得再考虑用子页面方式能不能解决了。— fdcn  talk  2007年4月3日02:04 (UTC+8 4月3日10:04)
用在條目中的臨時模板,用subst:的話,到時要移除較麻煩。我認為這種須輸入時間的模板應該作個編輯按鈕,按了之後自動帶入今天的日期。--Jnlin討論) 05:58 2007年4月4日 (UTC)
今天日期的按鈕肯定會增加。不過,針對這一類問題,參數自動化會有很多現實情形,不可能一一做按鈕。我已有一個相應的解決辦法了,包括對上面的cod模板。今天晚些時候我有時間再來這裡寫上。— fdcn  talk  2007年4月6日07:48 (UTC+8 4月6日15:48)

沒有被使用的模板

[编辑]

最近相當多的模板以“沒有被使用”的理由提刪。我這裡並非反對提刪行為,在不明了模板用途並且模板沒有被使用時,可能會是某些試驗和塗鴉的遺留物,通過提刪進行清理並無不可。比如這個模板

但我反對以“沒有被使用”做為提刪理由,我認為應當用“沒有潛在的用途”、“已有相同功能模板”、“沒有可用性(比如翻譯沒完成)”等做為理由。

“沒有被使用”的模板未必沒有用處,比如Template:DRitemTemplate:DRItemNoticeTemplate:STCRequestTemplate: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)[回复]
模板的问题主要是检索不便,因此没有使用的话,绝大多数人不知道有该模板存在,往往也会制造相似功能或目的的template(中文版由于大部分都复制自英文版,因此问题还不是很大)。因此如何利用是一个需要解决的问题--百無一用是書生 () 2007年4月30日 (一) 15:31 (UTC)[回复]
书生说的太对了,现在没有一个办法能够查询到模板,所以有时候想用了往往就自己去做一个,而不能够靠搜索得到。我觉得可以让以后做的模板都归入相应的模板catagory。至少能够方便一点查找。—人神之间摆哈龙门阵 2007年5月1日 (二) 10:26 (UTC)[回复]
有相应的分类计划,参见Category:维基百科模板,只是开始不久,大家还没有养成习惯。-下一次登录 2007年5月8日 (二) 04:52 (UTC)[回复]

大型模板填寫樣式的規範化

[编辑]
填寫樣式甲型 填寫樣式乙型

{{模板名|
  參數1=AB|
  參數2=BCDE|
  參數3=CDE|
}}

{{模板名
|參數1=AB
|參數2=BCDE
|參數3=CDE
}}

目前infobox等大型模板的填寫樣式主要有右列兩種,主要差別在於垂直分隔線|在列末或列首。
我個人認為樣式乙型比樣式甲型易於閱讀,而且樣式甲型有兩個問題:

  1. 最後一個參數(即例中的參數3)後面的垂直分隔線是不必要的,但往往由於模板說明撰寫者及模板使用者的粗心或不了解而誤添加。
  2. 垂直分隔線置於列末常常發生被誤刪的情況。又或者為了區別參數與垂直分隔線而添加許多空白。

另外有些人為了對齊增加層次感而喜歡在列首加空白(可說是一種程式員的習慣),但我認為那是不必要的。而且雖然一個空白才佔據1byte的容量,但累積起來也是頗為可觀的數字。
基於這些理由,提議

  1. 參數填寫採用樣式乙型
  2. 列首不要加入空白對齊

以上。--百楽兎 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)[回复]
如果樣式乙型能成為共識,希望有人能開發機器人來執行規範工作。--百楽兎 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)[回复]
個人也喜愛後者......不過,個人有些時候會因為懶惰(直接複製過來再改參數),還是會使用到前者......。-Alberth2-汪汪 2009年6月8日 (一) 07:22 (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)[回复]

不用了,作為一個編輯共識存檔起來備查即可。--百楽兎 2009年6月14日 (日) 14:20 (UTC)[回复]
完成,加一句而已,無傷大雅。—Altt311 (留言) 2009年6月14日 (日) 19:16 (UTC)[回复]