mpMath: 与微信公众号的斗智之旅(1)

💡 原文中文,约3500字,阅读约需9分钟。
📝

内容提要

文章讨论了mpMath与微信公众号新版编辑器不兼容的问题。作者发现微信编辑器通过MutationObserver自动移除特定标签,并编写用户脚本禁用或钩住MutationObserver。最终确认问题源于编辑器切换到ProseMirror,并通过添加参数成功避免使用新编辑器。

🎯

关键要点

  • mpMath与微信公众号新版编辑器不兼容,导致公式转换功能失效。
  • 微信编辑器通过MutationObserver自动移除特定标签,如mjx-container和mathml。
  • 作者尝试通过用户脚本禁用MutationObserver,但影响了其他功能。
  • 最终确认问题源于编辑器切换到ProseMirror,并通过添加参数成功避免使用新编辑器。

延伸问答

mpMath与微信公众号新版编辑器不兼容的原因是什么?

原因是微信编辑器通过MutationObserver自动移除特定标签,导致mpMath的公式转换功能失效。

MutationObserver在微信编辑器中起什么作用?

MutationObserver用于监听页面变更,并自动移除mjx-container和mathml等标签。

作者是如何尝试解决mpMath与微信编辑器不兼容的问题的?

作者尝试通过用户脚本禁用MutationObserver,但这影响了其他功能,最终通过添加参数避免使用新编辑器。

mpMath的公式转换功能是如何工作的?

mpMath通过一键公式转换将文档中的公式绘制成SVG格式。

微信编辑器切换到ProseMirror对mpMath有什么影响?

切换到ProseMirror导致原有基于ueditor的方式不再兼容,从而影响mpMath的功能。

如何通过用户脚本解决微信编辑器的问题?

可以通过用户脚本钩住MutationObserver,控制其行为以允许mjx-container等标签存在。

➡️

继续阅读