从表面上看,这个问题类似于How to add custom image tag to pagedown? 然而,在实践中,我认为解决方案将采取非常不同的形式。
使用PageDown,您可以通过<img>
两种不同的方式将标签添加到文本块:
![MY IMAGE](http://myurl.com/myimage.png)
<img src='myimage.png'>
查看代码,第一种方法在_DoImages
中处理Markdown.Converter.js
,创建一个<img>
标签,其中包含适当的信息。第二种方法在sanitizeHtml
(调用sanitizeTag
和使用img_white
)中处理Markdown.Sanitizer.js
。
我要补充的是,每个<img>
成功通过 Markdown 的标签都添加了一个 CSS 类(例如,“user-img”)。
因此,例如,<img src='myimg.png' width='100' height'100'>
将成为<img src='myimg.png' width='100' height='100' class='user-img'>
检查 Pagedown 的结构,我认为在我自己的代码中将这个功能添加为在“postConversion”阶段操作的“插件挂钩”是最有意义的(即,我不必在 Pagedown 中更改任何内容)。在伪代码中,我认为我的代码的代码更改看起来像这样:
init function
:
this.converter = Markdown.getSanitizingConverter();
this.converter.hooks.chain("postConversion", userifyImages);
userifyImages(html_text)
:
// note: `html_text` is just a plain string
for every <img> tag that still exists (i.e., is valid) in html_text:
add "class='user-img'" to the tag
我猜有一个相对简单的正则表达式要根据该规则构建,但恐怕我没有推导出一个。
所以我有两个问题:
(1) 考虑到 Pagedown 的结构,您认为这种方法有意义吗?
(2) 你知道我如何创建一个正则表达式来进行我需要的操作吗?(或者,当然,在不使用正则表达式的情况下解决问题。)
感谢您的时间。