由 Showdown 扩展包装在 HTML 中的 Markdown 未解析

问题描述

我创建了一个 Showdown 扩展,它将内容包装在一个带有图标的 div 结构中,如下所示。

showdown.extension('json-value',function()
    {
    'use strict';

    return [
        {
        type: 'lang',regex: /^(?:[ \t]*)<>(?!>>)(?:[ \t]*)(.+?)$/gm,replace: function(match,text)
            {
            return '<div class="json-value"><div>@icon-code</div><div>' + text + '</div></div>';
            }
        },{
        type: 'lang',regex: /^(?:[ \t]*)<>>>(?:[ \t]*)([^]+?)\n>>>/gm,text)
            {
            return '<div class="json-value"><div>@icon-code</div><div>' + text + '</div></div>';
            }
        }
    ];
    }
);

这将对 Markdown 文本进行操作,例如:

<> This is a **JSON value** test!

<>>>    This is another JSON value test!

| Value | Meaning
| :---- | :------
| `VI`  | VFR/IFR - visual and instrumentation flight rules
| `V`   | VFR - visual flight rules
| `I`   | IFR - instrumentation flight rules

>>>

@icon-code 是另一个扩展程序的降价格式,它正确地创建了一个图标。

问题是,如果我在匹配的文本之后添加 HTML,它会导致无法解析该文本中的任何降价。所以在上面的例子中,粗体文本和表格没有转换为 HTML。

但是,如果我将返回行更改为:

return '<div class="json-value"><div>@icon-code</div><div>' + text;

或者:

return '<div class="json-value"><div>@icon-code</div><div></div></div>' + text + '';

然后markdown就被正确解析了。谁能建议如何包装匹配的文本并仍然有完整的解析?谢谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)