jadeでhtmlタグを含んだ変数を出力したい時
# jade
- var html = '犯人は<a href="https://twitter.com/intent/user?screen_name=KiKiKi_KiKi">俺</a>だよ!';
p= html
div #{html}の様に書くと
# HTML <p>犯人は<a href="https://twitter.com/intent/user?screen_name=KiKiKi_KiKi">俺</a>だよ!</p> <div>犯人は<a href="https://twitter.com/intent/user?screen_name=KiKiKi_KiKi">俺</a>だよ!</div>
の様に文字列として表示されてしまします。
そんな時は、!を使うのです! (天の声)
# jade
- var html = '犯人は<a href="https://twitter.com/intent/user?screen_name=KiKiKi_KiKi">俺</a>だよ!';
p!= html
div !{html}↓ 出力すると....
# HTML <P>犯人は<a href="https://twitter.com/intent/user?screen_name=KiKiKi_KiKi">俺</a>だよ!</P> <div>犯人は<a href="https://twitter.com/intent/user?screen_name=KiKiKi_KiKi">俺</a>だよ!</div>
HTMLとして出力されました!
文字の途中に入れたい時は、
# jade
- var html = '<a href="https://twitter.com/intent/user?screen_name=KiKiKi_KiKi">俺</a>';
p
| 犯人は
!= html
| だよ!
div 犯人は!{html}だよ!の様に書けばOK。なのです!
このメモを書いた 犯人は俺だよ!
追記: Stackoverflowに良い説明がありました。
node.js - Jade: Why && is compiled to & when used in angularjs in Jade template? - Stack Overflow
Using != disables HTML-encoding in attributes.