创建: 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  

haml的更多相关文章

  1. emmet,jade,haml, slim,less,sass,coffeescript等的实战优缺点

    摘要: 文章背景,来自于群内周五晚上的一次头脑风暴式的思维碰撞交流活动. 随着前端技术的蓬勃发展, 各种新技术随着生产力的需要不断的涌入我们的视野, 那今天探讨的话题是这些新时代的前端兵器谱: 一. ...

  2. HTML代码简写法:Emmet和Haml

    http://www.ruanyifeng.com/blog/2013/06/emmet_and_haml.html?bsh_bid=657901854 HTML代码简写法:Emmet和Haml   ...

  3. 今天发现新大陆:haml和Emmet

    其实一开始小渣渣我只是想接触一下(css预处理器)sass,可是突然冒出一个haml. 原文是酱紫的. Sass 是采用 Ruby 语言编写的一款 CSS 预处理语言,它诞生于2007年,是最大的成熟 ...

  4. HTML的快速写法:Emmet和Haml

    HTML代码写起来很费事,因为它的标签多. 一种解决方法是采用模板, 在别人写好的骨架内,填入自己的内容.还有一种就是我今天想要介绍的方法—-简写法. 常用的简写法,目前主要是Emmet和Haml两种 ...

  5. HAML学习

    来源:http://ningandjiao.iteye.com/blog/1772845 一个技术能够风靡,一定是有它的原因的,在熟悉之前,我们没有资格去对它做任何的判断. Haml 是一种简洁优美的 ...

  6. haml、sass简单的解释

    1. Haml 全名为 HTML Abstract Markup Language,主要就是让开发者能够使用缩排的方式撰写 HTML,做到永不忘记关 Tag 的效果. 例如:%h1= "He ...

  7. haml参考大全

    原文来自: http://blackanger.blog.51cto.com/140924/47642   Haml是一种用来描述任何XHTML web document的标记语言,它是干净,简单的. ...

  8. 【转】Haml 这货是啥? 附参考

    Haml是一种用来描述任何XHTML web document的标记语言,它是干净,简单的.而且也不用内嵌代码.Haml的职能就是替代那些内嵌代码的page page templating syste ...

  9. haml入门

    1.什么是Haml Haml是HTML abstraction markup language,遵循的原则是标记应该是美的.Haml能够加速和简化模版,长处是简洁.可读.高效. 2.erbm模板和ha ...

  10. [转]SCSS 和 SASS 和 HAML 和CoffeeScript

    Asset Pipeline 提供了内建直接使用 Sass 撰写 CSS 的功能. 你也许会生出这样的疑惑:什么是 Sass? Why should I care? Sass (Syntactical ...

随机推荐

  1. CSS3 3D立体柜子实现

    1. [图片] 20140811233657.jpg 2. [图片] 120140811233846.jpg ​3. [代码][CSS]代码 body {      background-color: ...

  2. php数组转换成js可用的数组的两种方式

    1.如果你理解JSON数据格式的话,这个问题就异常简单: <?php $a =array('1','2','3'); ?> <script language="javasc ...

  3. php设计模式课程---8、适配器模式是什么

    php设计模式课程---8.适配器模式是什么 一.总结 一句话总结: 充电过程中,手机充电器相对于手机和插座之间就是适配器 1.编程中的适配器是怎么回事? 写一个类(适配器),将传入的数据的格式或者内 ...

  4. C++STL(vector,map,set,list,bitset,deque)成员函数整理

    补充: vector 删除指定元素: vec.erase(remove(vec.begin(), vec.end(), val),           vec.end());remove()返回的是删 ...

  5. HLSL学习笔记(一):基础

    http://www.cnblogs.com/rainstorm/archive/2013/05/04/3057444.html 前言 五一在家无事,于是学习了一下HLSL,基于XAN4.0的.学习完 ...

  6. 标准模板库(STL)学习指南之sort排序

    对于程序员来说,数据结构是必修的一门课.从查找到排序,从链表到二叉树,几乎所有的算法和原理都需要理解,理解不了也要死记硬背下来.幸运的是这些理论都已经比较成熟,算法也基本固定下来,不需要你再去花费心思 ...

  7. chrome中的content script脚本文件

    打开chrome的devtools工具,sources下有一个Content script: 1 chrome插件开发过程中难免会遇到使用content script来操作页面的dom,在chrome ...

  8. BZOJ1727:[Usaco2006 Open]The Milk Queue挤奶队列

    我对\(Jhonson\)算法的理解:https://www.cnblogs.com/AKMer/p/9863620.html 题目传送门:https://www.lydsy.com/JudgeOnl ...

  9. 利用dynamic来提供动态方法的性能

    前段时间做了一个worklist的项目,有部分是利用xml配置DICOM的tag,然后根据xml把DICOM的Dataset转为实体类,或者把实体类转为Dataset. 当中主要应用了反射来调用Dat ...

  10. 【转】Pro Android学习笔记(十七):用户界面和控制(5):日期和时间控件

    目录(?)[-] DatePicker和TimePicker控件 DigitalClock和AnalogClock控件 DatePicker和TimePicker控件 使用DatePicker和Tim ...