很多次,我想创建一个采用值列表的模板,并将它们显示在一个表中,每个都在各自的行上。我试图在一个范围内隐藏逗号,但这打破了表格。
<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
{{!}}}
答案 0 :(得分:3)
我通过将空的第5个参数传递给函数 [1] 来解决您的问题。该参数定义了用。替换分隔符的内容。
{{#arraymap: Ryan Scheel, Ryan Dean|,|x|<nowiki />
{{!-}}
{{!}} Programmer: {{!!}} x
|<!-- empty 5th parameter -->}}
扩展结果如下:
{|
<nowiki />
|-
| Programmer: || Ryan Scheel<nowiki />
|-
| Programmer: || Ryan Dean
|}
我在测试期间为了自己的方便而略微修改了你的例子,随意根据你的喜好调整它。我将|-
(HTML&lt; tr&gt;)放在|
(HTML&lt; td&gt;)之前,因为它更符合逻辑。
更重要的是,正如您可能已经知道的那样,解析器函数的参数被称为 [2] 。问题是wiki表标记({|
,|-
等)应该位于源代码行的开头,否则不会被解释为 [3] 。所以,为了插入一个换行符,在|-
之前的这个例子中,我使用了漂亮的<nowiki />
技巧; - )
作为旁注,您的第! colspan="2" (...) ! Authors
行有误,“作者”之前的!
必须是|
。
[1] http://www.mediawiki.org/wiki/Extension:Semantic_Forms/Semantic_Forms_and_templates
[2]与模板的未命名参数相反!
[3]据我所知,唯一的例外是您可以在之前添加空格和HTML注释。