带着hexo来问好
早就想从wordpress换成hexo,因为想好好体验一下markdown编辑博客,而且直接用html语法直接实现文章样式的修改。只是一直没有契机。
最近因为想给自己的站加上https,所以在阿里云上买了个云主机,顺势把博客也搬到了阿里云。既然有了云主机,索性搭了个hexo环境,尝试把wordpress的文章导入hexo里。不过这两天折腾下来,发现自己原先有一些误区,用牢骚的方式记录一下。
Hexo简介
Hexo 是一个快速、简洁且高效的博客框架。Hexo 使用Markdown(或其他渲染引擎)解析文章,在几秒内,即可利用靓丽的主题生成静态网页。
原先看着这段简介以及网上的文章,只了解到hexo使用markdown语法写作,并且最终的文章是以静态页的方式呈现出来。同时支持将静态页部署到github pages上。那么倘若我部署在服务器上,应该用法和wordpress一样的吧。可是事实证明,我似乎太天真。
实际上,hexo正确的打开方式是,写好md文章用hexo generate生成好静态页,倘若使用github pages,则再用hexo deploy
命令部署到github上;若自有服务器,则把静态页丢到服务器上的web目录让用户访问就可以了。hexo的hexo server
只推荐用来本地调试。
然而既然我已经买了云主机,似乎只丢静态文件到服务器上,有点太浪费资源了。所以还是在服务器端装好hexo,一条路走到了黑。
Hexo部署
hexo的部署很简单,他们的官方文档写的很详细了。对照着安装然后生成站点文件夹即可。
Hexo文章导入
从wordpress导出我所有的文章和网页,用hexo支持的方式导入这些文章。我在导入结束后发现转换后的文章,markdown解析起来全乱掉了。没办法只能这两天熬夜把所有的文章重新用markdown支持的语法改了一遍。庆幸自己不是话痨,写的文章还不算多。
启动博客
修改好站点配置文件以及主题配置文件,用hexo generate
命令生成静态文件,在nginx配置文件里将网站根目录指向public文件夹即可实现访问。
文章更新
因为hexo是静态站点,不像wordpress自带后台可以直接发布文章。为了方便更新,以及实时备份的目的,我还是借助了git的力量。不过鉴于国内访问github速度感人,我选了国内的产品
程序文件纳入git
在hexo程序目录里,使用git init
将目录git化,然后提交目录里的文件至git仓库。具体操作如下
1 | git add . |
使用webhooks实现自动更新
基本上这些类github产品,都有webhooks。有了webhooks,就可以实现在远端库更新之后,POST一段json数据到服务器,让服务器执行一系列更新文章的命令。这里我在网上找到有现成的代码接收POST数据,作者传送门
1 | #!/usr/bin/env python |
秉着拿来主义,在上述代码中自己添加了当message字段值为特定值时,去更新静态文件的功能。自动更新效果演示如下图
这篇文章是用git提交并自动在服务器上生成的第一篇文章。Nice~