Tools 是非官方社区Wiki。社区文档正在编写中,欢迎参与。 Wiki编辑答疑群:717421103
版本250923.2
全站通知:

Wikitext换行机制

阅读

    

2025-10-18更新

    

最新编辑:Lu_23333

阅读:

  

更新日期:2025-10-18

  

最新编辑:Lu_23333

来自WIKI实验室WIKI_BWIKI_哔哩哔哩
跳到导航 跳到搜索
页面贡献者 :
逗比的马老师
Lu_23333

不熟悉Wikitext特性的用户在编写模板时,经常会遇到意外的换行、分段或间距。这是代码非预期分段增加的P标签导致的。

利用好浏览器开发者工具,和特殊:展开模板页面,可以有效的分析并规避非预期的分段。

解析器中划分段落的逻辑,即添加<p>标签的核心规则如下:

  • 两个换行视为新段落
  • 块级HTML标签强制结束上一段落


这意味着:

Wikitext Wikitext 展开结果 效果
块级元素 1<div>2</div>3 <p>1</p><div>2</div><p>3</p> 1
2
3
两次调用
带换行的模板
<includeonly>模板内容</includeonly>
<noinclude>
...
</noinclude>
<includeonly>模板内容</includeonly>
<noinclude>
...
</noinclude>
<p>模板内容</p><p>模板内容</p>

模板内容

模板内容

分段机制

分段,指解析器自动在文本内容周围添加<p></p>标签的过程。

比如对于Wikitext

这是第一行文本
这是第二行文本

这是新段落的文本

会被解析为:

<p>这是第一行文本
这是第二行文本</p>
<p>这是新段落的文本
</p>

效果:

这是第一行文本 这是第二行文本

这是新段落的文本


块级元素

块级HTML标签出现时(无论是开始还是结束标签),会强制结束当前段落,如表1中"块级元素"的示例。

比如:div、center、blockquote、figure、aside、hr。

部分元素内部关闭主动分段:h1-h6、pre、p、ul、ol、dl、table、tr、caption、dt、dd、li。

部分元素内部始终允许分段:td、th。


例如:

代码 HTML
2<div>3</div>4
<p>2</p><div>3</div><p>4</p>
<h1>1
2<div>3</div>4
5</h1>
<h1><span id="..."></span><span class="mw-headline" id="...">1
2<div>3</div>4
5</span></h1>

实际上,解析器底层行为更为复杂,它会逐行扫描Wiktext,利用状态机维护解析状态,对HTML标签分为多种情况处理。

BWiki当前的MediaWiki版本是1.37,详情请参阅源码:https://github.com/wikimedia/mediawiki/blob/REL1_37/includes/parser/BlockLevelPass.php#L310