心百科的模板有部分是从维基上导(piao)入(qie)的,按理说不会有太大问题。可偏偏感觉有点怪怪的,不信可以看看下面的图片。
mediawiki-infobox-editting.png
在模板之前会多出一个空白行,然后在模板之后正文内容之前还有一个空白行。用F12检查下源码,确实是多了一个<p><br></p>
mediawiki-infobox-adding-br.png
因为这个人物信息框的模板是由另一个元模板信息框生成的,由它派生的还有其他几个模板,每一个出现的情况都不一样,有多空白行也有不多的。唯一区别就是多出空白行的往往都按照Cargo插件添加了数据表。
也就是纯粹用信息框模板来生成是没有问题的,而多加内容就不行。
删除Cargo相关内容,果然就正常了。
继续排查,发现只要是在模板调用前后加上<includeonly></includeonly>就会出现这样的问题。
最后还是在晚上搜到了解决方法。
首先来看看我原来的写法:

<noinclude>
这是关于人物信息的列表,采用侧边栏形式。调用它时应该采用如下格式:
<pre>
{{人物信息框
|Image=
……
}}
</pre>
{{#cargo_declare:_table=Personal_Info
|Image=File
……
}}
</noinclude>
<includeonly>
{{#cargo_store:_table=Personal_Info
|Image={{{Image|}}}
……
}}
{{信息框
| above = {{PAGENAMEBASE}}
| image = {{{Image|}}}
……
}}
</includeonly>

为了好看,我把所有的内容能够分行就分行,而问题恰恰就出在这个分行上。在<includeonly></includeonly>之间的换行被系统认为是模板上的,所以才会出现前面提到的情况。
解决办法就是把<includeonly>{{写在同一行,</includeonly>}}写在同一行,再不放心就把能合在一行的就尽量合在一行。
mediawiki-infobox-normal.png
是不是看上去舒服多了?

参考文章:

MediaWiki Topic

最后修改:2020 年 12 月 16 日
如果觉得我的文章对你有用,请随意赞赏