【问题标题】:Unexpected Line Break in MediaWiki TemplateMediaWiki模板中的意外换行符
【发布时间】:2013-07-27 13:44:21
【问题描述】:

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

&ltincludeonly&gt{{#if:{{{name|}}}|''{{{name}}}: ''|}}{{#if:{{{food|}}}|+{{食物|{{{food|}}}}}|}} {{#if:{{{condition|}}}|{{{condition|}}}|}}&lt/includeonly&gt

当我将它与输入一起使用时

{{Symbiosis|name=Groove|food=10|condition=如果在 [[Apple Tree]]、[[Dandelion]] 或 [[Straberry]]}} 旁边

我得到了想要的结果。

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

&ltincludeonly&gt{{#if:{{{food|}}}|+{{Food|{{{food|}}}}}|}}&ltincludeonly&gt

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

&ltincludeonly&gt{{#if:{{{name|}}}|''{{{name}}}: ''|}}{{ResourceList|food={{{food}}}}} {{ #if:{{{条件|}}}|{{{条件|}}}|}}&lt/includeonly&gt

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

这是为什么?模板定义中没有空格或链接中断。我真的不明白 MediaWiki 是如何处理这一切的,这很令人困惑,而且有点不直观。所有这些空格和换行行为让我发疯......有没有办法告诉 MediaWiki 它可能会忽略我的模板定义中的所有空格和换行符,期望那些我明确想要的?

【问题讨论】:

    标签: templates mediawiki line-breaks mediawiki-templates


    【解决方案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 类?因为有时这会导致意外的换行或段落问题。

    【讨论】:

    • 我找到了无法重现的原因:我在</includeonly> 标记之后有一个换行符来启动<noinclude> 标记。我想我误解了这个标签的含义,因为我假设在使用模板时只有标签内的东西会被包含在内,但这显然不是真的。
    【解决方案2】:

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

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

    【讨论】:

    • 对于研究这个问题的人来说,这个 hack 不再起作用了。
    【解决方案3】:

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

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

    有关更多信息,请参阅维基百科上的 Template:!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-05-07
      • 1970-01-01
      • 2011-06-17
      • 1970-01-01
      • 2010-10-15
      • 2018-08-16
      • 1970-01-01
      相关资源
      最近更新 更多