hexo-from-octopress

hexo 建站

安装:

node

hasNode && skipThis;

Linux install node , nodejs docs:

1
2
$ curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash -
$ sudo apt-get install -y nodejs

install hexo-cli

1
$ npm install -g hexo-cli

配置

初始化 hexo

1
2
3
$ hexo init blog
$ cd blog
$ npm install

install NexT 主题

知乎上看到这个主题,还不错。

1
2
$ cd your-hexo-site
$ git clone https://github.com/iissnan/hexo-theme-next next

see theme-NexT-five-minutes-setup.html

从 Octopress 迁移到 Hexo

把 Octopress source/_posts 文件夹内的所有文件转移到 Hexo 的 source/_posts 文件夹,并修改 _config.yml 中的 new_post_name 参数。

1
new_post_name: :year-:month-:day-:title.md

tips

阅读全文语法

1
<!--more-->

同步到 github

在 Github 上新建项目,在 blog 文件下配置:

1
2
$ git init
$ git remote add origin git@github.com:yize/blog.git

部署

启动模式有几种:

  1. 只使用 hexo 启动

    1
    2
    $ docker pull wzpan/hexo:v3
    $ docker run --rm -p 80:4000 -v YOUR_LOCAL_BLOG_DIR:/root/blog wzpan/hexo:v3
这样可以直接占用 `80` 端口。
  1. Use nginx-proxy (推荐)

    通过 nginx-proxy 让我们的反向代理变的更加简单:

    1
    $ docker run -d -p 80:80 -v /var/run/docker.sock:/tmp/docker.sock:ro jwilder/nginx-proxy
1
$ docker run -e VIRTUAL_HOST=www.ithans.com --rm -v YOUR_LOCAL_BLOG_DIR:/root/blog wzpan/hexo:v3
nginx-proxy 会自动寻找容器的 Port ,然后做好 nginx 的 proxy:大概的实现是: 1. 通过 Docker API 获取 containers 的 `IP`、`Port` 以及其他配置项 手动查询方法:
1
2
$ docker ps #查询启动的容器
$ docker inspect YOUR_CONTAINER_ID #查询容器信息(包括 IP)
2. 通过 [docker-gen](https://github.com/jwilder/docker-gen) 生成 Nginx config:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
upstream www.ithans.com {
server 172.17.0.1:4000;
}
server {
#ssl_certificate /etc/nginx/certs/demo.pem;
#ssl_certificate_key /etc/nginx/certs/demo.key;
gzip_types text/plain text/css application/json application/x-javascript
text/xml application/xml application/xml+rss text/javascript;
server_name www.ithans.com;
location / {
proxy_pass http://www.ithans.com;
include /etc/nginx/proxy_params;
}
}
upstream {
server 172.17.0.1:4000;
}
server {
#ssl_certificate /etc/nginx/certs/demo.pem;
#ssl_certificate_key /etc/nginx/certs/demo.key;
gzip_types text/plain text/css application/json application/x-javascript
text/xml application/xml application/xml+rss text/javascript;
server_name www.ithans.com;
location / {
proxy_pass http://www.ithans.com;
include /etc/nginx/proxy_params;
}
}
3. 直接通过 `hexo server` 启动

I