Mediawiki 将列表作为模板的参数传递

Mediawiki 将列表作为模板的参数传递,mediawiki,Mediawiki,我在MediaWiki中创建了一个模板,我想将“自由文本”传递给它。为了保持简单,将其想象为一个表,其中第一个命名参数进入单元格1,另一个命名参数进入单元格2 编写模板本身似乎很容易,但当我试图在参数中传递某些结构时,我总是会遇到错误。我的第一个问题是代码块:如果我写 {{MyTemplate|first= // code... |other= // other code instead... }} 然后wiki认为管道字符是预格式化文本块的一部分,最后我没有了第二个参

我在MediaWiki中创建了一个模板,我想将“自由文本”传递给它。为了保持简单,将其想象为一个表,其中第一个命名参数进入单元格1,另一个命名参数进入单元格2

编写模板本身似乎很容易,但当我试图在参数中传递某些结构时,我总是会遇到错误。我的第一个问题是代码块:如果我写

{{MyTemplate|first=

    // code...

|other=

    // other code instead...

}}
然后wiki认为管道字符是预格式化文本块的一部分,最后我没有了第二个参数。这个问题通过使用
{{MyTemplate|first=

* Item 1a
* Item 2a

|other=

* Item 1b
* Item 2b

}}
同样,我最终忽略了第一个项目(项目1a)(未呈现为列表项目),第二个呈现为ok(项目2a,作为列表项目),然后是一个双管、一个星号和“项目1b”,然后列表继续显示“项目2b”

我显然做错了什么,但我不知道该怎么办,也无法在文档中找到任何有用的例子。请帮助我理解如何正确地将任何文本(可能包括列表或其他标记结构)作为模板参数传递

编辑

以下是我的模板的代码:

{{MyTemplate|first=

    * Item 1a
    * Item 2a

|other=

    * Item 1b
    * Item 2b

}}
另外,很抱歉,我键入的用法是错误的:另外四个空格是上面代码片段的剩余部分。我已经修好了

@Ivanhercaz我尝试了你的建议(与我的建议仅在空行方面有所不同),但仍然得到了相同的结果


在本例中,我必须假设您创建的模板是如何创建的,因为您没有共享结构,只是如何调用和两个参数。由于这个原因,我将假设您创建一个模板:

{{{first}}
{{{其他|}}}
关于第一个问题,可以使用
{{!}
转义管道字符(
|
)。从1.24版开始,这是一个问题,但在此之前,解决此问题的方法是使用管道创建模板,然后将
|
替换为
{{!}
。魔术字的用法是相同的,但是您不需要创建模板

关于你的第二个问题,考虑到你的结构与我在答案顶部所写的类似,如果我写了一页这样的话:

{{Test|first=
* Item 1a
* Item 2a
|other=
* Item 1b
* Item 2b
}}
我得到一个两个列表和两个代码块:一个列表带有“项目1a”,第一个代码块带有
*项目2a
;用“项目2a”列出两个,用
*项目2b
列出第二个代码块。它似乎与渲染的内容无关:

忽略第一个项目(项目1a)(未呈现为列表项目),第二个呈现为ok(项目2a,作为列表项目),然后是一个双管、一个星号和“项目1b”,然后列表继续显示“项目2b”。这是由于参数中的
*
前面有额外的空间

所以我建议你分享模板的代码,以便更好地检查和回答你。当然,如果您希望在每个参数中传递两个不同的列表,您可以这样做:

{|
! Wikitext !! Rendering
|- 
|
{{{first|}}}
||
{{{other|}}}
|}
这种结构解决了我提到的问题。但我等待你的评论,以确保和编辑我的答案,如果有必要的话

编辑

现在,通过模板的代码,我理解了您的问题。为了正确地工作,没有模板、表格和列表的问题,你必须考虑到<代码> */COD>在代码< > <代码> >代码> > <代码>之后需要断线。我建议您插入此换行符

{{Test
|first=* Item 1a
* Item 2a
|other=* Item 1b
* Item 2b
}}
我认为这是一个简单而干净的方法来做你正在尝试的事情。因此,如果以这种方式使用模板:

{{Test
|first=
* Item 1a
* Item 2a
|other=
* Item 1b
* Item 2b
}}
或者以另一种方式:

您将有一个这样的表(我添加了一个
class=wikitable
来显示一个更漂亮的表):


我希望这个技巧能有所帮助。

谢谢你-我已经用你要求的信息更新了答案。不客气@Simone!我已经更新了答案。用模板的代码更容易知道错误是什么。这正是我想要的。多谢各位!
{{Test
|first=
* Item 1a
* Item 2a
|other=
* Item 1b
* Item 2b
}}