Ubuntu下用hexo搭建github博客

  • 配置环境:Ubuntu 16.04
  • 搭建目标:Github page(username.github.io)
  • 搭建程序:hexo
  • 在新建分支hexo下管理部署文件,最终部署到主分支master进行网站发布,涉及第三方应用绑定。

    基础配置

    安装git

    1
    $ sudo apt install git-core # 已安装请略过

并且在你的github主页创建一个repo,命名为username.github.io,比如对我来说就是yucicheung.github.io。本帖不细述,请参考github page基本指南

安装nodejs

1
$ wget -qO- https://raw.github.com/creationix/nvm/master/install.sh | sh

重新开启终端使nvm命令生效。

1
2
3
$ nvm ls-remote # 查看所有可用版本
$ nvm install v8.10.0 # 选择最新稳定版本
$ node -v #显示v8.10.0表示安装成功

安装hexo

1
2
$ sudo apt install npm # 安装package manager
$ npm install -g hexo-cli

hexo基础配置

初始化模板

hexo命令初始化一个空文件夹。

1
$ hexo init hexo

hexo安装所需的新文件。

1
2
$ cd hexo
hexo $ npm install

改变hexo/文件夹下的_config.yml的一些简单配置包括title,’author’等,之后就可以用以下命令预览。

1
$ hexo server # 默认端口4000

Notice:如果端口4000被占用,或者更换端口预览,或者解除占用。

1
2
3
4
5
# 方法1:更换端口
$ hexo server -p 5000
# 方法2:解除端口占用
$ lsof -i:4000
$ kill -9 PID

更改主题为yelee

首先要在hexo-themes中选择一个喜欢的主题,从git上clone到本地themes/文件夹下并命名为yelee

1
2
$ cd hexo/
$ git clone git@github.com:MOxFIVE/hexo-theme-yelee.git themes/yelee

然后更改hexo/_config.ymltheme: landscape改为theme: yeleethemes/lanscape文件夹可删除。
再用hexo serverhexo s就可以预览为新主题了。
具体theme中相应主题配置应参考对应theme的官方文档,如yelee的官方文档

部署到网站

说明:网站的部署其实就是生成静态文件,hexo下所有生成的静态文件会放在public/文件夹中,所谓部署deploy其实就是将public/文件夹中内容上传到git仓库yucicheung.github.io中。
要准备将静态文件部署到自己的git主页,首先需要安装一个用于部署的插件hexo-deployer-git,这个插件可以自动将public/文件中内容上传到master下(即用于生成github.io界面的文件)。
如果不装插件,也可以手动进行文件复制。

1
npm install hexo-deployer-git --save

然后在hexo/_config.ymldeploy部分配置以下语句。

1
2
3
4
deploy:
type: git
repo: https://github.com/yucicheung/yucicheung.github.io
branch: master

需要在根据需要修改hexo/hexo/themes/下的_config.yml文件后,就可以进行生成和部署了。

1
2
$ hexo generate # 或hexo g
$ hexo deploy # 或hexo d

deploy时需要github的账户和密码,自动上传文件完成部署。
Tips:网站再次进行部署时,还需要清理public文件夹内容,重新生成部署,用以下命令。

1
2
3
$ hexo clean # 尤其在更换主题后需使用
$ hexo g
$ hexo d

管理hexo文件

最好的办法是在username.github.io主页创建两个分支,一个master分支(由deployer管理),一个hexo分支(我们自己管理)。
在把自己的username.github.io仓库克隆到本地后,cd username.github.io,进行以下操作。
创建hexo分支并切换到该分支。

1
$ git checkout -b hexo

hexo/文件夹下所有内容拷贝到username.github.io/hexo/下。

1
$ cp -r ~/hexo/ ~/yucicheung.github.io/

将修改加入并push到分支hexo

1
2
3
$ git add .
$ git commit -m "commet"
$ git push origin hexo

这样文件管理就很方便了。

第三方部署

因为第三方部署跟主题有很大关系,而主题文档中说明得比较清楚,我主要讨论一下文档中说明不清的Google站长认证问题。

Google站长验证

  1. 如果要按照主题定义的方法操作,需要在验证备用方法中选择html验证
  2. Google验证,默认方法是提供给你一个html文件,拷贝至theme下的source文件中,在generate的时候会原样生成。
    Tips:同理,如果有每次生成都要保存的html文件,请都放置在此文件夹下。如果是README.md文件要保持不被渲染,请添加到hexo/source/下,并且在hexo/_config.yml中配置skip_render: README.md

    文章的发表

    先生成draft,然后发表。
    1
    2
    $ hexo new draft "title" #在source/_draft下生成md文件
    $ hexo publish "title"

草稿默认不会显示在页面中,可在配置文件中把render_drafts 参数设为 true 来预览草稿。
直接生成新文章。

1
$ hexo new "title" # 自动生成title.md在_posts下

如果要删除文章的话在source下删除文章后,重新生成和部署就可以了

参考资料

  1. hexo文档
  2. yelee主题配置帖
文章目录
  1. 1. 基础配置
    1. 1.1. 安装git
    2. 1.2. 安装nodejs
    3. 1.3. 安装hexo
  2. 2. hexo基础配置
    1. 2.1. 初始化模板
  3. 3. 更改主题为yelee
  4. 4. 部署到网站
  5. 5. 管理hexo文件
  6. 6. 第三方部署
    1. 6.1. Google站长验证
  7. 7. 文章的发表
  8. 8. 参考资料
|