【问题标题】:Mediawiki: Displaying a List does not work with infobox templateMediawiki:显示列表不适用于信息框模板
【发布时间】:2015-12-14 23:51:18
【问题描述】:

我创建了一个新模板,并希望在我新编码的信息框中显示一个列表。为了让它工作,我被告知要更改 this German tutorial 中的代码。

这是我的模板Infobox Music 当前的样子:

|- 
{{#if: {{{Sänger<includeonly>|</includeonly>}}} |
 {{#ifeq: {{Str left|{{{Sänger}}} }} | *
  |{{!}} style="vertical-align:top;" {{!}}
'''Sänger/in'''
{{!}}
{{{Sänger}}}
  |{{!}} '''Sänger/in'''
{{!}} {{{Sänger}}}
 }}
}}

为了建立一个新列表,我在一个单独的 Wiki 条目中编辑了源代码,如下所示:

{{Infobox_Music
|Sänger = 
* Lady Gaga
* Michael Jackson
}}

不幸的是,当同时使用这两种设置时,我的列表会像往常一样以第一个带有 * 开头的项目显示。这是它在 HTML 中的样子:

<tr>
<td> <b>Sänger/in</b>
</td>
<td> * Lady Gaga
<ul><li>Michael Jackson</li></ul>
</td></tr>

我错过了什么吗? {{#ifeq: {{Str left|{{{Sänger}}} }} 这行是什么意思?

更新:这是我之前的 Infobox Music 模板的 sn-p:

{{Infobox Music
    |- 
    {{#if: {{{Sänger|}}} | {{!}} '''Sänger/in''' {{!!}} {{{Sänger}}} }}
}}

【问题讨论】:

    标签: mediawiki mediawiki-templates


    【解决方案1】:

    {{Str left|{{{Sänger}}} }}Sänger 参数的第一个字符(请参阅{{Str left}})。 {{#ifeq: {{Str left|{{{Sänger}}} }} | * | ... 是一种可怕的技巧,当参数是列表时使用不同的布局;不要试图复制这将有助于您保持理智。

    * 只会在前面有换行符时被解释为列表。您可以通过执行类似

    的操作来防止从模板参数中去除前导空格
    |Sänger = <!---->
    * Lady Gaga
    

    或者您可以确保在模板中 {{{Sänger}}} 前面有一个换行符。

    【讨论】:

    • 按照建议,我回到了以前的模板(代码在上面)。然后我在 wiki 条目中添加了 "" sn-p。同样, * 仍然存在。我也知道将 Parameter Sänger 移到下一行会创建一个工作列表,但问题是,如果只有一个列表项,则该元素上方有一个间隙
    • 我还尝试使用从 wikimedia.org 获得的模板复制 {{Str left}}。即使有这个变化,第一行还是有这个 *。
    • 那么可能是&lt;nowiki&gt;&lt;/nowiki&gt;&amp;#32;;我忘记了人们倾向于使用哪种可怕的黑客攻击。 meta.wikimedia.org/wiki/… 有一些更可怕的建议。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-02-18
    • 2011-07-15
    • 2020-08-03
    • 2018-10-21
    • 1970-01-01
    • 1970-01-01
    • 2015-01-13
    相关资源
    最近更新 更多