MediaWiki模板中意外的换行符

时间:2013-07-27 13:44:21

标签: templates mediawiki line-breaks mediawiki-templates

所以我有一个MediaWiki模板,我在表中使用它来表示一列。代码看起来像这样,并按我的意愿工作。

<includeonly>{{#if:{{{name|}}}|''{{{name}}}: ''|}}{{#if:{{{food|}}}|+{{Food|{{{food|}}}}}|}} {{#if:{{{condition|}}}|{{{condition|}}}|}}</includeonly>

当我将它与输入

一起使用时
{{Symbiosis|name=Groove|food=10|condition=if next to [[Apple Tree]], [[Dandelion]] or [[Straberry]]}}

我得到了符合要求的后续结果。

correct output

但是现在我想扩展这个模板,并在另一个模板中移动带有food定义的部分,因为我再次需要它。所以我制作了一个新的ResourceList模板,基本上和以前一样。

<includeonly>{{#if:{{{food|}}}|+{{Food|{{{food|}}}}}|}}<includeonly>

并将其包含在我的Symbiosis模板中,看起来像这样。

<includeonly>{{#if:{{{name|}}}|''{{{name}}}: ''|}}{{ResourceList|food={{{food}}}}} {{#if:{{{condition|}}}|{{{condition|}}}|}}</includeonly>

但是当我现在使用与上面相同的输入时,我在表格中得到一个换行符看起来像这样。 wrong output

这是为什么?模板定义中没有空格或延迟。我真的不明白MediaWiki是如何处理这一切的,这是非常令人困惑的,而且有点无法理解。所有这些空白和换行符都让我感到疯狂......有没有办法告诉MediaWiki它可能会忽略我的模板定义中的所有空格和换行符,期望我明确想要的那些?

3 个答案:

答案 0 :(得分:1)

我无法重现您的错误。

我完全按照你的第二个例子输入了你的第二个例子中的所有代码,结果就像你的第一个例子。我自己尝试了,然后我尝试根据屏幕截图复制你的表(见下文),在这两种情况下都没有发生错误的换行。

{| class="wikitable sortable"
|- 
! width="33%" | Column A
! width="34%" | Column B
! width="33%" | Column C
|- 
| {{loremipsum}}
| {{Symbiosis|name=Groove|food=10|condition=if next to [[Apple Tree]], [[Dandelion]] or [[Straberry]]}}
| {{loremipsum}}
|}

你在表中使用不同的css类吗?因为有时会导致意外的包装或段落问题。

答案 1 :(得分:0)

当序列中包含多个没有输出的模板时,可能会发生这种情况(不确定这是否存在问题)。

尝试在每个模板结尾之前添加<nowiki/>(在任何</includeonly>之前)

答案 2 :(得分:0)

您不能依赖于在模板中使用竖线字符|。相反,您应该专门为管道角色创建一个新模板。这就是维基百科所做的。这比听起来简单。简单地:

  1. 创建名为!的新模板(因此页面名称将为Template:!)。
  2. 页面内容只需要|(是的,只是竖线字符)。
  3. 通过将{{!}}添加到您当前使用竖线字符的任何模板(即将|替换为{{!}}
  4. 来使用它

    有关详情,请参阅维基百科上的Template:!