2014/02/27(木) [n年前の日記]
#1 [ruby] Windows上でjekyllをインストール
某サイトのデザインを変更したいという話が来たのだけど。せっかくだから、この際サイト作成に便利なツールを導入できないものかと思い始めて。ただ、そのサイトは、cgiが動かせないサーバ上で公開されてるので、静的html生成機能が無いと困るわけで。てなわけで、以前からちょっと気になってた、jekyll を試用してみようかなと。
jekyllは、サイト作成ツール。以下の特長がある。
てなわけで、Windows7 x64 + _Ruby 2.0.0 p451 mingw32版 + Python 2.6.6 の環境で、以下の記事を参考にしてインストールしてみたり。
_Windows で Jekyll 1.3 を動かすまでの手順 - てっく煮ブログ
_Jekyll で Windows の UTF-8 - me-mo
_Fixing 'cannot load such file -- yajl' Windows 7 64bit, Rails, Ruby 2+
_Windows環境にJekyll 1.4を導入する(自家用メモ) - なか日記
_ruby - Jekyll - Error Running 'Jekyll Serve' - Stack Overflow
_Windows環境にjekyllをインストール | サイト運営の私的メモ
jekyllと、jekyllが要求するモジュール(?)は、以下でインストールできる。
ただし、pygments.rb 0.5.1 以降はWindows上で動作しないらしいので、ダウングレードする。
UTF-8で書かれた文書を読み込ませるとエラーが出るときがあるらしいので、対策をする。Ruby 2.0.0インストールフォルダ\bin\jekyll.bat の2行目に、以下の一文を追加。
ただ、jekyllで作成したプロジェクトフォルダ(?)にファイルを置くことでも同様の指定できるらしくて。_plugins\utf-8.rb を作成して、以下の一行を記述。
pygments なる、Pythonモジュールをインストール。easy_install (setuptools?) が使える環境で以下を実行。
ここで一旦、テスト用のプロジェクトフォルダ? サイトの雛形? を作る。テキトーなフォルダを作って、そこをカレントフォルダにしてDOS窓を開いて、以下を入力。
動作確認する。
現時点では、yajl-ruby でエラーが出るようで。「yajlが見つからねえよ」とか「yajiがロードできねえよ」とか言われてしまう。色々試してみたけど、以下の指定でエラーが出なくなった。
また、現在の jekyll 最新版は 1.4.3 だけど。それだと以下のようなエラーが出てしまう。
Markdownパーサが誤動作する時もあるらしいので、パーサを kramdown に変更。デフォルトでは Maruku とやらを使うらしい。 *1
今度こそ、動作確認。
「Ctrl + C を押せばサーバは止まるよ」と言ってるので、Ctrl+Cを押してサーバを停止。
元文書は、_portsフォルダ以下に入っているらしい。*-welcome-to-jekyll.markdown というファイルが入ってたので、エディタで開いて日本語文字列を書いて utf8n で保存した。jekyll serve を実行して確認したら、ちゃんと日本語が表示された。
jekyllは、サイト作成ツール。以下の特長がある。
- 静的html生成ができる。(一般的なCMSの類は、動的生成 ―― cgiやDBが動かせるサーバ上で、ブラウザからアクセスされるたびにhtmlを生成するのだけど。そういうサーバが無くても、サイト公開ができる。)
- DB不要。
- Markdownという、人間にも分かりやすい記法で、各ページ(の元文書)を書ける。
- Rubyで動く。
- Windows上でも(一応)動作する。(この手のツールは、Linux上で動作させることが前提で作られてるので、Windowsでは動かせないツールも結構存在する。)
てなわけで、Windows7 x64 + _Ruby 2.0.0 p451 mingw32版 + Python 2.6.6 の環境で、以下の記事を参考にしてインストールしてみたり。
_Windows で Jekyll 1.3 を動かすまでの手順 - てっく煮ブログ
_Jekyll で Windows の UTF-8 - me-mo
_Fixing 'cannot load such file -- yajl' Windows 7 64bit, Rails, Ruby 2+
_Windows環境にJekyll 1.4を導入する(自家用メモ) - なか日記
_ruby - Jekyll - Error Running 'Jekyll Serve' - Stack Overflow
_Windows環境にjekyllをインストール | サイト運営の私的メモ
jekyllと、jekyllが要求するモジュール(?)は、以下でインストールできる。
gem install jekyll
ただし、pygments.rb 0.5.1 以降はWindows上で動作しないらしいので、ダウングレードする。
gem uninstall pygments.rb --version "=0.5.4" gem install pygments.rb --version "=0.5.0"
UTF-8で書かれた文書を読み込ませるとエラーが出るときがあるらしいので、対策をする。Ruby 2.0.0インストールフォルダ\bin\jekyll.bat の2行目に、以下の一文を追加。
set RUBYOPT=-EUTF-8「デフォルトの文字コードはUTF-8だよ」と指定しているらしい。
ただ、jekyllで作成したプロジェクトフォルダ(?)にファイルを置くことでも同様の指定できるらしくて。_plugins\utf-8.rb を作成して、以下の一行を記述。
Encoding.default_external = Encoding::UTF_8こちらの指定でも問題が無いなら、環境を汚さなくて済むのでグッド、かもしれず。
pygments なる、Pythonモジュールをインストール。easy_install (setuptools?) が使える環境で以下を実行。
easy_install pygments
ここで一旦、テスト用のプロジェクトフォルダ? サイトの雛形? を作る。テキトーなフォルダを作って、そこをカレントフォルダにしてDOS窓を開いて、以下を入力。
> jekyll new jekyll-test New jekyll site installed in C:/home/web/jk/jekyll-test. > cd jekyll-testこの例では、jekyll-test というプロジェクトフォルダを作成してる。中には色々なファイルが作成される。
動作確認する。
> jekyll serveしかし、エラーが出て動かないはず。
現時点では、yajl-ruby でエラーが出るようで。「yajlが見つからねえよ」とか「yajiがロードできねえよ」とか言われてしまう。色々試してみたけど、以下の指定でエラーが出なくなった。
gem install bundler gem uninstall yajl-ruby gem install yajl-ruby -v=1.1.0 --platform=ruby現時点では yajl-ruby の 1.2.0 が最新版らしいけど、それでは動いてくれなかった。また、1.1.0 x86-mingw32 版もダメ。-v=1.1.0 --platform=ruby じゃないと動作しないらしい。
また、現在の jekyll 最新版は 1.4.3 だけど。それだと以下のようなエラーが出てしまう。
C:\home\web\jk\jekyll-test>jekyll serve Configuration file: C:/home/web/jk/jekyll-test/_config.yml Source: C:/home/web/jk/jekyll-test Destination: C:/home/web/jk/jekyll-test/_site Generating... error: Invalid argument - C:/home/web/jk/jekyll-test/_site/C:. Use --trace to view backtrace1.4.2 なら動くらしいので、ダウングレードする。
gem uninstall jekyll gem install jekyll -v=1.4.2
Markdownパーサが誤動作する時もあるらしいので、パーサを kramdown に変更。デフォルトでは Maruku とやらを使うらしい。 *1
gem install kramdownjekyllプロジェクトフォルダ\_config.yml を編集。以下の一行を最後に追加。
markdown: kramdown
今度こそ、動作確認。
> jekyll serve Configuration file: C:/home/web/jk/jekyll-test/_config.yml Source: C:/home/web/jk/jekyll-test Destination: C:/home/web/jk/jekyll-test/_site Generating... done. Server address: http://0.0.0.0:4000 Server running... press ctrl-c to stop._http://localhost:4000/ をブラウザで開いて、それっぽいページが表示されたらOK。
「Ctrl + C を押せばサーバは止まるよ」と言ってるので、Ctrl+Cを押してサーバを停止。
元文書は、_portsフォルダ以下に入っているらしい。*-welcome-to-jekyll.markdown というファイルが入ってたので、エディタで開いて日本語文字列を書いて utf8n で保存した。jekyll serve を実行して確認したら、ちゃんと日本語が表示された。
◎ 勘違いしてたことに気付いた。 :
jekyll をインストールして動作確認して、そこでようやく気づいたのだけど。これって、blog用のツールやん…。あかんわ…。
今回は、「半年に1回ぐらいの頻度で商品が差し替わる、お店のサイト」みたいなものを作りたいわけで。blogを作りたいわけじゃない。これはちょっと違うジャンルのツールに手を出しちゃったなと。
もちろん、「俺はblogを作りたいのだ」って場合には、jkeyll はヨサゲな選択肢だろうと思えたり。Markdown記法で書けるし、静的html生成だからサーバを選ばないってのはグッドだなと。この手のツールがもっと増えてくれたらいいのに…。
今回は、「半年に1回ぐらいの頻度で商品が差し替わる、お店のサイト」みたいなものを作りたいわけで。blogを作りたいわけじゃない。これはちょっと違うジャンルのツールに手を出しちゃったなと。
もちろん、「俺はblogを作りたいのだ」って場合には、jkeyll はヨサゲな選択肢だろうと思えたり。Markdown記法で書けるし、静的html生成だからサーバを選ばないってのはグッドだなと。この手のツールがもっと増えてくれたらいいのに…。
*1: ちなみに、kramdown は、全部 Ruby で書かれてるので処理が遅い、という話も見かけたような…。その分、ちゃんと処理が行われる、ということなのかな?
[ ツッコむ ]
以上です。