给Blog添加了MathJax支持

先随便写一段公式试试吧:

mathjax \(\mathrm{The\ form\ of\ the\ Schr\ddot{o}dinger\ equation\ is:\ }\)

$
-\frac{\hbar^2}{2m}\nabla^2\Psi+V\Psi=i\hbar\frac{\partial\Psi}{\partial{}t}
$

看着还不错,这是相应的LaTeX代码:

\(\mathrm{The\ form\ of\ the\ Schr\ddot{o}dinger\ equation\ is:\ }\)

$
-\frac{\hbar^2}{2m}\nabla^2\Psi+V\Psi=i\hbar\frac{\partial\Psi}{\partial{}t}
$

原理很简单,这是JS代码:

jQuery(function ($) {  
    var codes = $('code');
    if (codes.length > 0) {
        var scriptSrc = 'https://cdnjs.cloudflare.com/' +
                        'ajax/libs/mathjax/2.7.2/MathJax.js?config=TeX-MML-AM_CHTML';
        $.getScript(scriptSrc, function () {
            codes.map(function () {
                var parentTag = $(this).parent().prop('tagName').toLowerCase();
                if (parentTag == 'pre' && $(this).hasClass('language-mathjax')) {
                    var node = $('<div>' + $(this).html() + '</div>');
                    $(this).parent().replaceWith(node);
                    MathJax.Hub.Queue(["Typeset", MathJax.Hub, node.get(0)]);
                    return;
                }
                var codeMatch = /^mathjax\s+(.*)$/.exec($(this).html());
                if (codeMatch) {
                    var node = $('<span>' + codeMatch[1] + '</span>');
                    $(this).replaceWith(node);
                    MathJax.Hub.Queue(["Typeset", MathJax.Hub, node.get(0)]);
                    return;
                }
            });
        });
    }
});

所有遇到诸如:

`mathjax xxxxxx`

这样的行内标注,或者

```mathjax
xxxxxx
```

这样的页内标注时,MathJax都会把其中的LaTeX代码转换成排版好的格式。