GitHub Pages をローカルで表示確認
やりたいこと
GitHub Pages を使うと、
- レポジトリに置いてある Markdown 記法で書いたファイルが html に自動変換される
- http://y4su0.github.io みたいな URL で公開される
- 当たり前のことながら、変更の履歴が残る
と、お手軽にWebサイトを構築できて便利なんですが、細かい設定をやろうとすると、_config.yml をいじったり、テンプレートをいじったりするので、可能であればコミットする前にローカル環境でお試ししておきたい。
ということで、Docker を使ってローカルで GiuHub Pages の環境を作ってみましょう、という話。
準備
- Docker Desktop をインストール
- Docker image を取得
docker pull jekyll/jekyll:pages - jekyll テーマの関連ファイルを Supported themes / GitHub Pages あたりからリンクを辿っていってダウンロード
以下、GitHub Pages の関連ファイルは ~/githubpages/ 以下に置く or 置かれているという想定です。
環境を立ち上げる
docker run --rm --volume="~/githubpages/:/srv/jekyll" --it -p 4000:4000 jekyll serve --watch
これで ~/githubpages/ 以下のファイルを元にページが生成されて、https://localhost:4000 にアクセスすれば表示を確認できます。
また、--watch オプションを付けておけば、ファイルに変更があるたびにページがリアルタイムで再生成されるので、ブラウザをリロードすれば変更後の表示確認が即できるようになります。
あとは、.zshrc あたりで
alias githubpages='docker run --rm --volume="~/githubpages/:/srv/jekyll" --it -p 4000:4000 jekyll serve --watch'
とかやっておくと便利。
表示を確認できたら、そのまま git commit → git push で公開完了。
その他
GitHub Pages のサーバーの方では、各ページのYAML Front Matter での layout あたりの項目とか、_config.yml の plugins あたりをちゃんと書かなくても良きに計らってくれますが、ローカルで生成する際はちゃんとしておかないとダメみたいです。
あと、余計なお世話ですが、テーマ関係をいじらないのであれば ~/githubpages 以下のテーマ関係のディレクトリを .gitignore に書き込んでおいた方がいいかもしれません。