Jekyll on Windows
Windowsはまだ公式にサポートされたプラットフォームではありません。ですが、適切な調整を行ってJekyllを使用することができます。このページには、Windowsユーザーから掘り起こされた知識や教訓を集めています。
Jekyllのインストール
Rubyインストーラでインストール
JekyllをWindowsで実行する最も簡単な方法は、Rubyインストーラを使用することです。
RubyインストーラはRuby言語、実行環境、重要なドキュメンテーションなどを含むWindowsベースの自己完結型インストーラです。RubyInstaller-2.4以上のみをカバーしています。古いバージョンは手動でDevkitをインストールする必要があります。
- RubyInstaller DownloadsからRuby+Devkitバージョンをダウンロードして、インストールしてください。インストールはデフォルトのオプションを使用してください。
- インストールウィザードの最後の段階で、
ridk install
ステップを実行してください。これはネイティブ環境でgemsをインストールするためです。詳しくはRubyInstaller Documentationを読んでください。 PATH
環境変数への変更を有効にするため、スタートメニューから新しいコマンドプロンプトを開きます。gem install jekyll bundler
でJekyllとBundlerをインストールします。- Jekyllがインストールされたか、
jekyll -v
で確認します。
以上で、Jekyllを使用する準備ができました!
Windows 10でのBashによるインストール
Windows10の1607以降を使用している場合、Linux用のWindowsサブシステムでJekyllをインストールするオプションがあります。
Windows Subsystem for Linuxを有効にする必要があります。
まず、全てのパッケージとリポジトリを最新にします。新しいコマンドプロンプトを開き、以下の入力します。
bash
コマンドプロンプトインスタンスはBashインスタンスになります。今度はリポジトリリストとパッケージを更新しなければなりません
sudo apt-get update -y && sudo apt-get upgrade -y
Rubyがインストールできます。それを行うために、Ruby for Ubuntuの最適化バージョンをホストするBrightBoxのリポジトリを使用します。
sudo apt-add-repository ppa:brightbox/ruby-ng
sudo apt-get update
sudo apt-get install ruby2.5 ruby2.5-dev build-essential dh-autoreconf
次はRuby gemsをアップデートしましょう。
gem update
後はJekyllのインストールを残すのみです。
gem install jekyll bundler
(注:ここではsudo
を使いません。)
次を実行して、Jekyllが正しくインストールされているかを確認します。
jekyll -v
以上です!
_posts
フォルダを調べることで、時間管理がきちんとできているかを確認することができます。現在の日付けがファイル名のmarkdownファイルがあるはずです。
superuserでないアカウントの問題
`jekyll new`コマンドで"Your user account isn't allowed to install to the system RubyGems"のエラーが表示されたら、 トラブルシューティングの"SuperuserでなくJekyllを実行する"の項を見てください。
注: Bash on Ubuntu on Windowsは、まだ開発中です。実行で問題が発生するかもしれません。
エンコード
UTF-8を使用している場合、必ずBOM
はつけないでください。Jekyllに非常に悪いことが起こります。これは、WindowsでJekyllを実行する場合に顕著です。
さらに、サイト生成プロセス中にLiquid Exception: Incompatible character encoding
エラーが発生した場合は、コンソールウィンドウのコードページをUTF-8に変更する必要があります。これは次のコマンドで実行できます。
chcp 65001
タイムゾーンの管理
Windowsはゾーン情報データのネイティブソースを持っていないので、RubyインタプリタはIANAタイムゾーンを理解しないでしょう。ですので、TZ
環境変数ではデフォルトのUTC/GMT 00:00を使用します。
Windowsユーザーは、タイムゾーンを定義するPOSIX形式を使用するようにキーを設定してブログのタイムゾーンを定義することもできます。ですが、DSTルールの変更に合わせて時計を変更することになると、それほどユーザーフレンドリーではありませんでした。
Jekyllは現在、確立されたIANAタイムゾーンデータベースに基づいてタイムゾーンを内部で設定するために、Rubygemを使用しています。 Jekyll v3.4以降で作成された「新しい」ブログでは、デフォルトで以下のものがGemfile
に追加されますが、既存のサイトではWindowsで開発できるようにGemfile
を更新(およびインストール)する必要があります。
# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]
TZInfo 2.0 不適合
TZ情報ライブラリVersion 2.0はタイムゾーンオフセットの計算方法に変更を加えました。サイトがWindows上でJekyll 3.xでビルドされている場合、このことは投稿の日時を不正確にするでしょう。
ですので、Gemfile
にgem 'tzinfo', '~> 1.2'
をリストして、タイムゾーンライブラリをVersion 1.2以上にロックすることをお勧めします。
自動再作成
Jekyllは構築またはサーブ中に--watch
スイッチが指定された場合、listen
gemを使用して変更を監視します。 listen
はUNIXシステムを組み込みでサポートしていますが、Windowsとの互換性のために追加のgemが必要になるかもしれません。
Windows上で自動再生成に問題があった場合は、サイトのGemfile
に以下を追加してください。
gem 'wdm', '~> 0.1.1', :install_if => Gem.win_platform?
RubyインストーラのバージョンのRuby+Devkitを使用しなければなりませんし、wdm
gemのインストールを成功させるためにMSYS2ビルドツールのインストールが必要です。