Jekyll3.3 on GitHub Pages
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に置く
- 3.3まではcssをthemeで管理していなかったので、minima1.2はcssを持っていない
- index.htmlが表示されない
- minima2.0のroot pageはhomeというlayoutを参照しているが、minima1.2にはhomeがない
=> home layoutの内容をそのままrootのindex.htmlにする
- minima2.0のroot pageはhomeというlayoutを参照しているが、minima1.2にはhomeがない
これで動くはず。
その他
- 一応手元で動かす時はGemfileのJekyllを3.2にして
bundle exec jekyll serve
とかしとくのが安心だと思う - 普通に3.2で作り直したほうが早い説はある
- すぐにGitHub Pagesも3.3に対応すると思うので、待つのも良い