差别
这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版 | ||
wiki:高级语法:模板 [2021/04/30 02:11] A135(2) 注意事项 |
wiki:高级语法:模板 [2021/04/30 02:58] (当前版本) A135(2) [调用模板] |
||
---|---|---|---|
行 1: | 行 1: | ||
====== 模板 ====== | ====== 模板 ====== | ||
- | ===== 语法 ===== | + | ===== 语法概述 |
- | 您可以使用'' | + | 您可以使用'' |
+ | |||
+ | ===== 什么是 “模板”? ===== | ||
+ | “模板” 是一类用于调用的页面,其本质与普通页面无异,用户可以通过调用模板,将其内容插入到其他的页面当中。此外,模板内还可以设置若干参数,用户可以输入参数的值来达到修改模板内部分内容的目的。 | ||
+ | |||
+ | 请注意,在DokuWiki中,“模板” 一词通常是 “主题” 的同义词,但这里的 “模板” 一词没有 “主题” 或 “样式” 的意思。 | ||
+ | |||
+ | ===== 模板的创建与调用 ===== | ||
+ | ==== 存放模板的命名空间 ==== | ||
+ | 模板一般情况下会统一放置在一个命名空间内,默认的命名空间是'' | ||
+ | |||
+ | 为叙述方便,下文会将'' | ||
+ | |||
+ | ==== 创建模板 ==== | ||
+ | 创建模板的方法与创建普通页面的方法无异。 | ||
+ | |||
+ | 例如想创建一个名叫'' | ||
+ | |||
+ | ==== 调用模板 ==== | ||
+ | 调用模板最基本的语法是:'' | ||
+ | |||
+ | 例如,'' | ||
+ | < | ||
+ | Hello world. | ||
+ | </ | ||
+ | 然后我们在下面一段文字中调用它: | ||
+ | < | ||
+ | The template says: " | ||
+ | </ | ||
+ | 输出的结果是 | ||
+ | > The template says: "Hello world." | ||
+ | |||
+ | 请注意,如果此模板存放于专门存放模板的命名空间中,则模板名中可以不写存放模板的命名空间。例如,想调用存放在'' | ||
+ | * '' | ||
+ | * '' | ||
+ | |||
+ | ===== 参数设置 ===== | ||
+ | 在模板中,可以设置一些参数,以使模板内的内容产生变化。用户在调用模板时,给各参数赋予不同的参数值,模板内相应的参数所在的位置也会被参数值所替代。 | ||
+ | |||
+ | ==== 参数 ==== | ||
+ | 参数使用三个花括号包围:'' | ||
+ | |||
+ | 参数名建议用字母和数字的组合,例如'' | ||
+ | |||
+ | ==== 含有参数的调用 ==== | ||
+ | 含有参数调用的语法是:'' | ||
+ | |||
+ | 如果某些参数值没有指明参数名,暂且称其为“无名参数”,就像下面的样子: | ||
+ | < | ||
+ | [|example|A|B|C|...|] | ||
+ | </code> | ||
+ | 那么参数名会被指定为该参数值的次序,也就是给它们 “编号”,相当于: | ||
+ | < | ||
+ | [|example|1=A|2=B|3=C|...|] | ||
+ | </code> | ||
+ | 请注意,这种对于无名参数的编号方法与MediaWiki中的有所不同。 | ||
+ | |||
+ | 例如,'' | ||
+ | < | ||
+ | Hello {{{1}}}. | ||
+ | </code> | ||
+ | 然后我们在下面一段文字中调用它: | ||
+ | < | ||
+ | The template says: " | ||
+ | </code> | ||
+ | 输出的结果是 | ||
+ | > The template says: "Hello my friend." | ||
+ | |||
+ | ==== 参数的默认值 ==== | ||
+ | 含默认值的参数语法为:'' | ||
+ | 对于含默认值的参数,在调用模板时如果不规定其参数值,那么会输出其默认参数。 | ||
+ | |||
+ | 例如,'' | ||
+ | < | ||
+ | Hello {{{1=world}}}. | ||
+ | </ | ||
+ | 然后我们在下面一段文字中调用它: | ||
+ | < | ||
+ | 指定参数值:[|example|1=my friend|] | ||
+ | |||
+ | 不指定参数值:[|example|] | ||
+ | </ | ||
+ | 输出的结果是 | ||
+ | > 指定参数值:Hello my friend. | ||
+ | > | ||
+ | > 不指定参数值:Hello world. | ||
+ | |||
+ | ==== 参数值中特殊字符的处理 ==== | ||
+ | 由于'' | ||
+ | |||
+ | 对于'' | ||
+ | |||
+ | 对于'' | ||
+ | |||
+ | ===== noinclude 与 includeonly ===== | ||
+ | '' | ||
+ | |||
+ | 因此,建议'' | ||
+ | |||
+ | 例如,'' | ||
+ | < | ||
+ | < | ||
+ | 这是对模板的说明。 | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | 这是模板本身的内容。 | ||
+ | </ | ||
+ | </ | ||
+ | '' | ||
+ | > 这是对模板的说明。 | ||
+ | |||
+ | 然后我们在其他页面调用它: | ||
+ | < | ||
+ | [|example|] | ||
+ | </ | ||
+ | 输出的结果是: | ||
+ | > 这是模板本身的内容。 | ||
+ | |||
+ | ===== 模板应用举例 ===== | ||
+ | ==== 产生有颜色的文本 ==== | ||
+ | 模板'' | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | 调用: | ||
+ | < | ||
+ | [|red|这是红色的字。|] | ||
+ | </ | ||
+ | |||
+ | ==== 给汉字注拼音 ==== | ||
+ | 模板'' | ||
+ | < | ||
+ | < | ||
+ | {{{1}}} | ||
+ | < | ||
+ | {{{2}}} | ||
+ | < | ||
+ | </ | ||
+ | 调用: | ||
+ | < | ||
+ | [|ruby|我|wǒ|][|ruby|们|men|] | ||
+ | </ | ||
+ | |||
+ | 当然这里只列举了模板的两种应用,实际上可能有更多的应用。 | ||
===== 注意事项 ===== | ===== 注意事项 ===== | ||
- | 如要重命名一个模板,**请勿**使用页面右侧的“页面重命名”按钮进行重命名,否则会影响应用该模板的页面的渲染效果。 | + | ==== 关于缓存 ==== |
+ | 当一个模板内容改变时,引用该模板的页面的内容却不会改变,除非修改这个页面以重新生成缓存。关于这个问题,目前折中的办法是尽量少去修改模板的内容。 | ||
+ | |||
+ | ==== 模板的重命名 ==== | ||
+ | 如要重命名一个模板,**请勿**使用页面右侧的“页面重命名”按钮((这个功能是由Move插件实现的。))进行重命名,否则会影响应用该模板的页面的渲染效果。 |