如何使用wiky.js将wiki文件的有序列表解析为HTML?

时间:2016-07-19 12:01:01

标签: javascript html regex wikitext

我需要使用wiky.js将wikitext的有序列表解析为html。这个javascript主要使用正则表达式来做到这一点。

E.g。

# 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使用旧版本的解析有序列表,现在维基编辑器不支持。

1 个答案:

答案 0 :(得分:0)

添加以下内容:

{
    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>标签的潜在无限递归级别。

我不会向你解释这些代码,因为我已经使用了一些肮脏的权宜之计,其逻辑难以展开。