2

我创建了一个新模板,并希望在我新编码的信息框中显示一个列表。为了让它工作,我被告知要像这个德语教程一样更改代码。

这是我的模板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 模板的片段:

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

1 回答 1

0

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

*只有在换行符前面时才会被解释为列表。您可以通过执行类似的操作来防止从模板参数中去除前导空格

|Sänger = <!---->
* Lady Gaga

或者您可以确保在模板{{{Sänger}}}中以换行符开头。

于 2015-12-15T10:53:09.530 回答