微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决由 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 举报,一经查实,本站将立刻删除。