Wikipedia talk:模板指引
维基百科,自由的百科全书
目录 |
[编辑] 模板編輯問題
- 關於我在模板中使用的顔色問題,主要因爲我編輯的模板內容較複雜,行與列列內容內容不同,爲了看起來明瞭,所以冠以顔色便於瀏覽,特別對於有注解的內容更是如此,至於簡單的模板可以不使用顔色。
- (參見:Template:中華民國一級行政區 (1999年))。
- Template:拼音系統比較表。
- 關於模板的轉換和編輯建議,我的看法是使用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需要开发人员 ——只有开发人员才能更好地、更根本地解决以上问题。
[编辑] 还是想用?
如果你想使用嵌套模板,应事先思考一下以下问题:
- 这个模板的最终产品对维基百科是真正有用,还是只是装饰性的?
- 这个模板是否会带来严重的服务器负担?
- 目标效果是否只能通过模板嵌套来实现?如果有其他方法,而且没有更多的麻烦,这种嵌套模板应避免使用。
- 随后的编辑能够理解这个模板吗?
没有好的理由,模板嵌套应被避免使用。
[编辑] 参见
- Wikipedia:引用的利与弊
- Wikipedia:高风险模板
Upssdr - t 08:32 2006年3月11日 (UTC)
- 翻译的很不错,是不是打算贴出来作为维基指南呢?我认为可以,但应该进行一段时间的讨论。还有,subst的用法应该简单介绍一下,或者请读者参见Help:模板。-无名无形 02:05:41 2006年3月13日 (UTC)
- Upssdr翻译的这篇是由元维基来的,个人认为不必讨论了,可以在具体的词语上斟酌。比如写的高使用数模板一词最好为高使用率模板。如大家同意,移到wikipedia:避免使用嵌套模板怎么样?—自由主義者議 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的支持,各瀏覽器還是相同的,為了維基能夠輸入明晰簡潔代碼並體現語義,一定程度的標準化還是必要的。—自由主義者議 2006年05月23日06:33 (UTC+8 14:33)
移入完毕
[编辑] 模板指引
針對近期模板出現的一些東西,比如這裡和這裡,我寫了一個Wikipedia:模板編輯使用指引,請大家表達意見。
暫時並不申請成為正式指引,希望能補充一些日常應注意的事項。—自由主義者議 2007年4月2日22:24 (UTC+8 4月3日06:24)
[编辑] 关于模板中应用自动产生日期或签名
以下内容移动自互助客栈(技術),新留言请置于框外。--Ellery 02:48 2007年4月16日 (UTC)
一段时间以来,看到过大量模板都被维基人试图用Help:魔术字来产生自动的日期、签名等,却没有注意模板本身有很多不是用于subst:来应用的。
我提醒一下,在对模板作这类编辑时变量值进行固化的尝试时,先要确定模板本身是否要求以subst:方式运用。如否的话,目前的技术不可能做到这一点的。请取消这类尝试。所有非确定的魔术字、签名的~~~等都在此列。—自由主義者議 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}}产生出来的替代代码太杂乱了。不知大家怎么看?—自由主義者議 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模板,作者顯然花了心思進行排版和翻譯,我們不能排除將來中文維基會建立這些行政區劃,先刪除再重建是個重複勞動。我想,對沒有被使用的模板以其它更有效的理由提刪、保持一份寬容可能更好。—自由主義者議 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)
-
-
-
-
- 书生说的太对了,现在没有一个办法能够查询到模板,所以有时候想用了往往就自己去做一个,而不能够靠搜索得到。我觉得可以让以后做的模板都归入相应的模板catagory。至少能够方便一点查找。—人神之间摆哈龙门阵 2007年5月1日 (二) 10:26 (UTC)
- 有相应的分类计划,参见Category:维基百科模板,只是开始不久,大家还没有养成习惯。-下一次登录 2007年5月8日 (二) 04:52 (UTC)
- 书生说的太对了,现在没有一个办法能够查询到模板,所以有时候想用了往往就自己去做一个,而不能够靠搜索得到。我觉得可以让以后做的模板都归入相应的模板catagory。至少能够方便一点查找。—人神之间摆哈龙门阵 2007年5月1日 (二) 10:26 (UTC)
-
-
-