2015-12-14 74 views
2

我創建了一個新模板,並希望在我新編碼的信息框中顯示一個列表。爲了得到這個工作,我被告知要更改代碼,如this German tutorialMediawiki:顯示列表不適用於信息框模板

這是我的模板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}}} 
}} 
}} 

爲了在一個單獨的維基條目這樣建立一個新的列表我編輯的源代碼:

{{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}}} }}是什麼意思?

UPDATE:這裏是我以前的音樂信息框模板的片段:

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

回答

0

{{Str left|{{{Sänger}}} }}Sänger參數的第一個字符(見{{Str left}})。 {{#ifeq: {{Str left|{{{Sänger}}} }} | * | ...是某種可怕的黑客使用不同的佈局時,參數是一個列表;不試圖複製,這將幫助你保持你的理智。

*只會在換行符前面被解釋爲列表。你可以做這樣的事情

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

防止模板參數的前導空格的剝離,也可以確保在模板{{{Sänger}}}是一個換行符前面。

+0

建議我回到我以前的模板(代碼如上)。然後我在wiki條目中添加了「」片段。再次,*堅持。 我也知道,將參數Sänger移動到下一行將創建一個工作列表,但問題是,如果只有一個列表項,元素的間距超過 –

+0

我也嘗試複製{{Str }}與我從wikimedia.org獲得的模板。即使有這種變化,第一行也有這個*。 –

+0

然後也許''或' ';我忘記了那些可怕的黑客傾向於使用這個。 https://meta.wikimedia.org/wiki/Help:Newlines_and_spaces#Trimming_on_expansion有一些更可怕的建議。 – Tgr