备份迁移ghost博客到hexo

最近hexo很火, 于是乎打算弄一个玩玩. 配合gh-pages, 因为是纯静态的博客服务, 所以还不用担心服务器被攻击的问题.
hero提供了ghost的migrate插件, 所以迁移起来比较容易.

初体验

1
2
3
npm i hexo-cli -g
hexo init
npm i

tip: 怕慢可挂梯或用cnpm

我的hexo版本是3.1.1, 不同的版本配置有稍许差异

然后配置_config.yml文件的deploy部分:

1
2
3
4
5
# Deployment
## Docs: http://hexo.io/docs/deployment.html
deploy:
type: git
repo: https://github.com/wssgcg1213/wssgcg1213.github.io.git

generate and 发布:

1
hexo g && hexo deploy

访问http://wssgcg1213.github.io

迁移ghost

访问ghost后台里的lab: export.

得到一个json文件

安装

1
npm i hexo-migrator-ghost --save

导入

导入之前需要修改 ./scaffolds/post.md 的模板内容为

1
2
3
4
title: {{ title }}
date: {{ date }}
tags: {{ tags }}
---

否则会报错

1
2
hexo migrate ghost source.json
hexo clean && hexo g && hexo deploy

绑定域名+https

github.io可以绑定cname记录, 但是这样无法使用https, 于是选择使用自己的VPS进行反代.

nginx配置如下, 反代

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
server {
listen 443 ssl;
server_name blog.zeroling.com;

ssl on;
ssl_certificate ssl/all.zeroling.com.crt;
ssl_certificate_key ssl/all.zeroling.com.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers CHACHA20:GCM:ECDHE-RSA-AES256-SHA384:AES256-SHA256:RC4:HIGH:!DH:!RC4:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS;
ssl_prefer_server_ciphers on;
location ~ {
proxy_pass http://wssgcg1213.github.io;
}
}

访问: https://blog.zeroling.com/

完事, 创建新文章的方法是hexo new "new post title", 更多命令可以直接输hero查看.

为了方便, 可以在package.json添加

1
2
3
"scripts": {
"deploy": "hexo clean && hexo g && hexo deploy"
}

然后就可以直接使用npm run deploy来一键发布了.