Jekyll(ジキル)は、SSGの中では最も人気があります。 SSGの中では、最大級のユーザとプラグインを有しています。当サイトもJekyll で作成されています。Jekyllの導入から公開までの道のりを最新Jekyll の導入を動画を交えて紹介します。
- チートシート
- What is Jekyll?
- 早速、Jekyllをインストールしよう
- Homebrew のインストール
- Rbenv を導入する
- rbenv でRuby 2.7.1を導入する
- Jekyllをインストール
- Jekyllの稼働確認
- サイトイメージの出力
- Jekyll Site 構造
チートシート
やりたいこと | How To |
---|---|
Homebrew をホームディレクトリにインストールする | Homebrewで最新のコマンドをコピペする コマンド投入前に cd ~ でホームディレクトリにしておく。 |
Homebrewが導入済みの場合、Homebrewのバージョンを 確認し、最新にアップデートする。 **後から確認してできるようにセットでコマンドを投入しておく |
brew -v ** バージョンを確認するbrew update |
Rbenv を導入し、特定のRubyのバージョンをインストールできるようにする。 **Rbenvの初期化をお忘れなく。 eval "$(rbenv init -)" をzshrcシェルに入れておけば、自動的にrbenvがロードされるようになる。 |
brew install rbenv rbenv init |
Ruby 2.7.1 を導入する 2.7.1は2020/12現在のJekyllの推奨バージョン |
rbenv install 2.7.1 |
特定のRubyのバージョンのPATHを通す。 MacOSX のシェルは現在、.zshrc です。 |
echo 'export PATH="$HOME/.gem/ruby/2.7.0/bin:$PATH"' >> ~/.zshrc |
.zshrc シェルの中身を確認する。 ホームディレクトリから投入します。 |
ls -a ** ファイルの存在を確認するcat .zshrc |
Jekyll を導入する |
gem install --user-install bundler jekyll jekyll -v ** バージョン確認する |
my_site フォルダにサイトイメージを出力する my_siteというディレクトリを作成して、 そのディレクトリに移動しておくこと。 |
mkdir my_site cd my_site jekyll new my_site |
What is Jekyll?
Jekyll(ジキル)は、SSGの中では最も人気があります。 Rubyで作られています。パーソナルなサイトを簡単に GitHub で展開、 公開が可能なGitHub Pagesは Jekyll で提供されています。 GitHub Pagesでの公開は、カスタムドメイン名を含む全てが無料のため、個人のプロジェクトやサイトの公開先として人気です。
WordPress のようにデータベースの管理や、煩わしい更新もなく、インストールするだけで済んでしまいます。 Markdown、Liquid、HTML、およびCSSが採用され、簡単に静的サイトを展開できるようになっています。 ブログページに必要な、パーマリンク、カテゴリ、ページ、投稿、およびカスタムレイアウトは、殆どのテーマで提供されており、 静的サイトを立ち上げるのであれば、Jekyllを使えば、すべての用途において洗練したホームページの構築が可能です。
静的サイトの優れた点については、動的サイトと静的サイトの記事を併せて参考にしてください。
また、Jekyllで作成された静的サイトの公開方法も多様な方法があります。まずはGithubページでの公開がおすすめです。 ホスティングサイトを用意することなく、自由にカスタム化されたドメイン名など簡単にデプロイすることができます。
管理人もJekyll での最初の公開は、Githubページを利用しました。いろいと展開先を変えて今に至っています。 JekyllのインストールからAWSでの公開まで、管理人が実際辿ってきた道のりをいくつかのブログにわけてお伝えしたいと思います。
早速、Jekyllをインストールしよう
Jekyllを使うためのOSは、MacOSが一般的です。 MacOSでJekyllをインストールするために必要なRuby のバージョン、関連するパッケージ管理システム 、 ツールは下の表でまとめています。前提となるRubyのバージョンは、 オフィシャルサイト
によると2.4.0以上ですので、稼働は大丈夫そうですが、オフィシャルサイトで推奨するRubyの2.7.1 までバージョンアップします。
ruby -v
でRuby のバージョンを確認します。
1
2
3
ruby -v
ruby 2.6.3p62 (2019-04-16 revision 67580) [universal.x86_64-darwin20]
Rubyを新規導入または最新版をインストールするには、Rubyインストールのためのパッケージ管理システムが必要です。 Linux では複数のバージョンを管理できるRbenvが一般的です。 Mac環境でもRbenv も使えます。本記事では、Rbenv からRubyをインストールする 方法をご紹介します。
Rubyは、Ruby言語用のライブラリである gem を使います。 このgem パッケージ管理システムのためのRubyGems も必要となってきます。 Bundlerが、gem 同士の互換性を保ちながら各gemの導入、管理をします。 Jekyllインストールに必要なパッケージ管理システムを表でまとめました。
名前 | 説明 |
---|---|
RubyGems | gem パッケージ管理システム(gemとはRubyのライブラリです) |
Bundler | gem 同士の依存関係を保ちながら各gemの導入、管理します |
Homebrew | MacOS用のパッケージ管理システム(Rbenvの導入,Rubyも導入できます) |
Rbenv | Ruby導入、複数環境の管理システムです。 |
Homebrew のインストール
Homebrewのインストールは、Homebrew にあるコマンドとURLをコピペしてそのまま、ターミナルに投入します。
Homebrewをホームディレクトリにインストールしますので、忘れずに
cd ~
でカレントディレクトリをホームに戻します。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
cd ~
~ %
~ % /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Password:
==> This script will install:
/usr/local/bin/brew
/usr/local/share/doc/homebrew
/usr/local/share/man/man1/brew.1
/usr/local/share/zsh/site-functions/_brew
/usr/local/etc/bash_completion.d/brew
/usr/local/Homebrew
==> The following new directories will be created:
/usr/local/bin
/usr/local/etc
*** 省略
Press RETURN to continue or any other key to abort
==> /usr/bin/sudo /bin/mkdir -p /usr/local/bin /usr/local/etc /usr/local/include /usr/local/lib /usr/local/sbin /usr/local/share /usr/local/var /usr/
*** 省略
==> Tapping homebrew/core
remote: Enumerating objects: 42, done.
remote: Counting objects: 100% (42/42), done.
remote: Compressing objects: 100% (30/30), done.
remote: Total 890062 (delta 27), reused 19 (delta 12), pack-reused 890020
Receiving objects: 100% (890062/890062), 353.44 MiB | 12.57 MiB/s, done.
Resolving deltas: 100% (603488/603488), done.
From https://github.com/Homebrew/homebrew-core
* [new branch] master -> origin/master
Updating files: 100% (5740/5740), done.
HEAD is now at de8bd53a32 netlify-cli: update 3.2.3 bottle.
==> Installation successful!
Homebrewのバージョンを確認します。
1
2
3
4
~ % brew -v
Homebrew 3.0.0
Homebrew/homebrew-core (git revision 923c99; last commit 2021-02-07)
~ %
Rbenv を導入する
Ruby を導入するためのソフトはRbenvです。複数のバージョンを管理できます。先ほど導入したHomebrewで rbenv を導入します。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
~ % brew install rbenv
Updating Homebrew...
==> Downloading https://homebrew.bintray.com/bottles/autoconf-2.69.big_sur.bottle.4.tar.gz
==> Downloading from https://d29vzk4ow07wi7.cloudfront.net/4a05c5734bd99dc0adca0160e1ca79a291f2bd7fb8d52dd4605df0da30
######################################################################## 100.0%
==> Downloading https://homebrew.bintray.com/bottles/pkg-config-0.29.2_3.big_sur.bottle.tar.gz
*** 省略
To link Rubies to Homebrew's OpenSSL 1.1 (which is upgraded) add the following
to your ~/.zshrc:
export RUBY_CONFIGURE_OPTS="--with-openssl-dir=$(brew --prefix openssl@1.1)"
Note: this may interfere with building old versions of Ruby (e.g <2.4) that use
OpenSSL <1.1.
==> Summary
🍺 /usr/local/Cellar/ruby-build/20210119: 520 files, 259.9KB, built in 4 seconds
==> Installing rbenv
==> Pouring rbenv-1.1.2.big_sur.bottle.tar.gz
🍺 /usr/local/Cellar/rbenv/1.1.2: 36 files, 105.2KB
==> Caveats
==> ruby-build
ruby-build installs a non-Homebrew OpenSSL for each Ruby version installed and these are never upgraded.
To link Rubies to Homebrew's OpenSSL 1.1 (which is upgraded) add the following
to your ~/.zshrc:
export RUBY_CONFIGURE_OPTS="--with-openssl-dir=$(brew --prefix openssl@1.1)"
Note: this may interfere with building old versions of Ruby (e.g <2.4) that use
OpenSSL <1.1.
rbenv を初期化します。すると、zshrc シェルにrbenv が自動的にロードするようeval "$(rbenv init -)"
をシェルに
追加することを推奨します。 ちなみに、最新のMacOSはzshrcシェルを使います。 bashから変わりました。
1
2
3
4
5
6
~ % rbenv init
# Load rbenv automatically by appending
# the following to ~/.zshrc:
eval "$(rbenv init -)"
rbenv でRuby 2.7.1を導入する
Rubyの導入は、Rbenvでも可能です。MacではHomebrewからも導入できますので、HomebrewでのRubyを導入します。
1
2
3
4
5
6
7
8
9
10
11
~ % rbenv install 2.7.1
Downloading openssl-1.1.1i.tar.gz...
-> https://dqw8nmjcqpjn7.cloudfront.net/e8be6a35fe41d10603c3cc635e93289ed00bf34b79671a3a4de64fcee00d5242
Installing openssl-1.1.1i...
Installed openssl-1.1.1i to /Users/home/.rbenv/versions/2.7.1
Downloading ruby-2.7.1.tar.bz2...
-> https://cache.ruby-lang.org/pub/ruby/2.7/ruby-2.7.1.tar.bz2
Installing ruby-2.7.1...
ruby-build: using readline from homebrew
Installed ruby-2.7.1 to /Users/home/.rbenv/versions/2.7.1
*** 導入したRubyのバージョンを確認します。
1
2
3
4
~ % ruby -v
ruby 2.7.1p83 (2020-03-31 revision a0c7c23c9c) [x86_64-darwin20]
~ %
Ruby 2.7.1 が導入されました。Jukyllに必要なRubyのバージョンをクリアできました。
Jekyllをインストール
gem コマンドでJekyllをインストールします。オフィシャルサイトのとおりインストールすれば、大丈夫です。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
~ % gem install --user-install bundler jekyll
Fetching bundler-2.2.7.gem
Successfully installed bundler-2.2.7
Parsing documentation for bundler-2.2.7
Installing ri documentation for bundler-2.2.7
Done installing documentation for bundler after 6 seconds
Fetching colorator-1.1.0.gem
Fetching em-websocket-0.5.2.gem
*** 省略
Parsing documentation for terminal-table-2.0.0
Installing ri documentation for terminal-table-2.0.0
Parsing documentation for jekyll-4.2.0
Installing ri documentation for jekyll-4.2.0
Done installing documentation for public_suffix, addressable, colorator, eventmachine, http_parser.rb, em-websocket, concurrent-ruby, i18n, ffi, sassc, jekyll-sass-converter, rb-fsevent, rb-inotify, listen, jekyll-watch, kramdown, kramdown-parser-gfm, liquid, mercenary, forwardable-extended, pathutil, rouge, safe_yaml, unicode-display_width, terminal-table, jekyll after 65 seconds
27 gems installed
Jekyllがちゃんと導入されたか、バージョンを調べます。
1
2
3
4
~ % jekyll -v
jekyll 4.2.0
~ %
jekyll バージョン4.2.0 がインストールされました。
Jekyllの稼働確認
インストールできましたので、稼働確認をして、正常にインストールされたことを確認します。jkyll 実行コマンド(my_site フォルダにサイトイメージを出力するコマンド)を打って、ローカル環境でサーバの稼働を確認します。デフォルトのminimaテーマが導入されます。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
~ % jekyll new my_site
Bundler: Fetching gem metadata from https://rubygems.org/..........
Bundler: Resolving dependencies...
Bundler: Using public_suffix 4.0.6
Bundler: Using bundler 2.2.7
Bundler: Using colorator 1.1.0
Bundler: Using concurrent-ruby 1.1.8
Bundler: Using eventmachine 1.2.7
Bundler: Using http_parser.rb 0.6.0
Bundler: Using ffi 1.14.2
Bundler: Using forwardable-extended 2.6.0
Bundler: Using rb-fsevent 0.10.4
Bundler: Using liquid 4.0.3
*** 省略
Bundler: Bundle complete! 6 Gemfile dependencies, 31 gems now installed.
Bundler: Use `bundle info [gemname]` to see where a bundled gem is installed.Following files may not be writable, so sudo is needed:
Bundler: /Library/Ruby/Gems/2.6.0
Bundler: /Library/Ruby/Gems/2.6.0/build_info
Bundler: /Library/Ruby/Gems/2.6.0/cache
Bundler: /Library/Ruby/Gems/2.6.0/doc
Bundler: /Library/Ruby/Gems/2.6.0/extensions
Bundler: /Library/Ruby/Gems/2.6.0/gems
Bundler: /Library/Ruby/Gems/2.6.0/specifications
New jekyll site installed in /Users/home/my_site.
cd my_site
でサイトのディレクトリに移動します
1
2
3
4
~ % cd my_site
~/my_site % ls
404.html Gemfile Gemfile.lock _config.yml _posts _site about.markdown index.markdown
サイトイメージの出力
ホームディレクトリ配下の my_site から bundle exec jekyll serve
でJekyllを起動します。
1
2
3
4
5
6
7
8
9
10
11
12
13
~/my_site % bundle exec jekyll serve
Configuration file: /Users/home/my_site/_config.yml
Configuration file: /Users/home/my_site/_config.yml
Source: /Users/home/my_site
Destination: /Users/home/my_site/_site
Incremental build: disabled. Enable with --incremental
Generating...
done in 1.406 seconds.
Auto-regeneration: enabled for '/Users/home/my_site'
Configuration file: /Users/home/my_site/_config.yml
Server address: http://127.0.0.1:4000/
Server running... press ctrl-c to stop.
サーバーがローカルで動き出したようです。http://127.0.0.1:4000/ にアクセス して、サイトイメージを確認します。
1
2
3
~/my_site % ls
404.html Gemfile Gemfile.lock _config.yml _posts _site about.markdown index.markdown
Jekyll Site 構造
インストールされたmy_site
のディレクトリー構造をtree
コマンドで図示します。
1
2
3
4
5
6
## homebrew からTreeコマンドをインストールします。
~ % brew install tree
==> Downloading https://homebrew.bintray.com/bottles/tree-1.8.0.big_sur.bottle.tar.gz
######################################################################## 100.0%
==> Pouring tree-1.8.0.big_sur.bottle.tar.gz
🍺 /usr/local/Cellar/tree/1.8.0: 8 files, 157.4KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
~ % cd my_site
~/my_site % tree
.
├── 404.html
├── Gemfile
├── Gemfile.lock
├── _config.yml
├── _posts
│ └── 2021-02-02-welcome-to-jekyll.markdown
├── _site
│ ├── 404.html
│ ├── about
│ │ └── index.html
│ ├── assets
│ │ ├── main.css
│ │ ├── main.css.map
│ │ └── minima-social-icons.svg
│ ├── feed.xml
│ ├── index.html
│ └── jekyll
│ └── update
│ └── 2021
│ └── 02
│ └── 02
│ └── welcome-to-jekyll.html
├── about.markdown
└── index.markdown
9 directories, 15 files
~/my_site %
以上がjekyll のインストールと稼働確認になります。