优先级/严重性: 低?
平台: 使用新 RTE 的设备。
描述: 创建自定义令牌类型,以前仅使用 markdown-it 引擎即可正常工作,但在 ProseMirror 中会导致错误。由于没有 ProseMirror schema 来处理解析到 DOM 的内容,任何自定义令牌类型都会产生错误。同样,在 RTE 和带有 BBCode 的 Markdown 之间切换时也会出现行为问题。
重现步骤:
先 RTE:
- 打开编辑器
- 将模式设置为 RTE
- 插入自定义 BBCode。
a. 例如,在 Discourse Meta 中:[wrap=test2 user-id=1]Content[/wrap] - 忽略错误并切换 RTE 和 md 模式。
a. BBCode 被转义
先 Markdown:
- 打开编辑器
- 将模式设置为 Markdown
- 插入自定义 BBCode。
- 在 md 模式和 RTE 之间切换。
a. BBCode 不可见
- 切换回以查看原始代码。
当前解决方法:
仅使用 Markdown 模式。
出现错误本身不是什么大问题,更大的问题在于切换时或插入代码时的奇怪行为。
理想的解决方案是让每个 markdown 插件创建一个合适的向导/ProseMirror schema 来处理它。
关于通用的 [wrap] bbcode,也许最好让它保留为纯文本,因为在同一个 Discourse 实例中可能有多个组件使用通用的 bbcode。理想的解决方案可能是让开发人员创建自定义向导并将其输出匹配到他们自己的实现,并在找不到匹配项时将其回退为纯文本。
更广泛地说,对于任何尚未更新为使用 ProseMirror 的现有插件,让它默认使用纯文本(未转义/隐藏)将是一个很好的临时回退方案。


