说起来这个问题也不算太复杂,主要就是习惯了wikitext做模板,从而陷入了一种惯性思维。
先来看问题。
MediaWiki-Section_title-in-Template1.png
上图框框中的原本应该是一个章节标题,结果在生成的时候跟上面的内容合并在了一起。
再来看看模板。

<includeonly>{{#if:{{{Biography|}}}|
==人物生平==
{{{Biography|}}}
}}{{#if:{{{Theories|}}}|
==主要理论==
{{{Theories|}}}
}}{{#if:{{{Books|}}}|
==著作列表==
{{{Books|}}}
}}</includeonly>

大体思路是如果有某项内容(比如{{{Books|}}})就生成一个标题(比如著作列表),然后将内容插入到标题下面。
只是由于第一项(人物生平)中有内容,又由于模板中间并没有换行符,所以就将后面的标题作为内容一起接续在之前的内容中。
那如果有换行符呢?其实就是将#if挪到新行就可以了。

<includeonly>{{#if:{{{Biography|}}}|
==人物生平==
{{{Biography|}}}
}}
{{#if:{{{Theories|}}}|
==主要理论==
{{{Theories|}}}
}}
{{#if:{{{Books|}}}|
==著作列表==
{{{Books|}}}
}}</includeonly>

上面的问题是解决了,但是新问题也产生了。
MediaWiki-Section_title-in-Template3.png
模板中的内容(著作列表)跟条目简介之间有一个空白行,虽然不是特别影响,但多少有些不满意。
当初就是因为这个原因才将所有的换行合并在了一起,正常的显示应该如下:
MediaWiki-Section_title-in-Template2.png
现在似乎进入了一种两难的境地,有换行的话在其他页面就会有空行产生,不换行会吞没标题格式,难道就真的没有办法可想了吗?其实就是由于惯性思维导致的,解决方案也很简单,就是将==标题==替换成<h2>标题</h2>就可以了。
修改后的代码如下:

<includeonly>{{#if:{{{Biography|}}}|
<h2>人物生平</h2>
{{{Biography|}}}
}}{{#if:{{{Theories|}}}|
<h2>主要理论</h2>
{{{Theories|}}}
}}{{#if:{{{Books|}}}|
<h2>著作列表</h2>
{{{Books|}}}
}}</includeonly>

至此,问题解决。

参考资料

Help:Editing sections of included templates

最后修改:2021 年 06 月 24 日 09 : 01 AM
如果觉得我的文章对你有用,请随意赞赏