知らなかったHamlの機能 ほか
この前Herokuを触ったついでにWindowsにRubyをインストールした私は…なお話です。
知らなかったHamlの機能
ただのHTML簡略記法といい感じにRubyを評価できるだけのものだと思ってたら思いのほか高機能でした。
Markdownを埋め込める
.content :markdown ### 埋め込んでみた こんな感じで埋め込みます。
これをHTMLにするとこうなります。
<div class="content"> <h3 id="id1">埋め込んでみた</h3> <p>こんな感じで埋め込みます。</p> </div>
テキストが主体のところはMarkdownで、それ以外はHamlで、といった棲み分けができます。Haml単体では使えないので追加でgemをインストールする必要があります。
ほかにもいろいろ埋め込める
LESSやCoffeeScriptも埋め込めます。やり方は似た感じ。
File: REFERENCE — Haml Documentation
ここに埋め込めるものが書いてあります。「埋め込める」とずっと言ってきましたが、Filterという扱いらしいですね。
知らなかったMarkdownの機能
この前調べてずいぶん機能少ないなと思ったらこういう裏がありました。
実は普通にHTML書けちゃう
見出しや段落、ちょっとした装飾やテーブルなどなど以外、たとえばspanで色を付けるといった場合は普通にHTMLを書くといいようです。もちろんMarkdownでも書くことができるimgタグやaタグもHTMLとして書くこともできます。極端な話ただのHTMLをMarkdownだと言い張っても一応合法というわけです
実は見出しタグにidが自動的に振られちゃう
HTMLを生成してみると見出しタグ<h1>~<h6>にidが自動的に振られていました。
## なんとか ## あれとかそれとか
と書くと
<h2 id="id1">なんとか</h2> <h2 id="id2">あれとかそれとか</h2>
みたいな感じになります。日本語だと上のようになるのですが、ラテン文字だとまた違った挙動をするようです。
しかも任意のものに設定可能だった
## Header {#hogehoge}
と書くと
<h2 id="hogehoge">Header</h2>
となります。id属性がいらないときはどうするんでしょうねこれ
で、こいつらWindowsで使ってみようとおもったらはまった件について
コマンドプロンプトから「haml これこれ」とか「markdown なになに」とたたけばいいんですが…
gemのインストールは管理者権限で
何の気なしにWindowsでgemインストールしようとするとPermission Deniedとか言われるからあれ
— ゆうなんとか@低空飛行さん (@yuu_hara) 2013年1月27日
管理者権限でPowerShellなりコマンドプロンプトなりを実行すれば回避できます。手続きが少々めんどくさいのですがまあこれは仕方ないかなと。
文字コードに注意。
UTF-8で書いたファイルをオプションなしで読ませると
Invalid Windows-31J character "\xE3" (Haml::Error)
と怒られます。文字コードをWindows-31Jにすればいいんですが、時代が時代ですので…回避策はこちら。
haml -E UTF-8 input.haml output.html
ちゃんとヘルプにも書いてあったのに見落としてました。説明書はちゃんと見ましょう。