qiita版

TL:DR

  • GitHub PagesはJekyll3.2だけど、Jekyll3.3のsiteを無理やりホストさせた

Jekyll on GitHub Pages

  • GitHubはJekyllを優遇していて、Jekyll siteをpushすると勝手にbuildしてpagesにアップロードしてくれる
  • 2016/10/30現在、GitHub PagesのJekyllは3.2
  • 3.2から、gem経由でthemeを適用できるようになった
    • ただし、現状のGitHub Pagesでは、デフォルトのテーマであるminimaのver1.2にしか対応していない

Jekyll 3.3

  • 何も考えずにgem installすると3.3が入る
  • 3.3からはcssもthemeで管理するようになった
  • Jekyll3.2が参照しているminimaは1.2だが、Jekyll3.3はminima2.0を利用する

GitHub Pagesで動かしてみる

## インストール&動作確認 公式ページのquick startを参考にやってみる

~ $ gem install jekyll bundler
~ $ jekyll new myblog
~ $ cd myblog
~/myblog $ bundle exec jekyll serve

GitHub Pagesへpush

かつてはGitHub Pagesを利用するにはgh-pagesというブランチにpushする必要があったが、今は普通にmasterブランチの内容をpagesに反映してくれるので、何も考えずにpushすればよい。

~/myblog $ git init
~/myblog $ git add .
~/myblog $ git commit -m "first commit"
~/myblog $ git remote add origin https://github.com/yourname/yourproject.git
~/myblog $ git push origin master
~/myblog $ open yourname.github.io/yourproject

ただし、User PageではなくProject Pageの場合は、baseUrlの設定が必要なので、はじめてのJekyll on Github Pagesなどを参考にやっていく。

Jekyllのバージョンが違うと発生する問題と対策

  • そのままGitHubにpushすると、cssが見つからずにエラーになる
    • 3.3まではcssをthemeで管理していなかったので、minima1.2はcssを持っていない
      => minima2.0のsassをcss/main.sassに置く
  • index.htmlが表示されない
    • minima2.0のroot pageはhomeというlayoutを参照しているが、minima1.2にはhomeがない
      => home layoutの内容をそのままrootのindex.htmlにする

これで動くはず。

その他

  • 一応手元で動かす時はGemfileのJekyllを3.2にしてbundle exec jekyll serveとかしとくのが安心だと思う
  • 普通に3.2で作り直したほうが早い説はある
  • すぐにGitHub Pagesも3.3に対応すると思うので、待つのも良い