Wikitext语法解析Html代码的一些需要注意事项
阅读
2021-09-07更新
最新编辑:顾小满real
阅读:
更新日期:2021-09-07
最新编辑:顾小满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>