为Typecho增加Latex公式支持
LATEX是一种很厉害的排版系统,可以支持非常漂亮的公式显示,并且由于它语法相对比较简单,非常适合嵌入到markdown
中使用。
然而typecho默认并不支持LATEX,好在我们可以通过插件来“曲线救国”。
先看一下最终效果。公式:
$$
{\begin{array}{*{20}{l}}
{a\mathop{{x}}\nolimits^{{2}}+bx+c=0}\\
{\text{则方程的两根为:}}\\
{\mathop{{x}}\nolimits_{{1}}=\frac{{-b+\sqrt{{\mathop{{b}}\nolimits^{{2}}-4ac}}}}{{2a}}}\\
{\mathop{{x}}\nolimits_{{2}}=\frac{{-b-\sqrt{{\mathop{{b}}\nolimits^{{2}}-4ac}}}}{{2a}}}
\end{array}}
$$
最终显示效果:
$$ {\begin{array}{*{20}{l}} {a\mathop{{x}}\nolimits^{{2}}+bx+c=0}\\ {\text{则方程的两根为:}}\\ {\mathop{{x}}\nolimits_{{1}}=\frac{{-b+\sqrt{{\mathop{{b}}\nolimits^{{2}}-4ac}}}}{{2a}}}\\ {\mathop{{x}}\nolimits_{{2}}=\frac{{-b-\sqrt{{\mathop{{b}}\nolimits^{{2}}-4ac}}}}{{2a}}} \end{array}} $$
插件源码如下:
<?php
/**
* MathJax 公式插件
*
* @package MathJax
* @author TechQI
* @version 0.0.1
* @link https://www.techqi.top/
*/
class MathJax_Plugin implements Typecho_Plugin_Interface {
/**
* 激活插件方法,如果激活失败,直接抛出异常
*/
public static function activate() {
Typecho_Plugin::factory('Widget_Archive')->header = array('MathJax_Plugin', 'header');
}
/**
* 禁用插件方法,如果禁用失败,直接抛出异常
*/
public static function deactivate() {}
/**
* 获取插件配置面板
*/
public static function config(Typecho_Widget_Helper_Form $form) {}
/**
* 个人用户配置面板
*/
public static function personalConfig(Typecho_Widget_Helper_Form $form) {}
/**
* 插件实现
*/
public static function header() {
echo '<script id="MathJax-script" async src="//cdn.bootcss.com/mathjax/3.0.5/es5/tex-mml-chtml.js"></script>';
}
}