haml
创建: 2019/05/23
文档: http://haml.info/docs/yardoc/file.REFERENCE.html
|
安装 |
|
| 安装 |
gem "haml"
|
| 纯文本 | |
|
所有不带固有符号的都作为纯文本 |
|
| html也作为纯文本 | |
| 转义字符 |
直接输出后面的 %title = @title \= @title 输出为 <title> MyPage = @title </title>
|
| html标签 | |
| 标签名以 % 开始 |
%table#data
%tbody
%tr
%td= '@data'
相当于 <table class="data"> <tbody> <tr> <td>数据</td> </tr> </tbody> </table>
|
| 属性 {} 或 () |
● {} 直接作为ruby的hash, 故可用所有ruby语法 - 也可以使用返回hash的方法(多个方法的话从左到右被 merge ) def html_attrs(lang = 'en-US') {:xmlns => "http://www.w3.org/1999/xhtml", 'xml:lang' => lang, :lang => lang} end # haml %html{html_attrs('fr-fr')}
- 前缀 嵌套进hash里 {data: {sample: 1, test: 2}}
# => data-sample="1" data-test="2"
● () 内部插值: #{} %span(class="widget_#{@widget.number}")
|
| class, id |
若传入数组, 则先删除false的元素, 再 flatten ● class(简化方法为.) 若为数组, 先flatten再 join " " ● id(简化方法为#) 若为数组, 先flatten再 join "_"
例 %div{id: %w(a b c), class: %w(a b c)} 123
解释为 <div class="a b c" id="a_b_c"> 123 </div>
|
| 默认元素 |
如果只指定class/id, 则为div .sample a 相当于 %div.sample a 相当于 <div class="sample"> a </div>
|
| 关闭不带内容的标签 |
/ 例 %br/
|
| Whitespace Removal: > and < | |
| Object Reference: [] | |
| doctype:!!! | |
| 注释 | |
| / | 多行注释靠缩进 |
| -# | 多行注释靠缩进 |
| 插入ruby | |
| 插入ruby = |
= , 输出结果, 相当于 <%= ... %> 例: = link_to 'sample', root_path ● 多行 每一行都以 , 来结束
|
| - |
- , 不输出结果, 相当于 <% ... %>
|
| 代码块 |
ruby代码块不需要end - (1..100).each do |i| %span= "a: #{i}" %span= "b: #{i}" %br/
|
| Whitespace Preservation: ~ | |
| 插值 #{} |
除了文字里, 也可以放在纯文本里 - (1..100).each do |i| %span a: #{i} %span b: #{i} %br/
|
| Gotchas | |
| Escaping HTML: &= | |
| Unescaping HTML: != | |
| Filters | |

浙公网安备 33010602011771号