今まではてなブログで不定期かつ適当にざっと書いていたのですが、一度真面目にやろうかなと思いブログを引っ越しました。作業手順を細かく書き残していないので、公式マニュアルへのリンクを貼ってます。
使ったもの
表題にある通り、HEXOとNetlifyを使いました。
Hexo
NodeJSで動く静的ブログ生成ツール。プラグインがJavaScriptで書けるのでこれに決めました。テーマ一覧を見る限りでは中国語圏のユーザが多いのかな?
Netlify
Githubやbitbucketのリポジトリをビルドして公開してくれるホスティングサービス。リモートリポジトリにpushするだけで公開してくれてとても楽ちんです。無料なのにSSLやリダイレクトにも対応していてすごい…! 有料プランではパスワードをかけたりフォームを設置したりできるようです。また、Slackと連携できるので、公開したらメッセージを飛ばすこともできます。
私はbitbucketにブログ用の非公開リポジトリを作成し、masterにpushされたらNetlifyでビルドして公開するように設定しています。
Disqus
コメント機能のホスティングサービス。HEXOにはコメント機能がないので導入。要らないかなと思ったのですが、作ったものの不具合や訂正すべき内容があった場合の報告先として設置することにしました。
インストールからデプロイまで
公式ブログにキャプチャ付きで手順が掲載されています。
プラグイン
案外インストールしてなかった。自作プラグインはのちほど公開する予定です。
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側でビルドしてくれるので、リポジトリにビルド後のファイルを残さなくて良いのが良いです。やりたいことがいろいろできたのでこれからが楽しみです。