苦恼了许久的问题
原先计划将hustoj的默认编辑器修改为markdown且支持数学公式,相中了editor.md没想到,这才是苦难的开始啊。
1、配置还是见github吧,是最新的,各种博客文章写得乱啊。
2、数学公式用的KateX方案,两个$$和//各种不舒服。
目的
本文旨在解决数学公式优雅的在markdown中共存,并且得到展示的方案。关键步骤
1、编辑和展示时,取消默认的公式功能。
2、展示页面采用mathjx数学公式展示发。
3、存贮时,将md和html各存一份到数据库,md用于编辑,html用于前端展示。
具体实现:
1、取消数学公式,在配置里写上,不写默认也不展示。
tex:false,
2、动态加载mathjax
将存贮的html字符输出,并且在前端展示页面的head添加代码:
<!--以下为了加载公式的使用而既加入-->
<script src="markdown/polyfill.min.js?features=es6"></script>
<script>
MathJax = {
tex: {inlineMath: [['$', '$'], ['(', ')']]}
};
</script>
<script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-chtml.js">
</script>
此时基本可以显示数学公式了。但是麻烦才刚刚开始,就是markdown中的转义导致数学公式展示必须用"//"非常烦人。不能直接将typora编辑好的复制过来,为了解决这个问题,熬夜几天后找到解决方案了。
找到markedlibmarked.js,先备份后修改。修改内容
escape: /^([`*{}[]()# +-.!_>])/,
修改为:
escape: /^([`*[]()# +-.!_>])/,
此时就基本正常啦。基本的使用没问题,数学公式也正常加载了。
参考大牛博客
Mathjax
主要是参考这个,但后面那个我没改,改了不能显示斜体了。
让marked与MathJax和谐共存