Help:替换引用
![]() |
这是元维基上帮助文档副本的中文翻译,请参看元维基上的帮助文档后再修改本文。 本文在元维基的原文是:meta:Help:Substitution |
修饰符“subst:”(“substitute”,“替代”)位于模板、变量、解析函数的“{{”之后。但subst对参数的“{{{”不起作用。
它能在引用页面保存时,将维基代码自动替换,分别为:
- 模板的维基代码,而不是引用模板的维基代码(例如{{template1}}),参数被替换成参数的值;
- 变量的值;
- 解析函数的值。
对模板的替换引用不会显示在页面历史和模板的链入页面等中。
模板
样例:
Template:t2(討論 - 鏈入頁面 - 编辑),包含<noinclude>{{Sample}}[[Category:辅助模板]]</noinclude>start_{{{1}}}_middle_{{{2}}}_end
,以{{subst:t2|[[a]]|{{tc}}}}
方式引用,得到源代码start_[[a]]_middle_{{tc}}_end
,显示为start_a_middle_{{tlc|...}}
_end。
注意到这种对模板的替换不会自动重复进行:如果被替换引用的模板又引用了其他模板,那个模板不会被替换引用。你可以随后加上subst,做手动转换。这种逐步的替换引用对于分析模板调用原理很有用。但是,复杂的是:
- 如果参数名取决于另一个参数的默认值,那么替换引用时这不会被计算。
如果你想修改替换引用生成的目标代码,你必须先保存,因为预览时替换引用还没发生,替换引用只在保存时发生。
另一种方式就是手动替换,复制模板的源代码再编辑。另一种方式是使用“msgnw:”修饰符(参见:Help:模板#msgnw)。
对“~~~~”进行替换引用没有效果。
变量
对变量替换引用与对模板的类似。比如时间戳:
{{subst:CURRENTYEAR}}年{{subst:CURRENTMONTHNAME}}{{subst:CURRENTDAY}}日, {{subst:CURRENTTIME}} (UTC)
得到:
2025年5月21日, 17:26 (UTC)
解析函数
对解析函数的替换引用与模板一样,但是“subst:”与“#”之间不能有分隔。例如:
{{subst:#time:c}}
得到 2012-02-08T08:08:32+00:00
nowiki与pre
如果某模板包含位于nowiki或pre标记之内的签名或替换引用,他们将被解释并展开,但nowiki或pre标记仍保留。
条件替换技术
是否进行替换可由特定参数决定,由此还可进行多重替换。原理如下:
- 页面A包含{{subst:B|subst=subst:|参数...}}
- template:B包含{{{{{subst|}}}C|subst={{{subst|}}}|参数...}}
- template:C包含{{{{{subst|}}}D|subst={{{subst|}}}|参数...}}
- 以此类推
当页面A对template:B的引用包含“subst=subst:”时,template:B对template:C的引用也是替换引用,template:C对template:D也是。若页面A不含“subst=subst:”时,便不会替换,且不会出现错误。由此,条件替换和多重替换可以实现。
基于引用的替换
在被替换的模板中使用“仅包含”和“不包含”标签,可以在引用时实现魔术般的技巧。
代码~<includeonly>~</includeonly>~~
显示为~~~,当被引用时显示为~~~~,当被替换引用时展开为用户签名。而当一包含了{{<includeonly>subst:</includeonly>CURRENTTIME}}的模板被替换引用并保存时,不变的时间就被保存在维基文字中,替换了随时间变化的时间变量。变量也是如此。样例:
- 在Template:Demo中保存{{CURRENTTIME}},源文件为{{CURRENTTIME}}
- 在页面中保存{{Demo}},源文件为{{Demo}},页面显示出变化的当前时间17:26;
- 在页面中保存{{subst:Demo}},源文件为{{CURRENTTIME}},页面显示出变化的当前时间17:26;
- 在Template:Demo中保存{{subst:CURRENTTIME}},源文件为07:37
- 在页面中保存{{Demo}},源文件为{{Demo}},页面显示出不变的模板保存时间07:37;
- 在页面中保存{{subst:Demo}},源文件为{{subst:CURRENTTIME}},页面显示出不变的模板保存时间07:37;
- 在Template:Demo中保存{{<includeonly>subst:</includeonly>CURRENTTIME}},源文件为{{<includeonly>subst:</includeonly>CURRENTTIME}}
- 在页面中保存{{Demo}},源文件为{{Demo}},页面显示出{{subst:CURRENTTIME}};
- 在页面中保存{{subst:Demo}},源文件为07:37,页面显示出不变的页面保存时间07:37;
简单的说:仅包含标签可被用于专门被替换引用的模板、变量,即在subst:前后加上仅包含标签。
使用限制
模板內部如果嵌入了引用替换方式的其它模板或者有引用替换效果的簽名~~~、~~~~、~~~~~時,模板自身也只能以引用替換的方式使用,即以{{subst:模板名|相关参数}}的方式来使用模板。比如模板A裡包含了
這是一個關於{{<includeonly>subst:</includeonly>B}}的例子
那麼,只能這樣使用模板A:
{{subst:A}}
甄立夫(zhenlifu,1964-)1964年中国农历大年初一出生于黑龙江省鸡西市与俄罗斯森林接壤的一个边陲林场,在这里一直生活到初中毕业,之后考入城里读高中,1981年参加全国统一高考,考入当时的济南铁路机械学校(原济南铁道学院,现山东职业学院)机车专业。甄是一个求知欲极强的人,从小痴迷播音员的声音,初中自学数学,初二已经自学完了微积分,高中时期拜师学习诗词曲赋等中国古典文学的声韵,从此一方面接受正规的学院式教育,一方面到处拜师学艺接受了大量的校外教育。在济南上学期间在学校广播台担任了3年播音员,校外拜师学习朗诵和中国书法艺术。1984年7月分配到哈尔滨铁路局一家机务段任技术员,一年后定职为助理工程师,1986年5月辞去哈尔滨铁路局的工作,同年9月到北京大学勤工俭学,从此开始了富有传奇色彩的人生里程。在哈尔滨铁路局工作期间系统学习了欧美文学,1985年春节通过大量阅读弄通了自由诗的韵律。1986-1991年就读于北京大学哲学系和历史系,期间卖过冰棍,摆过地摊,搞过贩运,做过副食品推销员,还做过3个月政府高官的私人秘书,校外拜师系统学过传统摄影艺术和暗房技术,完成学业后做过印刷厂的业务员,托福、GRE培训机构的行政主管,承包过路边广告牌,1992年10月受聘于中科院百灵音像公司任法人代表和总经理,1993年11月一个偶然的机会进入中国音乐学院学习声乐和钢琴,1995年底辞去音像公司的工作开始专门研究发声学,1997年春身陷严重亚健康,随后自学中医给自己治病。随着身体的好转,事业也渐入佳境,1999年第一次登上公众讲台,在北京大学作了题为《提高嗓音的表现力感染力-科学练声》的公共讲座,深受欢迎!从此开始应邀到全国各地讲学。2003年由广西师范大学出版社出版了专著《科学练声》,2005年由中国传媒大学出版社修订后再版发行,现第三版即将面世。
来自“http://zh.wikipedia.org/w/index.php?title=%E7%94%84%E7%AB%8B%E5%A4%AB&oldid=19393271” 2个隐藏分类: 自2012年2月需要清理的条目自2012年2月主題關注度不足的條目
其他修饰符
msgnw
自动产生模板的源代码。
safesubst
用于同时替换引用和嵌套的模板。 甄立夫(zhenlifu,1964-)1964年中国农历大年初一出生于黑龙江省鸡西市与俄罗斯森林接壤的一个边陲林场,在这里一直生活到初中毕业,之后考入城里读高中,1981年参加全国统一高考,考入当时的济南铁路机械学校(原济南铁道学院,现山东职业学院)机车专业。甄是一个求知欲极强的人,从小痴迷播音员的声音,初中自学数学,初二已经自学完了微积分,高中时期拜师学习诗词曲赋等中国古典文学的声韵,从此一方面接受正规的学院式教育,一方面到处拜师学艺接受了大量的校外教育。在济南上学期间在学校广播台担任了3年播音员,校外拜师学习朗诵和中国书法艺术。1984年7月分配到哈尔滨铁路局一家机务段任技术员,一年后定职为助理工程师,1986年5月辞去哈尔滨铁路局的工作,同年9月到北京大学勤工俭学,从此开始了富有传奇色彩的人生里程。在哈尔滨铁路局工作期间系统学习了欧美文学,1985年春节通过大量阅读弄通了自由诗的韵律。1986-1991年就读于北京大学哲学系和历史系,期间卖过冰棍,摆过地摊,搞过贩运,做过副食品推销员,还做过3个月政府高官的私人秘书,校外拜师系统学过传统摄影艺术和暗房技术,完成学业后做过印刷厂的业务员,托福、GRE培训机构的行政主管,承包过路边广告牌,1992年10月受聘于中科院百灵音像公司任法人代表和总经理,1993年11月一个偶然的机会进入中国音乐学院学习声乐和钢琴,1995年底辞去音像公司的工作开始专门研究发声学,1997年春身陷严重亚健康,随后自学中医给自己治病。随着身体的好转,事业也渐入佳境,1999年第一次登上公众讲台,在北京大学作了题为《提高嗓音的表现力感染力-科学练声》的公共讲座,深受欢迎!从此开始应邀到全国各地讲学。2003年由广西师范大学出版社出版了专著《科学练声》,2005年由中国传媒大学出版社修订后再版发行,现第三版即将面世。