The Fox is watching you.

为什么是Typecho

未济可以说是对多余的知识一点也不知道。因此角度不可能从技术出发,无法对Typecho的效率等给出任何评价,只能从傻瓜式部署的角度说说。

在看到Typecho以前

由于朋友推荐,我最先关注到的是hexo,可以直接静态托管到github很是方便。但是我所幻想的一种模式是统一管理和可编辑的博文,并且也确实有这种需要,hexo在这一点上无法满足我。听说可以通过action自动构建,但终究不如一个编辑器来的实在方便。而且刚刚开始学前端,又好奇后端,总感觉hexo不尽兴。加之对如今前沿丝毫不了解,一度产生了自己从头写轮子的想法(逃)。结果写了几天三件套,把我丑陋的主页写了写,彻底是断了自己从头搭建博客的想法。
稍微了解了一下,感觉也就是hexo, WordPress, Halo这三家。真是机缘巧合,遇到了Typecho。二话没说直接上手,竟然出乎意料的顺利。

Typecho初体验

开箱即用是最爽的点。作者简直知我深浅,功能该有的都有,毫不拖泥带水有所多余;把包传到服务器时才注意到是真的小,500KB出头,简直可以忽略不计,满足我对小而美的一切想象。最让我惊喜的一点是有一个很好的后台管理系统,撰写文章直接markdown在线编辑就可以了,简直不能更方便。

功能完善而又不失简洁,Typecho给我留下了这样的印象。

白玉微瑕

部署完成后的第二件事情就是选个心怡的主题了。默认的主题其实就挺好的,但是肯定有更好的。抱着这样的想法我尝试搜索了一下,发现大部分主题更新的日期都是将近10年前了。这才让我注意到一件事情:Typecho在一段时期内不怎么更新。挑挑拣拣选择了Matcha这个主题。

截至文章发布的现在仍然有遗憾,以及我是怎么解决的:

  • 没有做出$\LaTeX$。这对我简直就是灾难。笔记怎么会没有公式呢,我总不能全部转成图片吧,那样占用就大太多了。BTW, 公式也太多,能麻烦死。参考了KaTeX的官方文档将KaTeX部署在前端,借鉴了追逐晨风的方法,如果塞到<head></head>而非<header></header>,则只能在预览时作用,而且行内公式无法识别。已经懒得思考了,找到了一个现成的插件AutoLaTeX。其中KaTeX使用的是min,我也不确定是配置问题还是原本就不支持,单$行内公式无法使用。我将KaTeX完整包中的css, js, auto-render放到了插件内,同步修改了plugin。这样就能正常使用了。另外我修改了一下插件,删除了Mathjax的部分。到此位置需要刷新才可以正确渲染公式,这是因为Matcha采用了Pjax技术,需要到后台添加回调函数:

    // Pjax回调函数中加入LaTeX渲染
    $(document).on('pjax:end', function() {
      triggerRenderingLaTeX(document.body);
    });

    关于之前失败尝试的实现如下:

    <!--我将katex放在了上级目录-->
    <link rel="stylesheet" href="../katex/katex.css">
    <script defer src="../katex/katex.js"></script>
    <script defer src="../katex/contrib/auto-render.js" onload="renderMathInElement(document.body);"></script>
    <script>
    renderMathInElement(document.body,
    {
    delimiters: [
    {left: "$$", right: "$$", display: true},
    {left: "$", right: "$", display: false}
    ]
    }
    );
    </script>

    下面是公式测试:

    $$ \tiny \boxed{ \begin{aligned} 扩散&以空位机制进行,则本征扩散系数可写成\\ D=&\frac{1}{6}fa^2{\nu}z\ {\exp}\left(\frac{{\Delta}S_1+2{\Delta}S_m}{2k}\right){\exp}\left(\frac{{\Delta}H_f+2{\Delta}H_m}{2kT}\right)\\ &=D_0{\exp}\left(\frac{{\Delta}H_f+2{\Delta}H_m}{2kT}\right) \end{aligned} } $$

  • 标签存在问题,现在也不知道是Typecho自己的问题还是Matcha的问题。还在排查中,但倾向于认为是Matcha的问题,毕竟不再更新了。update: 已修复问题。确认是Matcha主题的main.php存在问题。

    <!--matcha/includes/main.php-->
    <!--Line 12 to Line24-->
    <!--forget two "php" before "$this"-->
    elseif($this->is('tag')){ ?>
    <h3 class="tag-page-title"><? $this->archiveTitle('%s', '', ''); ?></h3><?php
    }
    else{ ?><h3 class="archive-title"><?php
    $this->archiveTitle(array(
    'category'  =>  _t('分类 %s 下的文章'),
    'search'    =>  _t('包含关键字 %s 的文章'),
    'tag'       =>  _t('标签 %s 下的文章'),
    'author'    =>  _t('%s 发布的文章')
    ), '', ''); 
    ?></h3><?php
    }
    } ?>

添加新评论