问题描述
我创建了一个 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 (将#修改为@)