My Profile Photo

安心院日記


猫になりたい。趣味で運用しているブログです。技術的な備忘録・やったことメモとポエム置き場。


Jekyllでブログを建てた

記念すべき初投稿

一度解約していたVPSを改めて借りたので、ちゃんとアウトプットの場をつくろうと自分のサーバにブログを立てようと思った。 ちなみに前はさくらだったが今回はConoHaで借りてみた。一番安いプランね。

GitHub Pages や はてなブログやNoteなど、わざわざ自分で立てなくてもブログが書ける場所は山程ある。 それでもお金を払って自分でメンテしているおもちゃ(サーバ)があるんだから自分のブログを作りたいよね。という軽い動機。

自分のブログを改めて立てるんだから、今までと同じWordpressじゃあ芸がないと思ったので ナウイCMSサービスって何があるんじゃらほい?と思って適当にぐぐってみたJekyllというものをみつけたのでここに決めた。 あとで調べて知ったのものあるが、特徴はこんな感じ。

  • OSSで日本語のドキュメントも古いながら公式で用意されている。困ったら最新の英語のドキュメント読めばいいね。
  • Ruby製(Rubyはなんとなく好き)
  • 息が長いOSSで、現在もメンテが続いている
  • GitHub Pages の裏で動いている
  • Markdownで書ける
  • Gitで管理できる
  • DBが不要
  • 静的なページを吐くからNginxで直接読める

Jekyll をインストールする

Quick-start ガイド(日本語を見ると、 gem install jekyll でいいとのこと。 Centos7のyumで降ってくるRubyが2.0.0と、ちょっと古いがまあいいか、と思ってインストールしようとすると どうやらRuby 2.1.0以降が必要らしい。(どこかに書いておいてくれ…)

というわけでRuby公式サイトから最新のRuby 2.5.1のソースを落としてきてシステムにインストールすることにした。 gem を使うので --enable-rubygems する。デフォルトだと disable なんだね。 ローカルビルドするのだからオプションいじって最適化できるんだろうが、それはそのうち。

$ wget https://cache.ruby-lang.org/pub/ruby/2.5/ruby-2.5.1.tar.gz
$ tar zxvf ruby-2.5.1.tar.gz
$ cd ruby-2.5.1
$ ./configure --enable-rubygems
$ make
$ sudo make install

これでRuby 2.5.1がシステムに入った。

$ ruby -v
ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux]
$ whereis gem
gem: /usr/local/bin/gem

これで、改めてJekyllのインストールに移る

$ sudo gem install jekyll
$ jekyll new myblog
$ cd myblog
$ jekyll serve

でおk。 jekyll new する前にbundlerをインストールしておくこと。 jekyll new のサブコマンドでブログの雛形を作成するタイミングでbundlerを使っている。

コンテンツを書く

path/to/blog/_posts/YYYY-MM-DD-[title].[ext] というフォーマットでファイルを作成すると認識してくれる。 この当たりはドキュメントを読んだほうが早い

VPS で公開する

参考

jekyll build すると _site に静的なコンテンツが吐き出されるので、これを Web サーバの DocumentRoot に指定してあげればよい。 このブログの場合は Nginx を使っていて、今の所こんな感じになっている。

server {
    ...

    location / {
        root   /usr/share/nginx/blog/_site;
    }
}

感想

WordPress のような Web UI からブログを書く形式だと Vim が使えない影響で執筆に筆が乗らない & Vim が使えない & 独特の記法を用いる必要がある(ことが多い)という難点があったが、Jekyllの場合はすべて解消されている。

今の所の欠点としてはプレビューができないというだけなので、

  1. ローカルに Jekyll を建てて手元でブログを書く
  2. GitHub に push
  3. フックして VPS に pull する、 jekyll build する

という手順を整えられれば最高だと思う。

というわけでブログを書くモチベーションを保つための TODO はこんな感じ。

  • スタイルをいい感じにする
  • ヘッダー、フッターをいい感じにする
    • スタイル変更したらいい感じになった
  • フォント、シンタックスハイライトが少し微妙なので調整する
  • Rails をデプロイするときのUnicornみたいな誰かがいないのか調べる
    • 静的コンテンツを吐くのでいらない
  • Google Analytics を入れる
  • GitHub に push したら自動でデプロイされる仕組みを作る