Hexoの記事をGitHub Pagesにデプロイする

GitHub側での作業

公開用のusername.github.ioリポジトリを作成する。
詳細はGitHub Pagesにある。

Hexo側での設定

Hexo Ver3.0.1で確認しています。

プラグインのインストール

Ver3.0.0から、デプロイには別途npmモジュールのインストールが必要(ref. #1040)になっていて、hexo-deployer-gitをインストールする。

1
$ npm install hexo-deployer-git --save

備考:--saveオプションをつけるとpackage.jsondependenciesに、インストールしたnpmモジュールを自動的に記入してくれます。

_config.yml

次に_config.ymldeploy部分を編集。

1
2
3
4
5
deploy:
type: git
repo: git@github.com:saucer-jp/saucer-jp.github.io.git
branch:
message:

branchmessageは任意で入力。branchはGitHubを使用していれば自動で検出されます。github.ioを使っていればmasterになるのかな。

messageは何も入れなければ、デフォルトでSite updated: {{ now("YYYY-MM-DD HH:mm:ss") }}が入る。

デプロイとは関係ないけど…

上のコードSite updated: {{ now("YYYY-MM-DD HH:mm:ss") }}を記事に入れたとたんに$ hexo serverが起動しなくなって、え?あれ?壊れた?なんで?ってなって、最初原因がこれだって気づかないで色々とモジュール入れなおしたりとか、もう一個ブログをinitしてみたりと結構遠回りした。

原因はHexoがインラインのコード(ここだとnow()の部分)を実行しようとしてエラーになっていたからで、解決策はHexo - troubleshootingに書いてあって、エスケープ用のタグが用意されていた。

1
2
3
{% raw %}
実行されてしまうコード
{% endraw %}

上のようにするとHexoに実行されなくなるとのこと。

ふと…

なんだか結局、Hexoのドキュメントをコピーした感じになったので、公式のドキュメントを見るのがよさそう。

ref.