Quantcast
Viewing all articles
Browse latest Browse all 27

latex for wordpress

最初用的是wp-latex,支持$latex latex_syntax $一直就这么用了。

因为这个插件是生成图片,这种方式显然不太好。发现MathJax之后,果断换成MathJax,最近发现空间快被占满了,而这个MathJax用掉了100多M,所以找个插件,可以用在线的MathJax服务器的,这样就可以把空间上的MathJax库删了。

latex for wordpress显然比较符合我的需求,但是发现不支持原先$latex latex_syntax $语法,最笨的办法莫过于把以前的blog文中的latex标记改过来,这绝对是个脏活。比较geek一点的做法是把数据库导出,用sed或awk做个全局替换,一两行代码可以解决,再把数据库导回去。

把插件从不支持改到它支持,这才显得有点hacker精神。

这一点也不难,无非是个正则表达式进行模式匹配的问题。修改插件的latex.php文件,找到匹配latex语句的函数:

function parseTex ($toParse) {
    // tag specification (which tags are to be replaced)
    $regex = '#\$\$(.*?)\$\$#si';    

    $toParse = str_replace(array("\(", "\)", "\[", "\]", "[latex]", "[tex]", "[/latex]", "[/tex]"), 
        array("$$", "$$", "$$!", "$$", "$$", "$$", "$$", "$$"), $toParse);

    return preg_replace_callback($regex, array(&$this, 'createTex'), $toParse);
}

做了一下修改,让它支持$latex latex_syntax $模式。这样子,以前博文里的latex标记,无需修改,就能够被正常解析。

function parseTex ($toParse) {
    // tag specification (which tags are to be replaced)   
    $regex = '#\$latex(.*?)\$#si';

    $toParse = str_replace(array("\(", "\)", "\[", "\]", "[latex]", "[tex]", "[/latex]", "[/tex]"), 
        array("$latex", "$", "$latex!", "$", "$latex", "$latex", "$", "$"), $toParse);

    return preg_replace_callback($regex, array(&$this, 'createTex'), $toParse);
}

Image may be NSFW.
Clik here to view.
hacker emblem

Related Posts


Viewing all articles
Browse latest Browse all 27

Trending Articles