背景
さっきまで動いていたJekyllがビルドできなくなった。
状況
ここ(unable to build a jekyll site … invalid date #5267)に書いてあるようなエラーが出てビルドができなくなった。
Invalid date '<%= Time.now.strftime('%Y-%m-%d %H:%M:%S %z') %>': Document 'vendor/cache/gems/jekyll-3.2.1/lib/site_template/_posts/0000-00-00-welcome-to-jekyll.markdown.erb' does not have a valid date in the YAML front matter.
解決方法
_config.yml内のexcludeにvendor/*
を指定する。
参考:invalid date '0000-00-00' from template #2938
そもそも_config.ymlには以下のような設定サンプルがコメントアウトされて載っている。
# Exclude from processing.
# The following items will not be processed, by default. Create a custom list
# to override the default setting.
# exclude:
# - Gemfile
# - Gemfile.lock
# - node_modules
# - vendor/bundle/
# - vendor/cache/
# - vendor/gems/
# - vendor/ruby/
私は直前に自作のスクリプトをここに追加した際に以下のように自作のスクリプトだけを追加していた。
# Exclude from processing.
# The following items will not be processed, by default. Create a custom list
# to override the default setting.
exclude:
- myscript.sh
# - Gemfile
# - Gemfile.lock
# - node_modules
# - vendor/bundle/
# - vendor/cache/
# - vendor/gems/
# - vendor/ruby/
よく見ると上のコメント欄に
The following items will not be processed, by default. Create a custom list to override the default setting.
と書いてあるが、どうやら一つでもexcludeを記載するとビルドの際にexcludeするファイルやディレクトリは全部記載しないとダメだった模様。
そんなわけでコメントアウトされていたところの#を消して対応
# Exclude from processing.
# The following items will not be processed, by default. Create a custom list
# to override the default setting.
exclude:
- myscript.sh
- Gemfile
- Gemfile.lock
- node_modules
- vendor/bundle/
- vendor/cache/
- vendor/gems/
- vendor/ruby/
これで無事にビルドが出来たので解決。