从WordPress迁移到hexo

从WordPress迁移到hexo,为什么呢?因为我发现自己业余项目购置的两台阿里云主机,可申请的发票面额超过了1万,上面一共运行了两个网站一个Wordpress,都是基于兴趣而创建的,然而在长期的充值下,花费已经超出了预期,首先考虑把博客迁移出去,因为作为日志来说显得过于笨重,需要维护PHP,MySQL虽说上面有几个自定义的Page还有一个PHP在线小工具,但就这样吧,谁会记得呢?后面再考虑关闭一个目前只有演示作用的网址,直接减少一台云主机的费用。

下面记录迁移过程:

hexo init mine-blog

npm install hexo-migrator-wordpress --save

hexo migrate wordpress suntory.wordpress.2018-08-15.xml 

hexo server

hexo migrate wordpress 没有处理文章中的图片,我把生成的source目录删除了,寻找别的方法,这里作下记录。

尝试启动server时报错:

Package hexo-renderer-sass is not installed.

安装依赖:

npm i hexo-renderer-sass --save

安装过程中报错

fatal error: 'sass/context.h' file not found

brew install libsass

采用hexo-migrator-wordpressimg来migrate
npm install hexo-migrator-wordpressimg --save
hexo migrate wordpressimg suntory.wordpress.2018-08-15.xml www.bungos.me
hexo-migrator-wordpressimg 会下载文章里的图片并把markdown里的地址替换成本地相对路径。
这里有三个问题:

  • 匹配图片的正则有点简单,我文章里的包含中文的图片路径无法匹配到
  • 下载图片的时候url没有encode导致无法下载包含中文路径的图片
  • 对于Page路径包含/时替换后的路径仍是相对source目录的

所以最后我用了我修改后的版本解决了前两个问题
https://github.com/bung87/hexo-migrator-wordpressimg

然而这还没有完,有的图片没有下载完整,最后我不得不直接把服务器上WordPress的wp-content/uploads直接下载了下来。

查看最终的效果:
发现图片有[caption]的替换后的markdown成了\[caption\],手动处理了几篇。

codeblock由于原来我在WP采用的是自动识别的方案,而生成的并没有语法高亮,我不得不手动修改成markdown的codeblock的语法。

而个别的codeblock语法高亮还是有问题,语法虽然识别了,但整个块并未包裹highlight的class,导致没有颜色而class为number的数字异常的大,我不得不使用

{% codeblock %}
严格编码 - HTML 第一篇 gulp + browser-sync + django 实现livereload开发
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×