维基百科讨论:模板指导
模板编辑问题
[编辑]- 关于我在模板中使用的颜色问题,主要因为我编辑的模板内容较复杂,行与列列内容内容不同,为了看起来明了,所以冠以颜色便于浏览,特别对于有注解的内容更是如此,至于简单的模板可以不使用颜色。
- 关于模板的转换和编辑建议,我的看法是使用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)