header = array(__CLASS__, 'header');
Typecho_Plugin::factory('Widget_Archive')->footer = array(__CLASS__, 'footer');
Typecho_Plugin::factory('admin/write-post.php')->content = array(__CLASS__, 'header');
Typecho_Plugin::factory('admin/write-post.php')->bottom = array(__CLASS__, 'footer');
}
/**
* 禁用插件方法,如果禁用失败,直接抛出异常
*
* @static
* @access public
* @return void
* @throws Typecho_Plugin_Exception
*/
public static function deactivate() {}
/**
* 获取插件配置面板
*
* @access public
* @param Typecho_Widget_Helper_Form $form 配置面板
* @return void
*/
public static function config(Typecho_Widget_Helper_Form $form) {
$renderingList = array(
'KaTeX' => 'KaTeX',
'MathJax' => 'MathJax',
);
$name = new Typecho_Widget_Helper_Form_Element_Select('rendering', $renderingList, 'KaTeX', _t('选择 LaTeX 渲染方式'));
$form->addInput($name->addRule('enum', _t('请选择 LaTeX 渲染方式'), $renderingList));
}
/**
* 个人用户的配置面板
*
* @access public
* @param Typecho_Widget_Helper_Form $form
* @return void
*/
public static function personalConfig(Typecho_Widget_Helper_Form $form) {}
/**
* 插件实现方法
*
* @access public
* @return void
*/
public static function render() {}
/**
* 添加额外输出到 Header
*
* @access public
* @return void
*/
public static function header() {
$pluginDir = Helper::options()->pluginUrl . '/AutoLaTeX';
$rendering = Helper::options()->plugin('AutoLaTeX')->rendering;
switch($rendering) {
case 'MathJax':
break;
case 'KaTeX':
echo <<
HTML;
break;
}
}
/**
* 添加额外输出到 Footer
*
* @access public
* @return void
*/
public static function footer() {
$pluginDir = Helper::options()->pluginUrl . '/AutoLaTeX';
$rendering = Helper::options()->plugin('AutoLaTeX')->rendering;
switch($rendering) {
case 'MathJax':
echo <<
HTML;
break;
case 'KaTeX':
echo <<
HTML;
break;
}
echo <<
document.addEventListener("DOMContentLoaded", function() {
var wmdPreviewLink = document.querySelector("a[href='#wmd-preview']");
var wmdPreviewContainer = document.querySelector("#wmd-preview");
if(wmdPreviewLink && wmdPreviewContainer) {
wmdPreviewLink.onclick = function() {
triggerRenderingLaTeX(wmdPreviewContainer);
};
}
});
HTML;
}
}