博客迁移小记

一点闲话

扯一点闲话,这半年发生了不少事,导致博客断更了半年多。一言难尽,就上一句心灵鸡汤来概括吧,顺便弘扬一下正能量:

所有的事情最后都会有好结局,如果你觉得结局不好,那是因为还没有到最后。

迁移原因

进入正题,这两天闲下来之后,也是起了心思,想把博客从wordpress迁移到静态博客上,原因如下:

  1. 最近用惯了markdown,想更方便地写东西,更加专注于内容。而wordpress没有好用的markdown插件,以前都是写tex里然后往博客上粘贴,太麻烦了。
  2. 作为一个不称职的程序员,用了这么久的wordpress,现在终于想要有一点control every thing的感觉,自己动手折腾个静态博客,顺便学习一下javascript,jquery,css基础。
  3. 还有就是静态博客的普遍优点了,比如不用服务器,省了买空间的钱(免费的Github Pages),访问速度快,容易被搜索引擎抓取等。

静态博客先使用了Github推荐的Jekyll,发现需要自己搞的东西太多,于是转用了基于node.js的Hexo。Hexo有以下优点:

  1. 生成文章速度非常快。
  2. 命令简单,只需要会hexo nhexo ghexo shexo d就能 搞定一切。
  3. 中文用户多,文档和插件比较全。
  4. 能通过插件解决markdwon和mathjax冲突问题。

搭建参考

在搭建过程,主要参考了以下文章:

以上的文章已经足够基本了解hexo博客的整个搭建过程了,只需要照做即可。我的博客主题是基于landscape-plus改的,另外参考了howiefh的 landscape-f主题,添加了多说最近评论小部件以及我自己写的浏览计数小部件。图片都托管在七牛云存储上。

迁移问题

在博客从wordpress迁移到hexo的过程中,主要碰到的问题及解决办法如下:

  1. 原wordpress博客链接的死链问题。原先我wordpress文章链接用的是坑爹的默认生成方式,是通过?传p的参数来获取文章的URL。问题是p是个随机数字,我又没办法在静态页面上动态地获取p的值做重定向。现在折衷的解决办法是暂时不改域名,先用着github提供的二级域名,然后在原域名上用wordpress的Redirect插件对文章链接做301重定向,看看搜索引擎能不能把原文章的URL给改了。 (我会尽快把这个域名的DNS解析转到github的博客上来)。目前你可以通过www.crescentmoon.info访问原wordpress博客,但是点击任何文章都会跳转到新博客来:-D。这个没有成功,请从搜索引擎点文章名过来的读者在博客页面寻找一下那篇文章吧囧。
  2. mathjax和markdown渲染冲突问题。因为markdown的解析要优先于mathjax,所以经常会导致mathjax渲染失败,需要玩一些tricks,比如latex语法中的下标’_‘要改成转义的’\_’, equation环境需要套一个div标签或者rawblock环境等,带来了无穷无尽的麻烦。还好hexo上有大神写的hexo-renderer-pandoc插件,用pandoc去代替默认的markdown渲染器,完美地解决了这个问题。
  3. 文章的浏览数小部件问题。原先我的wordpress有个显示文章浏览数的小插件,现在换成静态网页了,就必须用第三方的服务实现这个功能,具体请见下一篇博客啦。
  4. 多说评论没有跟过来的问题,这个正在解决中。