Merge pull request #3 from mutoo/master

Add GoogleAnalytics Plugin and Upgrade LaTex Plugin
This commit is contained in:
joyqi 2013-12-11 19:56:13 -08:00
commit 448da96487
4 changed files with 103 additions and 14 deletions

View File

@ -0,0 +1,68 @@
<?php
/**
* Google Analytics
*
* @package GoogleAnalytics
* @author mutoo
* @version 1.0.0
* @link http://typecho.org
*/
class GoogleAnalytics_Plugin implements Typecho_Plugin_Interface
{
/**
* 激活插件方法,如果激活失败,直接抛出异常
*
* @access public
* @return void
* @throws Typecho_Plugin_Exception
*/
public static function activate()
{
Typecho_Plugin::factory('Widget_Archive')->footer = array('GoogleAnalytics_Plugin', 'render');
}
/**
* 禁用插件方法,如果禁用失败,直接抛出异常
*
* @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)
{
/** 分类名称 */
$account = new Typecho_Widget_Helper_Form_Element_Text('account', NULL, 'UA-XXXXXXX-X', _t('Google Analytics 帐号'), _t('此帐号可在 GA 管理平台查询;格式为 UA-XXXXXXX-X 。'));
$form->addInput($account);
}
/**
* 个人用户的配置面板
*
* @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()
{
$account = Typecho_Widget::widget('Widget_Options')->plugin('GoogleAnalytics')->account;
echo "<script type=\"text/javascript\">var _gaq = _gaq || [];_gaq.push(['_setAccount', '{$account}}']);_gaq.push(['_trackPageview']);(function() {var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);})();</script>";
}
}

View File

@ -4,7 +4,7 @@
*
* @package LaTex
* @author mutoo
* @version 1.0.0
* @version 1.1.0
* @link http://blog.mutoo.im/LaTex.html
*/
class LaTex_Plugin implements Typecho_Plugin_Interface
@ -39,7 +39,10 @@ class LaTex_Plugin implements Typecho_Plugin_Interface
* @param Typecho_Widget_Helper_Form $form 配置面板
* @return void
*/
public static function config(Typecho_Widget_Helper_Form $form){}
public static function config(Typecho_Widget_Helper_Form $form){
$mark = new Typecho_Widget_Helper_Form_Element_Text('mark', NULL, 'latex', _t('自定义标记'), _t('在 Markdown 语法环境下使用以下代码进行公式转换:<blockquote>```自定义标记<br/>公式<br/>```</blockquote>'));
$form->addInput($mark);
}
/**
* 个人用户的配置面板
@ -60,5 +63,7 @@ class LaTex_Plugin implements Typecho_Plugin_Interface
public static function footer() {
$jsUrl = Helper::options()->pluginUrl . '/LaTex/latex.js';
echo '<script type="text/javascript" src="'. $jsUrl .'"></script>';
$mark = Typecho_Widget::widget('Widget_Options')->plugin('LaTex')->mark;
echo '<script type="text/javascript">latex.parse("'. $mark. '");</script>';
}
}

View File

@ -1,13 +1,29 @@
(function() {
var $ = document.querySelectorAll.bind(document);
var latex = $('code.lang-laTex, code.lang-latex, code.lang-tex');
for (var i = 0, l = latex.length; i < l; i++) {
var node = latex[i];
var latex_image = document.createElement("img");
latex_image.src = "http://latex.codecogs.com/png.latex?"+ node.innerHTML;
(function(global) {
var previousLatex = global.latex;
var parent = node.parentNode;
parent.insertBefore(latex_image, node);
parent.removeChild(node);
global.latex = {
parse: function(mark) {
if (!mark) {
return;
}
var $ = document.querySelectorAll.bind(document);
var nodes = $('code.lang-' + mark);
for (var i = 0, l = nodes.length; i < l; i++) {
var node = nodes[i];
var latex_image = document.createElement("img");
latex_image.src = "http://latex.codecogs.com/png.latex?" + node.innerHTML;
// replace with image
var parent = node.parentNode;
parent.insertBefore(latex_image, node);
parent.removeChild(node);
}
},
noConflict: function() {
global.latex = previousLatex;
return this;
}
}
})();
})(this);

View File

@ -2250,7 +2250,7 @@ var zen_editor = (function(){
* @include "editor.js"
* @include "../../aptana/lib/html_matcher.js"
* @include "../../aptana/lib/zen_coding.js"
*/
*/
/**
* Search for abbreviation in editor from current caret position