hawm
(Hawm)
1
我的用例是在使用 bbcode 的 replace 规则时禁用/启用 bbcode 规则。
replace: function (state, tagInfo, content) {
const source = state.push("my_token", "div", 0);
try {
md.block.bbcode.ruler.disable("ruleName")
source.children = state.md.parse(content, {});
} finally {
md.block.bbcode.ruler.enable("ruleName")
}
return true
}
我注意到这里的 TODO 注释很久以前就有了,有什么计划实现它吗?
我们的项目是否会让你感兴趣?我们正在接近尾声:
我们发现使用 markdownit 来处理任何复杂的 bbcode 都很痛苦,所以我们正在将 bbob 插入到 Discourse 中。
hawm
(Hawm)
4
移动到 markdownit ruler 将允许在开始新的解析时启用/禁用规则,这使得它具有灵活性和类似于原生 markdownit 规则的行为。
例如,我想推送一些 bbcode 规则但默认不启用它们,然后在需要时启用它们(就像 OP 中的示例一样)。目前,自定义 Ruler 无法做到这一点,也许可以通过一些技巧(通过解析环境或手动修改 ruler 的规则)来实现?
[foo]
不在 bar 内的包装不应进行标记
[/foo]
[bar]
[foo]
在 bar 内的包装应进行标记
[/foo]
[/bar]
我不创建原生 markdownit 规则而使用 bbcode 的原因是,实现像 bbcode 这样的规则将是困难且难以维护的,而且 bbcode 已经存在了。
做得很好,但我的用例有所不同。
而且我喜欢你这里的代码,它启发了我对其他问题的担忧。
1 个赞
sam
(Sam Saffron)
5
就像现在对待 [wrap] 这样的所有 bbcode 一样?将它们包装在 div 中?
我想说你所描述的听起来更像是自定义的 markdownit 规则/插件,而不是核心需要实现的东西?