创建: 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. python第七篇:Python 列表操作详解

    Python列表操作详解 list函数 list()   #生成一个空的列表 list(iterable)  #用可迭代对象初始化一个列表 列表的 and 运算和 or 运算 列表and运算 > ...

  2. 浅谈WebService开发(一)

    一.什么是WebService: 简单通俗来说,就是企业之间.网站之间通过Internet来访问并使用在线服务,一些数据,由于安全性问题,不能提供数据库给其他单位使用,这时候可以使   用WebSer ...

  3. 造成segmentation fault的可能原因分析

    一 造成segment fault,产生core dump的可能原因 1.内存访问越界 a) 由于使用错误的下标,导致数组访问越界 b) 搜索字符串时,依靠字符串结束符来判断字符串是否结束,但是字符串 ...

  4. Selenium-webdriver基本操作1

    #! /usr/bin/env python #coding=utf-8 from selenium import webdriver import time print("====浏览器最 ...

  5. JSP--常用标签

    JSTL简介: JSTL是Java中的一个定制标签库集 实现了JSP页面中的代码复用,提高效率 可读性更强,方便前端查看与开发 环境搭建: JSTL标签和Servlet及JSP页面有比较严格的版本对应 ...

  6. 大数据排序算法:外部排序,bitmap算法;大数据去重算法:hash算法,bitmap算法

    外部排序算法相关:主要用到归并排序,堆排序,桶排序,重点是先分成不同的块,然后从每个块中找到最小值写入磁盘,分析过程可以看看http://blog.csdn.net/jeason29/article/ ...

  7. vs code 安装Scala

    首先本机要安装scala(官网肿么下不了,CSDN上面下的): 配置scala到环境变量PATH中(Scala的根目录): VS中安装以下扩展: 1. Scala: 2. Sbt: 3. Code R ...

  8. 如何在开启了log-bin的MySQL Server中创建FUNCTION

    在MySQL主从复制机器的master的数据库中创建function,报出如下错误: Error Code: 1418. This function has none of DETERMINISTIC ...

  9. redis安装及启动及设置

    1. 安装 1.1 下载解压包,直接解压到任意路径下即可 windows下载地址:ttps://github.com/MSOpenTech/redis/releases 2.启动 2.1 启动要先开启 ...

  10. C#中如何获取汉字的笔画数和汉字的拼音

    以前玩过一个游戏,输入两个人的名字然后点击缘分就能产生一段缘分测试的结果,后来经过分析知道是根据名字笔画数之差来弄的小游戏,于是就在百度上找怎么得到汉字的笔画数,也没找到自己想要的答案,问遍了所有的人 ...