Jekyll踩坑记录

 

记录一下建站过程中踩过的坑:

  • MathJax升级到V3
  • 简陋的自制点赞计数功能

MathJax升级到V3

Jekyll生成网页的时候,会用Kramdown来先处理一遍markdown文件,转换成html之后,如果需要显示数学公式,再调用MathJax来渲染。

TextTheme框架中自带的是mathjax2,但是mathjax3加了好多好康好用的新功能!比方说给搞物理人的几个扩展包,含有Dirac Notation之类的好东西:

\[\bra{\Psi}, \quad \ket{\Psi}, \quad \braket{\Psi|\Psi}\]

并且调用的时候换了许多更优雅的实现。上手也超级容易,只要照着官方文档一通搞。

然而,Kramdown会将$\TeX$形式的段间公式

$$ A+B=C $$

转化成

<script type="math/tex; mode=display">A+B=C</script>

mathjax2是认得这个标记的,但是mathjax3不认得了。起初我以为这全怪Kramdown没有与时俱进,应该去催Kramdown更新,没成想mathjax表示这是自己的问题:joy:,所以在mathjax更新前正确的操作见这条#issue2220

简陋的自制点赞计数功能

一般来说,要实现点赞计数,必须得有一个后台服务器,如果想要防止刷赞,还得有可靠的手段来确认用户身份。Github托管的博客既没有后台也不能确认身份,但依然可以弄一个像那么回事儿的点赞系统出来。方法如下:

screenShot

  • 在LeanCloud中申请一个开发者账户,新建一个数据class,搞一列记录点赞数的数据项(上图)
  • LeanCloud提供免费的存储空间,并且有便捷的API方便我们修改这些数据,见用户文档
  • 点赞需要的小手手图标可以从font awesome icons里找到,阿里也提供了一些免费的好看图标,见阿里巴巴矢量图标库
  • 实现一些必要的逻辑(代码见commit b8e98):
    • 临时存储一个bool变量,以确定用户点了还是没点
    • 每次点赞之后对云端数据进行相应修改
    • 同步总赞数
    • ……

This work is licensed under a Attribution-NonCommercial 4.0 International license. Attribution-NonCommercial 4.0 International

ᐕ) 赞 0