所以我有一个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]]}}
我得到了符合要求的后续结果。
但是现在我想扩展这个模板,并在另一个模板中移动带有food
定义的部分,因为我再次需要它。所以我制作了一个新的ResourceList
模板,基本上和以前一样。
<includeonly>{{#if:{{{food|}}}|+{{Food|{{{food|}}}}}|}}<includeonly>
并将其包含在我的Symbiosis
模板中,看起来像这样。
<includeonly>{{#if:{{{name|}}}|''{{{name}}}: ''|}}{{ResourceList|food={{{food}}}}} {{#if:{{{condition|}}}|{{{condition|}}}|}}</includeonly>
但是当我现在使用与上面相同的输入时,我在表格中得到一个换行符看起来像这样。
这是为什么?模板定义中没有空格或延迟。我真的不明白MediaWiki是如何处理这一切的,这是非常令人困惑的,而且有点无法理解。所有这些空白和换行符都让我感到疯狂......有没有办法告诉MediaWiki它可能会忽略我的模板定义中的所有空格和换行符,期望我明确想要的那些?
答案 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)
您不能依赖于在模板中使用竖线字符|
。相反,您应该专门为管道角色创建一个新模板。这就是维基百科所做的。这比听起来简单。简单地:
!
的新模板(因此页面名称将为Template:!
)。|
(是的,只是竖线字符)。{{!}}
添加到您当前使用竖线字符的任何模板(即将|
替换为{{!}}
)有关详情,请参阅维基百科上的Template:!。