目前常见方案及其劣势:
- 使用Mathjax-Latex插件或在网页的header文件中加Mathjax代码。劣势在于可能需要在网页端写文章,且公式编辑不如直接在Markdown编辑器(例如Typora)中写Latex方便,且行内公式不能直接使用$…$(Mathjax的通病),对于大量使用公式的文章非常麻烦。
- 使用Markdown插件如WP Githuber MD编辑,优势在于可以直接在本地写Markdown文件后粘贴过去,且有Mathjax等公式的在线支持。但WP Githuber MD插件对公式的支持并不完美,此外,本站考虑到还有以前含有公式的文章,并不希望网站完全依赖于此编辑器。
本站目前采取的方案:
本地文章编辑(Typora/VS code)+Mathjax-Latex插件(提供公式支持,也可以在header文件中插入代码)+WP Githuber MD插件。
步骤:
- 本地把文章和公式编辑完成。
- 在本地把Latex行内公式$…$替换成Mathjax格式,使用正则表达式替换:
对于:$E=mc^2$ 查找:(\$)(.*?)(\$) 替换:\($2\) 得到:\(E=mc^2\)
显示:\(E=mc^2\)
- 把替换后的文本粘贴到WP Githuber MD的编辑窗口。(直接粘贴到区块编辑器会吞掉文本中的“\”下划线,对公式影响很大,且会识别部分公式为短代码)。
- 由于WP Githuber MD对公式的支持有缺陷,直接预览会有部分问题。在保存草稿后需要转换为区块编辑器,预览无误后即可发表。
其他:
禁用WP Githuber MD插件后,用WP Githuber MD编辑的文章仍可正常显示。平时不需要大量输入公式的时候可以禁用,直接使用区块编辑器。
古腾堡区块编辑器是WordPress 5.0版之后发布的,现在还有许多bug。目前WordPress以区块编辑器为未来方向,且区块编辑器已经有很多明显的优势,希望未来能直接粘贴公式到区块编辑器中。
这已经是笔者现阶段能找到的最优雅的在WordPress中使用Mathjax公式的方法了。