我需要使用wiky.js将wikitext的有序列表解析为html。这个javascript主要使用regex来实现这一点。
例如
# Item1
# Item2
# Item3
# Item4
## Sub-item 1
### Sub-sub-item
显示为
1.Item1
2.Item2
3.Item3
4.Item4
1.Sub-item 1
1. Sub-sub-item
我需要得到HTML版本的代码。目前wiky.js使用的是旧版本的解析有序列表,而Wiki编辑器现在不支持该版本。
添加以下内容:
{
rex: /^((#*)[^#].*(n))(?=#2)/gm,
tmplt: "$1<ol>$3"
},
{
rex: /^((#+).*(n))(?!2|<ol)/gm,
tmplt: "$1</ol>$2.$2$3"
},
{
rex: /#(?=(#+).#+n(?!1))/gm,
tmplt: "</ol>"
},
{
rex: /(</ol>)[#.]+/gm,
tmplt: "$1"
},
{
rex: /^((#+).*(n))(?=2[^#]|</ol)/gm,
tmplt: "$1</li>$3"
},
{
rex: /^(</ol>(n)*)#+/gm,
tmplt: "$1</li>$2<li>"
},
{
rex: /^#+/gm,
tmplt: "<li>"
}
希望按照这个顺序执行。这将涵盖<ol><li></li></ol>
标记的潜在无限递归级别。
我不向你解释代码,因为我使用了一些肮脏的权宜之计,其逻辑很难展开。