模板入门
模板是将一个事物的结构规律予以固定化、标准化的成果,它体现的是结构形式的标准化。[1]
PPT模板,Word模板,论文模板,简历模板。同理,Mediawiki的模板(Template)也是类似的功能。它们都是提供固有的内容形式,使用的时候,仅需要修改对应的内容或者添加对应的内容即可。
几乎99.9%的MW网站都使用模板。
“一发不可牵,牵之动全身。” --清·龚自珍《自春徂秋偶有所感触》
我也不知道为什么,就是想把这句话放在这里。
创建模板
前面的文章命名空间列出了18种MediaWiki内建的名称,模板也包含在其中。因此,该模板功能也使用了命名空间的相关功能。
创建模板很简单,和创建页面一样。
- 在WIKI网站的URL栏输入
模板:问候语
或者Template:问候语
,中英文都可。 - 然后,页面存在就点击更改,不存在就创建,然后在里面写上wikitext内容
- 点击保存,比如这里的例子是写成如下内容:
欢迎大家一起学习Mediawiki!
这样,一个最简单的模板就完成了!
使用模板
使用模板有如下方法,但是都是使用的“{{ }}”将其包含起来,现在咱们仅需要关注第一种方式,如无特殊说明,本文后面都是用第一种方式做例。
{{模板名称}}或者{{模板:模板名称}}或者{{Template:模板名称}},结果都是一样的
{{subst:模板名称}}
{{safesubst:模板名称}}
{{msgnw:模板名称}}
使用模板,通常是叫嵌入(transclude),不仅模板,其他网站上几乎所有页面都可以嵌入。
调用模板语法 | 调用后的结果 | 备注 |
---|---|---|
{{问候语}} | 欢迎大家一起学习Mediawiki! | 结果都一样,所以只要不嫌麻烦,都是用这种方式调用 |
{{模板:问候语}} | 欢迎大家一起学习Mediawiki! | 结果都一样 |
{{Template:问候语}} | 欢迎大家一起学习Mediawiki! | 结果都一样 |
如果当你不满意这句话的时候,你就可以更改模板:问候语里面的内容,这样,调用该模板的所有页面都会相应的变成你最后更改的内容。
参数
为丰富嵌入包含机制,当一个模板被嵌入时,MediaWiki允许对这个模板传递参数。由于参数的作用,模板可以提供不同的内容,拥有不同的行为。[2]
如果大家学过编程,说到函数应该就大概了解了。没有学过的,想想PPT模板,Word模板也差不多的意思。
隐式传递
- 模板:隐式传递 内容
欢迎你,来自{{{1}}}的{{{2}}},和我们一起学习MediaWiki!
- 调用
{{隐式传递|中国|张三}}
这种形式里,中国占用的是第一个位置({{{1}}}),张三是第二个位置({{{2}}})。这句话的意思就是,给模板:隐式传递传递
- 参数1=中国,其中参数1也就是{{{1}}}
- 参数2=张三,其中参数2也就是{{{2}}}
调用模板语法 | 调用后的结果 | 备注 |
---|---|---|
{{隐式传递|中国|张三}} | 欢迎你,来自中国的张三,和我们一起学习MediaWiki! | {{{1}}}=中国,{{{2}}}=张三 |
{{隐式传递|张三|中国}} | 欢迎你,来自张三的中国,和我们一起学习MediaWiki! | {{{1}}}=张三,{{{2}}}=中国 |
{{隐式传递|俄罗斯|马雅可夫斯基·铁柱}} | 欢迎你,来自俄罗斯的马雅可夫斯基·铁柱,和我们一起学习MediaWiki! | 其他例子 |
可以看到,需要严格遵守传递顺序。看花了没? |
编号传递
- 模板:编号传递,内容和隐式传递一样,唯一区别是调用
欢迎你,来自{{{1}}}的{{{2}}},和我们一起学习MediaWiki!
- 调用
{{编号传递|2=张三|1=中国}}
这句话的意思就是,给模板:编号传递传递
- {{{2}}}=张三,第二个参数
- {{{1}}}=中国,第一个参数
- 无论怎么摆放位置结果都不变,只要1给国家,2给姓名
调用模板语法 | 调用后的结果 | 备注 |
---|---|---|
{{编号传递|1=中国|2=张三}} | 欢迎你,来自中国的张三,和我们一起学习MediaWiki! | 结果一样 |
{{编号传递|2=张三|1=中国}} | 欢迎你,来自中国的张三,和我们一起学习MediaWiki! | 结果一样 |
{{编号传递|2=马雅可夫斯基·铁柱|1=俄罗斯}} | 欢迎你,来自俄罗斯的马雅可夫斯基·铁柱,和我们一起学习MediaWiki! | 其他例子 |
可以看到,不需要严格遵守传递顺序,看花了没? |
名称传递
- 模板:名称传递 内容
欢迎你,来自{{{国家}}}的{{{姓名}}},和我们一起学习MediaWiki!
- 调用
{{名称传递|姓名=张三|国家=中国}}
这句话的意思就是,给模板:名称传递传递
- 姓名=张三
- 国家=中国
- 随便你怎么摆放位置
调用模板语法 | 调用后的结果 | 备注 |
---|---|---|
{{名称传递|国家=中国|姓名=张三}} | 欢迎你,来自中国的张三,和我们一起学习MediaWiki! | 结果一样 |
{{名称传递|姓名=张三|国家=中国}} | 欢迎你,来自中国的张三,和我们一起学习MediaWiki! | 结果一样 |
{{名称传递|姓名=马雅可夫斯基·铁柱|国家=俄罗斯}} | 欢迎你,来自俄罗斯的马雅可夫斯基·铁柱,和我们一起学习MediaWiki! | 其他例子 |
可以看到,不需要严格遵守传递顺序,没看花了吧! |
调用格式
以下格式都可以使用。
{{名称传递|国家=中国|姓名=张三}} 或者 {{名称传递 |国家=中国 |姓名=张三 }} {{编号传递|1=中国|2=张三}} 或 {{编号传递 |1=中国 |2=张三 }}
上面的1,2,国家我们姑且叫它变量吧!然后使用变量或者调用就添加{{{1}}},{{{2}}},{{{国家}}}这种方式!
需要注意的
空值
- 调用
{{名称传递|国家=中国|姓名=}}或者{{名称传递|国家=中国}}
- 结果
- 欢迎你,来自中国的{{{姓名}}},和我们一起学习MediaWiki!
- 解决方式
- 见模板#默认值
无用值
- 调用
{{名称传递|国家=中国|名称=张三}}
- 结果
- 欢迎你,来自中国的{{{姓名}}},和我们一起学习MediaWiki!
- 解决方式
- 你写错了改呗!或者设置默认值。
默认值
针对上面的两种情况,MW有一种语法可以应对。
- 语法
{{{变量|提示语句}}}
- 进行更改
- 在模板:名称传递里面写成如下文本:
欢迎你,来自{{{国家|未知地区}}}的'''{{{姓名|匿名人士}}}''',和我们一起学习MediaWiki!
调用模板语法 | 调用后的结果 | 备注 |
---|---|---|
{{名称传递|国家=中国}} | 欢迎你,来自中国的匿名人士,和我们一起学习MediaWiki! | 只写了国家没写姓名 |
{{名称传递}} | 欢迎你,来自未知地区的匿名人士,和我们一起学习MediaWiki! | 两个都没写 |
{{名称传递|姓名=张三}} | 欢迎你,来自未知地区的张三,和我们一起学习MediaWiki! | 没写国家 |