JekyllとGitHub Pagesで静的サイトを作成してみた
こんにちは。Webエンジニア転職を目指して学習&個人開発中のYoshino(@yoiyoicho)です。
今回は、プログラミングスクールRUNTEQの勉強会で教えてもらったJekyll+GitHub Pagesを使い、個人用テックブログとして使う静的なWebサイト(このサイト)を作成したので、その記録をここに残そうと思います。
Jekyllとは
静的なWebサイトをコマンド一つで作成することができるRubyのgem。
Markdownなどのマークアップ言語で書かれたテキストを用意すれば、Jekyllがレイアウトを合成してHTMLファイル一式を作成してくれます。
WordPressなどのCMSに比べて、自動化しすぎず、ほどよく手元でコントロールできるのがポイントのよう。
日本語ガイドが用意されているので、そちらを見るとイメージがつかめます。
GitHub Pagesとは
GitHubが提供する、静的サイトのホスティングサービス。ローカルからGitHubにソースコードをpushすれば、即座にWebサイトが公開されます。
Jekyllのインストール
それではさっそくJekyllを使った静的Webサイトを作成していきましょう。
ローカルの作業ディレクトリで下記のコマンドを打ちます。
インストールには数分かかります。
GitHubとローカルにリポジトリを作成
次に、GitHub側で今回のWebサイトで使用するリポジトリを作成します。Github Docsに詳しい手順が載っているのでその通りに進めていきます。
新しいリポジトリを作成し、Repository nameは[GitHubのユーザー名].github.io
に、公開範囲はPublic
を選択します。
続いて、ローカルの作業ディレクトリに移動し、下記のコマンドを打ってローカルリポジトリを作成します。
JekyllサイトをGitHub Pages用にカスタマイズして作成
どんどん行きましょう。作業ディレクトリで下記のコマンドを打ち、新しいJekyllサイトを作成します。
ここで、作成されたGemfileをGitHub Pages用に編集して保存します。
コンソールでbundle install
を実行すれば、GitHub Pagesに対応したJekyllサイトの作成が完了します。
Jekyllサイトをローカルでチェックする
ここまで来たらもう少し! コンソールで次のコマンドを打って、ローカルにサーバーを立てましょう。
ブラウザを開き、http://localhost:4000にアクセスすれば、初期設定のままのJekyllサイトが立ち上がっているはずです。
以後、markdownファイルや_config.ymlなどに変更を加えた場合、Ctrl+C
でサーバーを一度終了し、再びbundle exec jekyll serve
でサーバーを立てないと、ブラウザからJekyllサイトの変更を確認することができません。
bundle exec jekyll serve
のコマンドを打つたびに、HTMLファイルが作り直されるイメージです。
themeの変更
さて、ここから自分流にJekyllをカスタマイズしていきましょう。
Jekyllはローンチされてから年月が経っているフレームワークということもあり、無料のテーマが充実しています。下記のサイトによくまとまっていました。
私は今回、yet another theme(yat)というテーマを選びました。
READ.meの「Remote Theme Method with GitHub Pages」の項目の通りに進めます。
まず、Gemfileを編集します。
続いて、_config.ymlを編集。
コンソールでbundle install
を実行。
最初は、README.mdを流し読みして「Gem-based Theme Method」の方法で実装してしまっていたため、後述するGitHubへpushした際にエラーが出て詰まってしまいました。新しいものを使うとき、README.mdはよく読みましょう(反省点)。
_config.ymlをカスタマイズ
metaデータやヘッダー画像など、サイト全体に共通する部分は、_config.ymlで設定します。私は下記のように設定しました。
特に注意しなければならないのは、defaults>home>banner
の項で、デフォルトでは値が設定されていないのか、ここにヘッダー画像のパスを設定しないと、サイトがテンプレート通りに表示されませんでした。
このように_config.ymlに設定を書いておくと、bundle exec jekyll serve
したときに、_config.ymlを読み込んでJekyllがHTMLを書き出してくれます。
GitHub Pagesで公開
ローカルでのチェックが終わったら、GitHubにpushして公開しましょう!
Jekyllプロジェクトと同じディレクトリで下記のコマンドを打てばOKです。
感想
見栄えのよいオリジナルのWebサイトが簡単に作れました。
Google Analyticsを入れてアクセス解析もできるし、広告が出ないのもよいです。
レスポンスが早いのもGood。
ただブログとして考えた場合、Markdown形式で書くのは少し慣れが必要そうです。
また、外部の記事を引用した際に、他のCMSがデフォルトで提供しているような、OGP画像を取得してカード形式で表示、ということもできません(自分でメソッドを書けばできそう)。
Markdownを使った記事の更新方法はまた別の記事で書いていこうと思います。
なお当ブログにはコメント機能がありませんので、ご指摘があればTwitter(@yoiyoicho)のDM宛にいただけると幸いです。