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 で書かれてるので処理が遅い、という話も見かけたような…。その分、ちゃんと処理が行われる、ということなのかな?
[ ツッコむ ]
#2 [pc] Markdownについてぼんやり思ってることをメモ
思考メモです。
Markdownを知ってしまうと、はてな記法や、hnf等は、概念からして時代遅れだよなと ―― それら古い記法は比較の対象にすらならんのではと感じてしまうわけで。「この記号・省略語を使ってコンピュータに指示を出すのだ」「しかも極力タイプ数を減らすのだ」てなあたりで止まってる記法は、前世代っぽいというか。
以前、「Markdownは機能数が少ないからダメ」とdisってる人を見かけた記憶があるのだけど。機能数で見てるあたりが、全然分かってないなと。Markdownは、「パッと見でも人間がすらすら読める記法になっているか」「プログラムにとって優しい記法じゃなくて、人に優しい記法になっているか」を優先して考案したあたりが他の記法との違いだろうと。考えてる次元・階層が違うというか、もっと上のステージで考えた記法でしょうと。 *1
ただ、元々、はてな記法にしろ、hnfにしろ、出発点は同じだったはずで。
「htmlを直接打つとかやってられないよ。馬鹿馬鹿しい」
「普段使うタグなんて限られてるんだから、そこだけサポートして、入力を楽にしよう」
てなあたりは、Markdownとおそらくは同じ。しかし、「人間が見ても読みやすい」という視点が欠落していた or 煮詰め方が足りなかったのだろうなと。喩えるなら、ガラケーは作れたけどiPhoneは作れなかった、みたいなソレに近いかもしれず。機能は満たしてるけど、違うんだよ、そうじゃねえんだよ、みたいな。
どうしても大半のプログラマーは ―― もちろん自分も含めて ―― そのあたりの発想が弱い・視点を持ってないというか…。文書の見た目という、ある種の美的感覚・バランス感覚を持ってない。「一般人がこの文書を目にした時にどんな印象を受けるか」と想像する能力をどこかで失ってしまったというか。まあ、そのあたり、職業病かもしれないのですけど。「どんなプログラムを書いたらこれが実現できるだろう」と常に考えちゃうから、ついついコンピュータ側に思考が寄っていって、人間側のソレをおろそかにしちゃう、てなところがありそうな。 *2
何かの記法を考えるときに、「特殊記号や省略単語を打てば、タイプ数も少なくなるし、処理も楽になる。後から機能も増やせる」みたいなレベルで止まってたらマズイのだろうなと。その先に行かないと。いつまでも、Perlの変態特殊記号ノリモドキな仕様を重宝してるようではダメなのだろうと。
てなことを、Markdownで何かしら書いてる際には、チラチラ思ってしまうのでした。できる限り、Markdownのような方向を目指さないと、いかんのだろうなあ…。まあ、Markdown も、特殊記号がチョコチョコ混じってるので、もっとイケてる記法を生み出せる余地はありそうですけど。
なんとなく、そのあたり、漫符表現や顔文字と通じるところがありそうな気もしてきたり。見ただけで「ああ、こういう状態かな」と伝わる、みたいな。
Markdownを知ってしまうと、はてな記法や、hnf等は、概念からして時代遅れだよなと ―― それら古い記法は比較の対象にすらならんのではと感じてしまうわけで。「この記号・省略語を使ってコンピュータに指示を出すのだ」「しかも極力タイプ数を減らすのだ」てなあたりで止まってる記法は、前世代っぽいというか。
以前、「Markdownは機能数が少ないからダメ」とdisってる人を見かけた記憶があるのだけど。機能数で見てるあたりが、全然分かってないなと。Markdownは、「パッと見でも人間がすらすら読める記法になっているか」「プログラムにとって優しい記法じゃなくて、人に優しい記法になっているか」を優先して考案したあたりが他の記法との違いだろうと。考えてる次元・階層が違うというか、もっと上のステージで考えた記法でしょうと。 *1
ただ、元々、はてな記法にしろ、hnfにしろ、出発点は同じだったはずで。
「htmlを直接打つとかやってられないよ。馬鹿馬鹿しい」
「普段使うタグなんて限られてるんだから、そこだけサポートして、入力を楽にしよう」
てなあたりは、Markdownとおそらくは同じ。しかし、「人間が見ても読みやすい」という視点が欠落していた or 煮詰め方が足りなかったのだろうなと。喩えるなら、ガラケーは作れたけどiPhoneは作れなかった、みたいなソレに近いかもしれず。機能は満たしてるけど、違うんだよ、そうじゃねえんだよ、みたいな。
どうしても大半のプログラマーは ―― もちろん自分も含めて ―― そのあたりの発想が弱い・視点を持ってないというか…。文書の見た目という、ある種の美的感覚・バランス感覚を持ってない。「一般人がこの文書を目にした時にどんな印象を受けるか」と想像する能力をどこかで失ってしまったというか。まあ、そのあたり、職業病かもしれないのですけど。「どんなプログラムを書いたらこれが実現できるだろう」と常に考えちゃうから、ついついコンピュータ側に思考が寄っていって、人間側のソレをおろそかにしちゃう、てなところがありそうな。 *2
何かの記法を考えるときに、「特殊記号や省略単語を打てば、タイプ数も少なくなるし、処理も楽になる。後から機能も増やせる」みたいなレベルで止まってたらマズイのだろうなと。その先に行かないと。いつまでも、Perlの変態特殊記号ノリモドキな仕様を重宝してるようではダメなのだろうと。
てなことを、Markdownで何かしら書いてる際には、チラチラ思ってしまうのでした。できる限り、Markdownのような方向を目指さないと、いかんのだろうなあ…。まあ、Markdown も、特殊記号がチョコチョコ混じってるので、もっとイケてる記法を生み出せる余地はありそうですけど。
なんとなく、そのあたり、漫符表現や顔文字と通じるところがありそうな気もしてきたり。見ただけで「ああ、こういう状態かな」と伝わる、みたいな。
*1: もっとも、Markdownは、「機能が欲しい? だったらそこだけ、htmlで書きなよ」と、html仕様に丸投げできちゃうので…。「機能数が少ない」という評価が、そもそもおかしい気もしていて。html仕様を全て満たせるあたり、実は最も強力なのではないかしらん。
*2: しかし、そのあたり、プログラマーに限った話じゃないのかもしれず。例えば、紙芝居ゲーム作成ツールのスクリプト記法も、ゲロ吐きそうな記法だけど。シナリオライターさんが苦情を言ってる場面を見た記憶がなくて。シナリオを書いてるってことは、おそらくは小説家寄りの思考ができる人達のはずで、つまりは「文書の見た目」という視点も持ってるだろうと。であれば、
「こんな呪文、一々書いてられんわ。馬鹿げてる」
「俺はシナリオを書きたいんだ。文章表現に注力したいんだ。コンピュータへの命令書を書きたいわけじゃない」
「小説原稿としての見た目も兼ね備えたスクリプト記法を考えよう」
等の意見が出てきてもおかしくないだろうに…。まあ、その手のマゾ仕様に耐えちゃう人が、作業を延々と続けていて。耐えられない人は「こりゃ馬鹿馬鹿しいわ」と、フツーに小説その他を書く作業に移行しちゃって。結果、文句が出てこないのかもしれないか…。
*2: しかし、そのあたり、プログラマーに限った話じゃないのかもしれず。例えば、紙芝居ゲーム作成ツールのスクリプト記法も、ゲロ吐きそうな記法だけど。シナリオライターさんが苦情を言ってる場面を見た記憶がなくて。シナリオを書いてるってことは、おそらくは小説家寄りの思考ができる人達のはずで、つまりは「文書の見た目」という視点も持ってるだろうと。であれば、
「こんな呪文、一々書いてられんわ。馬鹿げてる」
「俺はシナリオを書きたいんだ。文章表現に注力したいんだ。コンピュータへの命令書を書きたいわけじゃない」
「小説原稿としての見た目も兼ね備えたスクリプト記法を考えよう」
等の意見が出てきてもおかしくないだろうに…。まあ、その手のマゾ仕様に耐えちゃう人が、作業を延々と続けていて。耐えられない人は「こりゃ馬鹿馬鹿しいわ」と、フツーに小説その他を書く作業に移行しちゃって。結果、文句が出てこないのかもしれないか…。
[ ツッコむ ]
以上、1 日分です。