如何用javascript修改预览?

这与我之前的一个问题有关。不过,由于这是一个新问题,所以我新建了一个主题。

在主题组件中,使用 JavaScript 修改预览(即撰写帖子时看到的预览)的最佳方式是什么?

我知道可以在 decorateCookedElement 中修改 DOM(在渲染完成后),但如果能有一个类似 addPostTransformCallback 的功能,允许你将已渲染的帖子作为字符串(通过 t.cooked)进行修改,那就太好了。不过,addPostTransformCallback 在预览更新时并不会被调用(仅在首次打开帖子进行编辑时调用)。

您只想更新预览,还是也想影响已提交帖子的显示效果?

我想同时更新预览和已提交的帖子(但不想保存修改:slightly_smiling_face)。

我担心如果直接通过 decorateCookedElement 修改 DOM 会导致性能过慢。不过,我还需要进行一些测试来确认实际情况是否如此。

已提交的帖子将在服务器上重新处理,因此要使修改生效,您需要使用插件,而不是主题组件。

这篇帖子涵盖了该主题:Repackaging a markdown-it extension as a Discourse plugin

谢谢!我一定会去看看。