はなゐろぐ

主に技術関係の覚え書きです。

HEXOとNetlifyでブログを作った

2017年5月18日

今まではてなブログで不定期かつ適当にざっと書いていたのですが、一度真面目にやろうかなと思いブログを引っ越しました。作業手順を細かく書き残していないので、公式マニュアルへのリンクを貼ってます。

使ったもの

表題にある通り、HEXOとNetlifyを使いました。

Hexo

NodeJSで動く静的ブログ生成ツール。プラグインがJavaScriptで書けるのでこれに決めました。テーマ一覧を見る限りでは中国語圏のユーザが多いのかな?

Netlify

Githubやbitbucketのリポジトリをビルドして公開してくれるホスティングサービス。リモートリポジトリにpushするだけで公開してくれてとても楽ちんです。無料なのにSSLやリダイレクトにも対応していてすごい…! 有料プランではパスワードをかけたりフォームを設置したりできるようです。また、Slackと連携できるので、公開したらメッセージを飛ばすこともできます。

私はbitbucketにブログ用の非公開リポジトリを作成し、masterにpushされたらNetlifyでビルドして公開するように設定しています。

Disqus

コメント機能のホスティングサービス。HEXOにはコメント機能がないので導入。要らないかなと思ったのですが、作ったものの不具合や訂正すべき内容があった場合の報告先として設置することにしました。

インストールからデプロイまで

公式ブログにキャプチャ付きで手順が掲載されています。

A Step-by-Step Guide: Hexo on Netlify
A step-by-step guide on how to host a website built with static site generator Hexo.
A Step-by-Step Guide: Hexo on Netlify favicon https://www.netlify.com/blog/2015/10/26/a-step-by-step-guide-hexo-on-netlify/
A Step-by-Step Guide: Hexo on Netlify

プラグイン

案外インストールしてなかった。自作プラグインはのちほど公開する予定です。

hexo-prism-plugin

Prismでシンタックスハイライトする。

_config.ymlでデフォルトのシンタックスハイライトをenable: falseにすることと、プラグインの設定を記載しておかないとエラーが出ることに注意しましょう。詳しくはIssueを参照 https://github.com/ele828/hexo-prism-plugin/issues/5

hexo-generator-feed

フィードを出力する。RSS2とATOMから選べる。

hexo-generator-seo-friendly-sitemap

sitemapを出力する。

hexo-tag-oembed

パーマリンクを引数として与えると該当サービスのoEmbedAPIに投げて埋め込みコードを返す。サービスごとにいちいちプラグインインストールするのと、サービスの仕様が変わった時に過去の記事を書き換えるのがめんどくさかったので自作しました。

hexo-tag-amazon

ISBNまたはASINを引数として与えるとAmazonの商品情報を返す。AmazonにはoEmbedAPIがないので、Amazon Product Advertising APIを叩くプラグインを自作しました。

終わりに

Netlify側でビルドしてくれるので、リポジトリにビルド後のファイルを残さなくて良いのが良いです。やりたいことがいろいろできたのでこれからが楽しみです。