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
に書き込んでおいた方がいいかもしれません。