1

我正在使用 Mediawiki 尝试格式化一些文章,以便它们在逻辑上一起流动。这是我得到的:

模板 A 是基础模板

页面 B 是使用模板 A 的页面

页面 C 是包含页面 B 的一部分的页面

我在模板 A 中有:

<onlyinclude>

  <includeonly>'''Role'''</includeonly>
  {{{role}}}
</onlyinclude>

在页面 B 中:

{{PageB|role=Admin}}  //Page B combined to avoid whitespace questions

C页:

{{:PageB}}  //Again name combined in order to avoid whitespace questions 

结果:

我在页面 C 上得到了预期的结果,这是页面 B 的“角色”部分。

我不想要的部分是页面 B 现在只有模板 A 的“角色”部分。

期望:

我希望页面 B 显示模板 A 的所有内容,而页面 C 仅包含我感兴趣的页面 B 的部分。除了放置页面 B 的每个实例(模板 A 被制作为一个...模板...对于页面 B 的所有变体),当页面 B 被嵌入时,我如何使用模板(模板 A)来做到这一点?甚至可能吗?

4

1 回答 1

0

我不确定我是否完全理解您的问题,但是,让我们看看我们是否可以澄清一下。您拥有Template:Role以下内容:

<onlyinclude><includeonly>'''Role'''</includeonly>{{{role}}}</onlyinclude>

哪个应该返回:

角色{{{role}}}

您还拥有Page_B以下内容:

B Some text<br />
{{Role|role=Admin}}<br />
B Some more text<br />
B And more text

应该看起来像:

B 一些文本
角色管理员
B 一些更多文本
B 更多文本

然后,您拥有Page_C以下内容:

{{:Page_B}}<br />
C Some text<br />
C Some more text

结果会像:

B 一些文本
角色管理员
B 更多文本
B 更多文本
C 一些文本
C 更多文本

但!你希望它像这样出来:

角色管理员
B 更多文本
C 一些文本
C 更多文本

如果这是正确的,那么您对<noinclude>​​、<onlyinclude>和的理解<includeonly>就会略有偏差。 <noinclude>用于将内容仅保留在它所写的页面上,不会被嵌入。<onlyinclude>主要用于控制通过模板传递的内容。帮助编辑器定义将被嵌入的内容。它有助于为空白和不需要的换行设置边界。设置<includeonly>标签之间的内容可防止该内容在其写入的页面上被看到,而只能在被嵌入的页面上看到。

所以,Template:Role必须看起来像这样:

<onlyinclude>'''Role'''{{{role}}}</onlyinclude>

而且,Page_B必须看起来像这样:

B Some text<br />
<onlyinclude>{{Role|role=Admin}}<br />
B Some more text<br /></onlyinclude>
B And more text

我希望这能满足您的问题并对您有所帮助。

于 2012-04-13T14:33:35.807 回答