2011-09-30 98 views
0

很多很多時候,我想要創建一個模板,該模板需要一個值列表,並將它們顯示在一個表中,每個表都在自己的行上。我嘗試過在一段時間內隱藏逗號,但是這打破了桌子。#arraymap在輸出中不包含分隔符

<span style="display:none;">{{#arraymap: {{{programmers|}}}|,|x|</span><!-- 
-->{{!}} Programmer: {{!!}} x 
{{!-}}<span style="display:none;">}}</span> 

是否有隱藏的分隔符,並仍然得到一個表的方法,或者是有一個獨立的方式完全做到這一點?

如果你想有一個完整的簡化的測試用例,我有以下輸入:

{{authors|programmers=Ryan Scheel, Ryan Dean}} 

,我想下面的輸出:

模板形式
{| class="wikitable" 
|- 
! colspan="2" style="text-align:center;" ! Authors 
|- 
| Programmer: || Ryan Scheel 
|- 
| Programmer: || Ryan Dean 
|} 

或:

{{{!}} class="wikitable" 
{{!-}} 
! colspan="2" style="text-align:center;" ! Authors 
{{!-}} 
{{!}} Programmer: {{!!}} Ryan Scheel 
{{!-}} 
{{!}} Programmer: {{!!}} Ryan Dean 
{{!}}} 

回答

3

我通過向函數傳遞一個空的第五個參數來解決您的問題[1]。這個參數定義了用什麼來代替分隔符。

{{#arraymap: Ryan Scheel, Ryan Dean|,|x|<nowiki /> 
{{!-}} 
{{!}} Programmer: {{!!}} x 
|<!-- empty 5th parameter -->}} 

擴大的結果將是如下:

{| 
<nowiki /> 
|- 
| Programmer: || Ryan Scheel<nowiki /> 
|- 
| Programmer: || Ryan Dean 
|} 

我微微在我的測試修改你的榜樣爲自己的方便,隨意將其調整到您的口味。我將|-(HTML <tr>)放在|(HTML <td>)之前,因爲它更符合邏輯。

更重要的是,正如您可能已經知道的,解析器函數的參數被修整[2]。問題在於維基表格標記({|,|-等)應該在源代碼行的開頭,否則它不會被解釋爲[3]。因此,爲了在|-的前插入斷行,在這個例子中,我用了很<nowiki />招;-)

作爲一個側面說明,您的線路! colspan="2" (...) ! Authors有錯誤,之前的‘作者’的!有代替爲|


[1]在http://www.mediawiki.org/wiki/Extension:Semantic_Forms/Semantic_Forms_and_templates

[2]相反文檔的模板未命名參數!

[3]據我所知,唯一的例外是可以在之前放置空格和HTML註釋。

+0

我不知道的絕招。這解釋了爲什麼我在Wikipedia模板中看到它們。我不知道[2],但[3]我做到了。 問完這個問題之後,我確實瞭解了第五個參數,但是我沒有想到它是空的。 非常感謝。 – Havvy

相關問題