全站通知:

Wikitext语法解析Html代码的一些需要注意事项

阅读

    

2021-09-07更新

    

最新编辑:顾小满real

阅读:

  

更新日期:2021-09-07

  

最新编辑:顾小满real

来自bilibili游戏中心 - WIKI
跳到导航 跳到搜索
页面贡献者 :
顾小满real

说明

Wikitex语法是一种简化的语法,通过mediawiki的渲染逻辑转化为HTML语言输出,当wikitex和HTML语言混用的时候会出现在转化的过程中的一些变数。

此页面用于记录目前已知的问题,便于各位编辑者在使用过程中避免遇到类似不好解决的问题。

分割线

在wikitext中,4个英文半角 - 在行首的时候会被解析成Html语言中的 <hr> 标签,这个时候会在 <hr> 标签前后行形成 <p> 标签,在部分结构里会因为多出来的 <p> 标签段落,导致一些样式结构错乱。

无序列表和有序列表样式

在Wikitext语法里,当 *#处于行首的时候改行内容会以无序列表的样式展现,解析的 <ul> 标签或<li> 标签会因为模板中出现换行而提前结束,导致模板中换行后内容被分割而出现异常。

换行与<p>

在Wikitext编辑器里,在文字文本之后敲一个回车之后,其实代表一个段落结束,敲回车前后内容被分别以两个 <p> 标签的段落分割,而不是以 <br> 进行分割,如果对段落敏感的样式,需要尤其注意。

段首的空格

在Wikitext语法里,段首的空格会解析成 <pre> 标签,一些样式和代码的写法里,尤其要注意。虽然不能对齐会很难阅读,但是目前除了像处理 <p> 标签那样用注释换行和空格外,没有更好的解决办法。

生成额外<p>标签解决方法

1,尽可能不换行。但是对于较复杂的语法,模板语法会很难阅读与分析结构,导致模板维护非常困难,

2,使用注释注销掉换行。注释写法内的内容会在解析时完全不解析,避免因为无意中的换行导致额外出现 <p> 标签。

例如Wikitext中如下的写法:

<div class=test3>
<span>测试文本</span>
<span>测试文本2</span>
</div>

在转化到HTML的时候会变成:

<div class=test3>
<p>
<span>测试文本</span>
<span>测试文本2</span>
</p>
</div>

但是如果用注释的写法来注销掉换行,就可以保证没有多余的 <p> 标签生成。

<div class=test3><!--
--><span>测试文本</span><!--
--><span>测试文本2</span><!--
--></div>

或这样写更容易阅读:

<!--
--><div class=test3><!--
  --><span>测试文本</span><!--
  --><span>测试文本2</span><!--
--></div>