Jekyll
- Github-pagesでPage build failureにハマった件。またはLiquid Exception: invalid byte sequence in UTF-8になった件。 (17 Aug 2013 | Tags:
Github-pagesでPage build failureにハマった件。またはLiquid Exception: invalid byte sequence in UTF-8になった件。 Github-pagesでPage build failureにハマった件。またはLiquid Exception: invalid byte sequence in UTF-8になった件。
Githubからの通知の確認
Github-pagesのリポジトリへpushすると以下のような文面のメールが届きます。
Subject: Page build failure The page build failed with the following error: page build failed For information on troubleshooting Jekyll see https://help.github.com/articles/using-jekyll-with-pages#troubleshooting If you have any questions please contact GitHub Support. support@github.com https://github.com/contact
通知してくれるのはいいんですが、情報量が少ない。。せめてビルド時のエラーログなりを送ってほしい。。。
Githubのヘルプページの確認
ひとまず、メールに記載されていたURLのページを確認します。
Troubleshootingに記載されている要旨は、「ローカルでビルドして、パースエラーを見つけなさい」とのこと。
ローカル環境でビルド
GitHubで使っているJekyllとその依存関係のバージョンについては、the same versions of Jekyll and other dependencies that we useに記載されていて、この時点では以下のバージョンになっていた。
s.rubygems_version = "1.8.0" s.required_ruby_version = "~> 1.9.3" ~~~ # Jekyll and related dependency versions as used by GitHub Pages. # For more information see: # https://help.github.com/articles/using-jekyll-with-pages s.add_dependency("RedCloth", "= 4.2.9") s.add_dependency("jekyll", "= 1.1.2") s.add_dependency("kramdown", "= 1.0.2") s.add_dependency("liquid", "= 2.5.1") s.add_dependency("maruku", "= 0.6.1") s.add_dependency("rdiscount", "= 1.6.8") s.add_dependency("redcarpet", "= 2.2.2")
ローカルの環境を上記のバージョンに合わせてビルドしてみると、いくつかErrorが。
エラーの原因は、
- _postの記事に書かれていたサンプルコードがmarkdownのリンク表記とかぶっていたため、不正なリンクとして解釈されていた
- URLにマルチバイト文字を含むためエラーになった こと
上記の箇所を修正してローカル環境でビルドしてもエラーや警告が出ないことを確認し、GitHubに再度pushしても、同じくPage build failureとなってしまった。
ひとまずバージョン依存での問題ではなさそうということはわかった。
Pages don’t build: “Unable to run Jekyll”の確認
GitHubのヘルプには、Troubleshootingの手順で確認してもビルドに失敗したら、Page doesn’t build guideを確認するようにと記載されていた。
このPage does’nt build guideの内容は以下
Unsafe plugins
危ないプラグインは使うなよ、ということらしいけど、debug.rbしか入っていないから、これが原因ではなさそう。
Syntax errors
sourceファイルのタイポかその辺のエラーじゃないか、ってことらしい。jekyllのsafeオプションを付けてビルドしてみる。以下のコマンドを実行
jekyll build --safe
これも問題なし。
Source setting
GitHubのビルドサーバーでは、sourceセッティングをオーバーライドするらしく、sourceの設定を弄っていると正しくビルドされないらしい。
sourceセッティングは変更していないので、これも原因ではなさそう。
Submodules in Pages
リポジトリでサブモジュールを使っている場合、ビルド時に自動でそのサブモジュールをpullするらしい。 この時、サブモジュールのアクセス先がpublicではなくprivateだとアクセスできずに失敗するらしい。
サブモジュールは使っていないので、これも原因ではなさそう。
Viewing build error messages
ビルドのエラーログを確認しろ、とのこと。
ローカル環境でビルドする以外の方法として、Travis CIを使ってビルドエラーメッセージを確認することができるらしい。
手順は以下
- Gemfileを準備 リポジトリのルート直下に、ファイル名”Gemfile”で以下の内容を記述する。
- .travis.ymlの準備 テストサービスの設定に、ファイル名”.travis.yml”で以下の内容を記述する。
この状態でGitHubへpushするとTravic CIでビルドジョブが実行される、らしい。
Travis CIのビルドメッセージを確認
Travis CIの画面から、以下のビルドメッセージを確認すると
どうやらpost.htmlのパースでエラーになっているらしい。
Liquid Exceptionの確認
markdownパーサー
Liquid Exception: invalid byte sequence in UTF-8
で、ググってみると
Github Pages で page build failed エラー|いがいが日記 Liquid Exception: Invalid Byte Sequence in UTF-8 in atom.xml|T.I.D.
markdownパーサーによってはビルドエラーになる場合があるらしい。 markdownパーサーを、”redcarpet”、”kramdown”、”rdiscount”と変えて試してみた結果、どのmarkdownパーサーでも同じくビルド失敗。
markdownパーサー依存の問題ではなさそう。
詳細なエラー発生箇所の確認
エラー発生箇所をもっと詳細に特定するために、post.htmlの中身を削ってビルド・エラーメッセージの確認を行う。 どうやら_includes/helpers/reference_thumbnail.htmlを使っている箇所が原因のよう。
解決
上記のファイルをエディタで開いてみると、文字コードがSHIFT_JISとなっていた。
これをUTF-8に変換してビルドしてみると、成功。
調べてみれば、なんてことない初歩的な問題でした。。
LinkLatest post:
- OpenWhiskのScala sbtプロジェクトのgiter8テンプレートを作った
- OpenWhisk+Scalaで作るServerless Architectureとっかかり
- BluemixにPlayframeworkアプリケーションをデプロイする
- sbt、Giter8を統合するってよ
- Scala 2.12.0でSAM型
Recent Books:
- Jekyllによる静的Webサイト構築入門してみた (15 Jan 2012 | Tags:
Jekyllによる静的Webサイト構築入門してみた Jekyllによる静的Webサイト構築入門してみた
こちらを参考にしました。
いろいろ嵌りポイントがあったので、後世の遺産として書き残します。
##環境構築 ※ここで使った環境は、Windows7です。 ###Rubyのインストール ActiveScriptRubyをダウンロード&インストール。 デフォルト設定でインストールしたら、↓に入った。(うろ覚え、たしかあってると思う)
###Pathの設定 環境変数に↓を追加
###RubyGemsのセットアップ gemのバージョンを確認。
バージョン1.3.6以前には対応していないので、1.3.6以前だった場合は更新する。
###Jekyllのインストール
インストールできるはずなんだけど、なんかエラーがでる。。 どうやら、Program files(x86)配下に書き込み権限がないから、らしい。
###再:Rubyのインストール もう一度、今度は、C:\直下にインストール。
###再:Pathの設定 Rubyのパスを↓に変更する。
###再:Jekyllのインストール
で、インストールできるはずなんだけど、なんかエラーがでる。。 どうやらWindows環境だと、MAKE無くてエラーになってるらしい。 Mac、Linux環境だとmakeはデフォルトはいっているので、Windows環境の嵌りポイント。
###NMAKEのインストール こちらを参考にWindows環境用のMAKE:NMAKEのインストールを試みる。 http://d.hatena.ne.jp/perlcodesample/20081025/1225035398
Nake15.exeをダウンロード&インストールしようとしたら、
手持ちの環境では、このNMAKEは使えないらしい。 別の方法を探す。
###VisualStudioのインストール VC++ CompilerにNMAKEが同梱されているようなので、VisualStudioをインストール。
Microsoft Visual C++ 2010 Expressをインストール。 インストール後に、再度Jekyllインストールしてみてもやっぱりダメ。
まだ何か足りないっぽい。
###環境変数の設定
環境変数を設定してやる必要があるらしい。
http://www7.atwiki.jp/smashonline/?cmd=word&word=cl.exe%200xc0000135&type=normal&page=nmake
###再:Jekyllのインストール
なんとかJekyllのインストールに成功。
##Jekyllの実行
ローカルのgithub:pagesのルートディレクトリ配下に移動してJekyllを実行。
##ブラウザで表示
デフォルトのポートが4000なので、
http://localhost:4000
にアクセスする。
##最後に
時間がたってからこの記事を書いたので、一部詳細があってないところもあるだろうけれど 大体こんな流れでした。
Latest post:
- OpenWhiskのScala sbtプロジェクトのgiter8テンプレートを作った
- OpenWhisk+Scalaで作るServerless Architectureとっかかり
- BluemixにPlayframeworkアプリケーションをデプロイする
- sbt、Giter8を統合するってよ
- Scala 2.12.0でSAM型
Recent Books:
- GitHub+Jekyllでブログを立ててみた。 (11 Jan 2012 | Tags:
GitHub+Jekyllでブログを立ててみた。 GitHub+Jekyllでブログを立ててみた。
こちらの記事を参考にしました。
まだまだ見栄えのしないお粗末な見た目ですが、これから少しずついじってみますよ。
プログラミング言語 Ruby著者: まつもと ゆきひろ, David Flanagan
発行日: 2009-01-26
出版社: オライリージャパン
カテゴリ: BookLatest post:
- OpenWhiskのScala sbtプロジェクトのgiter8テンプレートを作った
- OpenWhisk+Scalaで作るServerless Architectureとっかかり
- BluemixにPlayframeworkアプリケーションをデプロイする
- sbt、Giter8を統合するってよ
- Scala 2.12.0でSAM型
Recent Books: