slim
今回はどうも泥臭い話です。 もしかすると、将来勝手に解決されてるかもしれません。erbからslimにしたviewのとある機能について検証していたところ、こんなエラーがでました。 ERROR: compiling _app_views_hoges_search_html_slim__ RAISED /home/shuzo/ra…
最近仕事でnode.jsを使う機会が増えてきました。*1 普段はslimを使ってるワタシですが、これはruby文化と親和性が高いものでnodejs向きじゃないそうです。 javascriptフレンドリーなテンプレートエンジンは jade skim emblem.js てのがあるそうです。 現状で…
sinatraでもhelperを使う事ができます。 実際のところ link_toを作ってみます。 使うもの app.rb いつものsinatraアプリに、helpersメソッドを追加。 ブロックの中身にメソッドを記述します。 require 'sinatra' require 'slim' helpers do def link_to(url,…
楽にネタアプリを作りたい場合、Railsではなくsinatraを使ったほうがいい場合も多々あります。 加えて、マークダウンみたいなのが使えれば更に試作が早くなりますよね。 今回はそんな話です。 実際のところ 画面遷移なし、コメントとGoogle.comへのリンクだ…
Slimはtiltというgemと連動しているため、 coffee scriptやsass、markdownを書くときに便利な機能を使えます。 実例 例えば、 coffee: square = (x) -> x * x markdown: #Header Hello from #{"Markdown!"} Second Line! なんてslimスクリプトだと <script type="text/javascript">(function…
yieldなど、HTMLエスケープをしたくない場合は「==」で出力すればOKです - def hoge; '&!hoge'; end = hoge br == hoge これが、 &!hoge<br />&!hoge と出力されます。 参考もと slim-template/slim · GitHub
Slimでタグを切り替えたい場合はDynamic Tagが便利です。 これを使うと… たとえば特定のユーザにだけ表示したいinputタグ…なんてケースを実装するのが楽です。 実際のところ ruby: def nyu @flag ? {tag: 'p'} : {tag: 'b'} end - @flag = true *nyu NYU wit…
Slimでタグにクラスをくっつける場合、配列やハッシュで渡す事ができます。 a.menu class="highlight" href="http://slim-lang.com/" Slim-lang.comとやれば、 <a class="menu highlight" href="http://slim-lang.com/">Slim-lang.com</a> と、よろしくコンバートしてくれます。ここで、Splat attributesという機能をつか…
次のようなslim形式のテキストデータがあったとします。 $ cat hoge.txt ul li.first: a[href="/a"] A link - 10.times do |i| li: a[href="/#{i}"] #{i} link li.last: a[href="/B"] B linkこれをSlimのコンバータにかけると、 のように最初の要素だけA、数…
slimrbは公式が提供しているslimのパーサコマンドです。 ただ、別途redcarpetというマークダウンパーサのgemが必要なので 先に導入します。 $ gem install redcarpet つかいかた $ echo 'markdown: 123 456 * a * b ' | slimrb なんてことをやれば、 <p>123 456</p> <ul></ul>…
今回はC言語使いにもお馴染み、printf記法の話です。 やや記法が独特なところがありますが、使いこなせば複雑な文字列も割と気軽に生成できます。以下の例では、出力したいものを id = 3 measure = 20 とします。 printfだと代入できない printfはputsやprin…
erbからslimに移行する際の注意点です。erb2slimを使えば、簡単に変換できます。 が、開発者の意図までは酌んでくれません。 例えば、blockを使ったスクリプトを書いていると意図せずクラッシュする可能性があります。 具体例 <%= form_tag :hoge, :id => :p…
微妙に引っかかったのでメモ想定する出力 方法 後ろにもう一個classをつける a.menu class="highlight" 配列を渡す a class=["menu","highlight"] ハッシュとして渡す ハッシュを渡す場合は*をつけます これはクラスに限らないので色々な属性も設定可能です…