【问题标题】:MediaWiki: Forcing new line in templatesMediaWiki:在模板中强制换行
【发布时间】:2014-05-18 14:24:00
【问题描述】:

我将使用纯模板在一些非公共 wiki 上标准化一些图片库。遗留的 wiki 图片/缩略图库是用大量样板代码指定的(它呈现一个带有缩略图的图片库):

<center>
<gallery widths="120px" heights="170px" perrow="5">
Image:Pic1.jpg|<center>1</center>
Image:Pic2.jpg|<center>2</center>
Image:Pic3.jpg|<center>3</center>
Image:Pic4.jpg|<center>4</center>
Image:Pic5.jpg|<center>5</center>
Image:Pic6.jpg|<center>6</center>
Image:Pic7.jpg|<center>7</center>
</gallery>
</center>

这太可怕了。有一个想法,用下面的模板重新实现上面的代码:

{{Photos
| Picture1.jpg = 1
| Picture2.jpg = 2
| Picture3.jpg = 3
| Picture4.jpg = 4
| Picture5.jpg = 5
| Picture6.jpg = 6
| Picture7.jpg = 7
|}}

模板大多如下:

... var definitions, etc ...
<center>
{{#tag:gallery
| {{#forargs: | K | V |
Image:{{#var: K}} {{!}} <center>'' {{#var: V}} ''</center>
}}
| widths = {{#var:WIDTHS}}
| heights = {{#var:HEIGHTS}}
| perrow = {{#var:PERROW}}
}}
</center>

但问题是只渲染了第一张图片,其余的全部图片2...图片7在第一张图片缩略图下渲染。而且我怀疑原因可能是缺少换行符,因此画廊标签可能会像这样呈现,从而产生错误的 1-picture 画廊:

<gallery widths="120px" heights="170px" perrow="5">
Image:Pic1.jpg|<center>1</center>Image:Pic2.jpg|<center>2</center>Image:Pic3.jpg|<center>3</center>...

这只是一个假设,但我猜它可能有很强的背景。所以问题是: 有没有办法强制换行,以便 标记可以按预期呈现?

【问题讨论】:

    标签: mediawiki template-engine


    【解决方案1】:

    您可以通过添加&lt;nowiki /&gt;来强制换行,如下所示:

    {{#tag:gallery
    | {{#forargs: | K | V |<nowiki />
    Image:{{#var: K}} {{!}} <center>'' {{#var: V}} ''</center>
    }}
    | widths = {{#var:WIDTHS}}
    | heights = {{#var:HEIGHTS}}
    | perrow = {{#var:PERROW}}
    }}
    

    【讨论】:

    • 这正是我想要的,它就像一个魅力!谢谢! :)
    • 只是好奇:它是如何工作的?我看不到新行与 nowiki 标签的关系。你能稍微解释一下吗?这将不胜感激。提前致谢!
    • 我真的不知道。这是一个古老的 hack,有时用于 Wikipedia 上的复杂模板。我的猜测是它stops wiki parsing,然后在标记之后再次从头开始。因此,解析器中删除模板中的换行符和其他空格的规则不适用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-17
    • 2013-08-07
    • 2010-10-15
    • 2014-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多