Help:Templates

From Valve Developer Community
Revision as of 13:30, 10 May 2024 by 1416006136 (talk | contribs) (Created page with "{{langsp}} {{Translate|type=inprogress}} {{Cleanup}} '''模板'''是一个创建用于包含在其他页面中的维基页面。模板通常包含可能需要在大量文章...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
English (en)Русский (ru)中文 (zh)Translate (Translate)
Info content.png
This translated page needs to be updated.
You can help by updating the translation.
Also, please make sure the article complies with the alternate languages guide.(en)
This notice is put here by LanguageBar template and if you want to remove it after updating the translation you can do so on this page.


Info content.png
This page is being translated.
You can help by finishing the translation.
If this page cannot be translated for some reason, or is left untranslated for an extended period of time after this notice is posted, the page should be requested to be deleted.
Also, please make sure the article complies with the alternate languages guide.(en)
Broom icon.png
This article or section needs to be cleaned up to conform to a higher standard of quality
For help, see the VDC Editing Help and Wikipedia cleanup process. Also, remember to check for any notes left by the tagger at this article's talk page.

模板是一个创建用于包含在其他页面中的维基页面。模板通常包含可能需要在大量文章或页面上显示的重复性材料。它们通常用于样板消息、标准化警告或通知、信息框、导航框以及类似目的。

它们使您能够更快速和/或更容易地完成事情。模板在页面上非常频繁地使用,因此最好了解它们。当维基看到它在页面上识别的模板时,它会自动将其替换为其他内容。那里出现的内容取决于用户。

如何使用模板

要向页面添加模板(称为转录),只需键入{{,模板的名称,然后}}。 如果您希望添加任何参数,请在模板名称和}}之间放置一个|,并在那里定义参数。您定义的所有参数都需要由另一个|分隔。

Note.png注意:实际上,任何页面都可以被另一个页面转录。可以使用{{:Main Page}}转录Main Page,但我们在这里不这样做,因为它会将Main Page的所有标题添加到本页面的目录中。

示例

这是一个我们没有定义任何参数的模板。预览时,表达式{{restart}}(或{{Restart}})将被Template:Restart页面的内容替换。如果您访问它,您会看到它只包含那五个单词。

{{restart}} → Requires restart to take effect.
Note.png注意:下面是一个关于sv_cheats控制台命令的示例,这是错误的,因为它不是一个实体。请对控制台命令使用{{Command}}

