我试过在网上搜索,但似乎涉及这个主题的主题非常稀少,而且--缺少关于PageDown的Google代码页面的信息,似乎没有太多关于这个主题的内容(更不用说任何全面的内容)。
我正在尝试使用preBlockGamut或preSpanGamut向preBlockGamut添加自定义格式,这两种格式都没有完成我希望它做的事情。
我想要做的事情应该很简单:我希望在<del>标记之间格式化出现在两个倾斜体之间的任何文本。
到目前为止,我已经尝试过各种使用preBlockGamut的方法,这个方法提供了最接近我想要的东西:
converter.hooks.chain("preBlockGamut", function (text, rbg) {
return text.replace(/~(.*?)~/, function (whole, inner) {
return "<del>" + inner +"</del>";
});
});这只是在某种程度上像预期的那样工作,因为它围绕文本的第一个实例,如:<del>T{inner text}</del>T。这只发生在第一种情况下,我也不知道T是从哪里来的,因为--据我所知,我的代码--它在正则表达式或替换程序中没有任何位置。
我知道preBlockGamut应该用于块级语句,所以我尝试了一种与preSpanGamut类似的方法,但没有更好的结果。
有没有人在这方面有任何经验,可以提供一些洞察这一问题?我显然做错了什么,但我似乎不知道在哪里。
发布于 2014-06-05 18:09:25
在浏览了一下PageDown的文件之后,我找到了问题的来源。
Markdown.Converter.js有以下几行:
// attacklab: Replace ~ with ~T
// This lets us use tilde as an escape char to avoid md5 hashes
// The choice of character is arbitray; anything that isn't
// magic in Markdown will work.
text = text.replace(/~/g, "~T");这在preBlockGamut钩子生效之前执行,导致~{inner text}~变成~T{inner text}~T,然后解析为<del>T{inner text}</del>T。
https://stackoverflow.com/questions/24053367
复制相似问题