记录一下建站过程中踩过的坑:
- 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表示这是自己的问题,所以在mathjax更新前正确的操作见这条#issue2220
简陋的自制点赞计数功能
一般来说,要实现点赞计数,必须得有一个后台服务器,如果想要防止刷赞,还得有可靠的手段来确认用户身份。Github托管的博客既没有后台也不能确认身份,但依然可以弄一个像那么回事儿的点赞系统出来。方法如下:
- 在LeanCloud中申请一个开发者账户,新建一个数据class,搞一列记录点赞数的数据项(上图)
- LeanCloud提供免费的存储空间,并且有便捷的API方便我们修改这些数据,见用户文档
- 点赞需要的小手手图标可以从font awesome icons里找到,阿里也提供了一些免费的好看图标,见阿里巴巴矢量图标库
- 实现一些必要的逻辑(代码见commit b8e98):
- 临时存储一个bool变量,以确定用户点了还是没点
- 每次点赞之后对云端数据进行相应修改
- 同步总赞数
- ……
PREVIOUSHello World!
NEXT李代数逻辑链整理