{{Ent}}可以接受多达两个未命名参数。如其页面所述,该模板的工作方式是,它会以等宽字体显示第一个参数的值,并使其成为一个维基链接。假设我们想要一个指向sv_cheats的代码风格链接;要使用此模板,我们键入{{,然后是模板名称,即entEnt,然后对于第一个参数,我们键入一个管道符号和值sv_cheats。如果我们愿意,我们还可以指定第二个参数,该参数(如模板所指定)也将以代码风格显示,但不作为链接。未命名参数的顺序很重要。如果我们没有指定参数,模板就不会按预期工作。

{{ent|sv_cheats}}sv_cheats
{{ent|sv_cheats|1}}sv_cheats 1
{{ent}}[[zh/{{{1}}}|{{{1}}}]]

Template:KV是用于显示实体类keyvalue信息的最常见模板之一。它接受多个可选的命名参数,例如onlynofgd。要为这些指定值,我们需要键入参数的名称、等号,然后是值。命名参数可以以任何顺序定义。请注意,我们可以同时指定未命名和命名参数。在以下示例中,我们有三个未命名参数(ammo, integer和最后一个)和两个命名参数(only=反恐精英:起源nofgd=1)。

{{KV|only=反恐精英:起源|ammo|nofgd=1|integer|要添加的备用弹药量。默认值为0。}}
ammo ([todo internal name (i)]) <整数(en)> (存在于 反恐精英:起源 之中) 不存在于FGD!
要添加的备用弹药量。默认值为0。

如果没有|nofgd=1不存在于FGD!部分就不会显示。

Note.png注意:未命名参数可以像命名参数一样以任何顺序指定,例如:{{ent|2=1|1=sv_cheats}}sv_cheats 1。事实上,未命名参数确实有一个可以定义的名称,即它们的参数编号。这样,人们也可以例如指定第三个参数,但不是第一个和第二个。
Note.png注意:调用模板时,您总是可以指定任意数量的命名和未命名参数。唯一的问题是模板是否考虑它们,产生不同的结果或相同的结果。顺便说一下,多次指定一个参数会在页面顶部显示一个错误。

模板也可以使用模板,称为嵌套。不支持递归,因此模板不能使用自己。

替换

这是给高级用户的。与其转录模板,不如选择替换它。替换将用模板的内容替换模板调用的维基文本。 不要轻率地替换,因为替换后的维基文本在模板更新时不会更新。有关更多信息,请参见Wikipedia:Help:Substitution

要替换模板,请像通常一样转录它,然后在{{和模板名称之间添加subst:。之后,点击保存按钮,维基文本将自动添加。

例如,如果您在页面上写下{{restart}},保存它,然后再次编辑页面,您仍会在维基文本中的同一位置找到{{restart}}。相比之下,如果您保存{{subst:restart}}然后再次编辑页面,您会发现需要重启才能生效。。可以想象维基是“复制粘贴”内容过来的,但它确实考虑了参数值:

{{subst:delete|这是一个糟糕的页面。}}

如果页面保存了这个,那么文本将被Template:Delete的内容替换,其中每次出现{{{1}}}都被替换为这是一个糟糕的页面。

{{Delete-meta|{{#if: 这是一个糟糕的页面。 | 这是一个糟糕的页面。 }} }}[[Category:Candidates for speedy deletion]]

注意参数的自动转发。替换时,页面的外观不应与转录时有任何不同。唯一的区别在于页面代码。

Tip.png提示:编辑时,请务必在保存替换之前使用查看更改,以查看您实际对维基文本做了什么。

制作模板

在模板可以被添加到某处之前,首先必须在其自己的页面上定义其内容。模板页面以前缀`Template:`开始。另见:Help:Page Creation

制作像Template:Restart这样的模板相当容易:在右上角的搜索栏中输入`Template:Restart`,点击它的红色链接(假设页面还不存在),输入您想要的文本,并保存它。之后,就可以按照上述描述使用这个新模板了。

Tip.png提示:制作模板时,您可能想要分隔您的代码以使其更易于阅读,但要注意无意中的空白,特别是换行符。HTML注释(``)也可能有用。
Note.png注意:命名参数(例如{{{title}}})在模板结果中会被修剪前导和尾随空白,未命名参数(例如{{{1}}})则不会。

未命名参数

要添加未命名参数,只需将{{{1}}}放在您希望第一个未命名参数的值出现的地方。 这是Template:Tip的代码的一部分:

`Tip:{{{1}}}`

如果您之前见过这个模板,您就会知道它有自己特殊的外观,但现在我们只看这个。用户在转录时所要做的就是输入他们想要的文本:

{{tip|之后不要进行顶点编辑。}}
Tip.png提示:之后不要进行顶点编辑。

如果您想添加多个未命名参数,只需更改数字即可。这是Template:Distinguish的旧(压缩)代码。这个模板有一些我们还没有讨论的内容,但您仍然可以看到使用了四个未命名参数:{{{1}}}{{{2}}}{{{3}}}{{{4}}}

:''不要与[[:{{{1}}}]]混淆{{#if:{{{2|}}} |{{#if:{{{3|}}} |,[[:{{{2}}}]]|或[[:{{{2}}}]]。}}|。}}{{#if:{{{3|}}} |{{#if:{{{4|}}} |,[[:{{{3}}}]]|或[[:{{{3}}}]]。}}}}{{#if:{{{4|}}} |或[[:{{{4}}}]]。}}''

用户在转录时所要做的就是这样:

{{distinguish|Combine|Civil Protection|Overwatch}}

命名参数

通常,您会希望命名参数只在转录时定义时才影响任何内容。我们稍后会讨论条件。现在,让我们看看Template:IO,它有许多命名参数。在这个模板中,{{{param}}}标记了一个添加转录时由`|param=texthere`定义的维基文本的位置。

带命名参数:

{{IO|SetString|更新字符串。|param=string}}
SetString <字符串(en)>
更新字符串。

不带命名参数:

{{IO|SetString|更新字符串。}}
SetString
更新字符串。

默认值

要使参数默认具有值,请在参数名称的右侧添加`|`,然后定义默认值。命名和未命名参数都可以使用此功能。

如果用户没有指定,这将使{{{1}}}的值默认为3000。

{{{1|3000}}}


如果用户没有指定`|value=...`,这将返回空字符串。注意{{{value}}}{{{value|}}}之间的区别。前者如果用户没有定义,实际上会返回文本`{{{value}}}`。

{{{value|}}}
Note.png注意:为参数指定默认值仅适用于该参数的特定出现。如果您有多个出现的{{{1}}},并且所有这些都应该有默认值`0`,那么您必须为所有这些键入{{{1|0}}}。另一方面,如果合适,这允许您在不同的出现中使用不同的默认值。

解析函数

为了使文本仅在定义了某个参数或将其设置为特定值时才(不)显示,以下表达式是实现此目的的方法。

解析函数`#if:`用于检查字符串是否为空。语法是`<则>`。当`<字符串>`**不是**空字符串时,此表达式的结果为`<则>`,否则为`<否>`。可以省略`<否>`值,在这种情况下,默认为空字符串;以下的`<否>`也适用此规则。

`非空` → 空
`非空` → 非空
`非空` →
`非空` → 非空
`激活睡眠模式...` → 激活睡眠模式...
`目标获取` → 目标获取
Note.png注意:表达式``返回空字符串,因为您(可能)没有通过转录查看此页面,所以它从未有机会被定义,因此返回其默认值为空字符串。

`#ifeq:`用于检查两个字符串是否相等。语法是`<否>`。当两个(修剪后的)字符串完全相等时,此表达式的结果为`<则>`,否则为`<否>`。

`相等` → 相等
`不相等` → 不相等
`走开!` → 走开!
`朋友...` → 朋友...

`#switch:`用于检查输入字符串与**多个**字符串是否相等。语法是 `<默认>`。 此语句的结果为第一个与`<输入>`相等的`<字符串X>`对应的`<值X>`。如果该`<字符串X>`后面没有等号,即没有`<值X>`,则使用下一个有等号的`<字符串Y>`的`<值Y>`。如果没有找到相等的字符串,则返回`<默认>`,如果未指定,默认为空字符串。

`#expr:`用于解决数学问题。有关其所有功能,请参见帮助:计算。如果发生错误,将返回一个包含在`<strong class="error">`元素中的字符串。

`4` → 4
`0.25` → 0.25
`1` → 1
`Expression error: Missing operand for +.` → Expression error: Missing operand for +.
`假` → 假

`#ifexpr:`用于测试数学表达式是真还是假,并根据结果返回不同的值。

`Expression error: Unrecognized punctuation character "&".` → 正确
`错误` → 错误
Warning.png警告:在将参数传递给表达式时,注意如果参数为空则不会出错。例如,如果一个整数参数如果留空应该像0一样处理,请添加小数点,因为`.`与`0.`转换为相同的零。

例如,使用`{{{hl2|0}}}.`而不是`{{{hl2|0}}}`,因为后者可能会失败,如果指定了`hl2=`:

`真` → 真
`Expression error: Unrecognized punctuation character "&".` → Expression error: Missing operand for or.

`lc:`和`uc:`将字符串转换为小写或大写。请注意,这些与`#if:`等不同,没有井号。 还有`lcfirst:`和`ucfirst:`,它们只操作表达式的第一个字符。

`{{lc:Case Sensitivity}}` → case sensitivity
`{{uc:Case Sensitivity}}` → CASE SENSITIVITY
`{{lcfirst:Case Sensitivity}}` → case Sensitivity

文档

请描述您的模板的功能,尤其是示例。为了防止描述文本出现在使用模板的页面上,或使模板页面本身看起来更清洁,您可以使用三种不同的HTML标签。

  • `...`防止维基文本被转录到其他页面。它只会显示在模板的页面上。
  • `...`使得只有其中的维基文本出现在目标页面上。其他所有内容都不会被转录,但仍会显示在模板的页面上。
  • ``防止其中的维基文本出现在模板的页面上。它对目标页面没有影响。

因此,您可以用``包围所有应该被转录的内容,或者用``包围其他所有内容。此外,您可以使用`