haml入门

1.什么是Haml

Haml是HTML abstraction markup language,遵循的原则是标记应该是美的。Haml能够加速和简化模版,长处是简洁、可读、高效。

2.erbm模板和haml模板对照

.erb模板代码:

<section class=”container”><h1><%= post.title %></h1><h2><%= post.subtitle %></h2><div class=”content”><%= post.content %></div>
</section>

相同的代码使用haml:

%section.container
  %h1= post.title
  %h2= post.subtitle.content= post.content

3.安装haml

haml是一个命令行工具。gem安装明令:

gem install  haml

安装最新版本号:

gem install haml --pre

在rails项目中更新Gemfile,加入haml依赖:

gem 'haml'

4.erb转haml

haml是erb的一个替代品,app/views下的.erb文件都能够直接改动后缀名更改为haml模板:

app/views/account/login.html.erb → app/views/account/login.html.haml

5.使用haml

5.1 erb代码转haml代码

ERB:

<strong><%= item.title %></strong>

Haml:

%strong= item.title

在haml中通过%加标签名的方式表示一个html标签。比方%strong, %div, %body, %html; 标签名后跟告诉haml去计算ruby代码。返回值作为标签的内容。

Haml的会自己主动检測返回值的换行符而且格式化标签。

5.2给标签加入属性:

HTML:

<strong class="code" id="message">Hello, World!</strong>

HAML:

%strong{:class => "code", :id => "message"} Hello, World!

5.3简化Div

Html:

<div class='content'>Hello, World!</div>

Haml:

.content Hello, World!

5.5 演示样例一

ERB:

<div class='item' id='item<%= item.id %>'><%= item.body %>
</div>

HAML:

.item{:id =>"item#{item.id}"} = item.body

5.2 演示样例2

ERB:

<div id='content'><div class='left column'><h2>Welcome to our site!</h2><p><%= print_information %></p></div><div class="right column"><%= render :partial => "sidebar" %></div>
</div>

HAML:

#content.left column
     %h2 Welcome to our site!
     %p  = print_information.right column=render :partial => "sidebar"

Haml使用缩进来表示层级关系

转载于:https://www.cnblogs.com/lxjshuju/p/7253520.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/369835.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

制图折断线_【机械制图】机械设计中的尺寸标注,看懂复杂机械图纸!

专注于机械行业、专业、职业信息分享服务于制造业百万工程师推荐阅读【机械制图】画图这么久&#xff0c;线型都没搞懂&#xff1f;【机械制图】机械图纸知识解析&#xff0c;这个总结溜溜的【机械制图】机械图纸尺寸标注规则&#xff0c;通过动图复习一下&#xff01;知名机械…

CCS3的过渡、变换、动画以及响应式布局、弹性布局

CSS3 过渡 、变换、动画 在没有CSS3之前&#xff0c;如果页面上需要一些动画效果&#xff0c;要么你自己编写 JavaScript&#xff0c;要么使用 JavaScript 框架(如 jQuery)来提高效率。 但是CSS3出来之后&#xff0c;有能力做一些如平滑过渡(比如在鼠标悬停时)和在屏幕上移动元…

Wordcounter,使用Lambdas和Fork / Join计算Java中的单词数

这些天来&#xff0c;我发布了Wordcounter &#xff0c;这是一个Java库和命令行实用程序&#xff0c;用于对文本文件中的单词进行计数并对单词计数进行分析&#xff0c;从而大量使用了功能编程结构和并行计算方法。 这是我在“令人讨厌的快速问答”大赛第四个条目SAP &#xff…

BZOJ2659: [Beijing wc2012]算不出的算式

2659: [Beijing wc2012]算不出的算式 Time Limit: 3 Sec Memory Limit: 128 MBSubmit: 1489 Solved: 891[Submit][Status][Discuss]Description 算不出的算式 背景&#xff1a; 曾经有一个老掉牙的游戏放在我面前&#xff0c;我没有珍惜。直到这个游戏停产才追悔莫及。人世间…

Android Studio报Error:Execution failed for task #39;:Companion:preDexDebug#39;.

错误例如以下&#xff1a; Error:Execution failed for task :Companion:preDexDebug. > com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process command C:\Program Files\Java\jdk1.8.0_40\bin\java.exe finished with n…

go 修改结构体方法_「GCTT 出品」Go 系列教程——26. 结构体取代类

Go语言中文网&#xff0c;致力于每日分享编码、开源等知识&#xff0c;欢迎关注我&#xff0c;会有意想不到的收获&#xff01;Go 支持面向对象吗&#xff1f;Go 并不是完全面向对象的编程语言。Go 官网的 FAQ 回答了 Go 是否是面向对象语言&#xff0c;摘录如下。可以说是&…

WindowsLinux常用命令笔记

目录linux windows Linux: 1.查找文件 find / -name filename.txt 根据名称查找/目录下的filename.txt文件。 find . -name "*.xml" 递归查找所有的xml文件 find . -name "*.xml" |xargs grep "hello world" 递归查找所有文件内容中包含hello w…

button 和input 的区别及在表单form中的用法

先说一下button 和input的定义&#xff1a; <button> 标签定义的是一个按钮 1、在 <button> 元素内部&#xff0c;您可以放置任何内容&#xff0c;比如文本或图像。这是该元素与使用 <input> 元素创建的按钮之间的不同之处&#xff1b; 2、 <button> …

走向REST:在Spring和JAX-RS(Apache CXF)中嵌入Jetty

对于服务器核心Java开发人员而言&#xff0c;向世界“展示”的唯一方法是使用API​​。 今天的帖子都是关于JAX-RS的 &#xff1a;使用Java编写和公开RESTful服务。 但是&#xff0c;我们不会使用涉及应用程序服务器&#xff0c;WAR打包以及诸如此类的传统的重量级方法来做到这…

分组后分页_SQL(约束、视图、分页、序列、索引、同义词、创建用户,为用户授权、执行计划的使用 数据的导入导出)...

学习主题&#xff1a;SQL学习目标&#xff1a;掌握约束掌握视图修改表名与删除表删除表中的列语句的语法结构是什么&#xff1f;答&#xff1a;delete 表名from table where ;删除表中的列语句的语法结构是什么&#xff1f;答&#xff1a;delete 表名from table where ;截断表的…

第三百三十四节,web爬虫讲解2—Scrapy框架爬虫—Scrapy爬取百度新闻,爬取Ajax动态生成的信息...

第三百三十四节&#xff0c;web爬虫讲解2—Scrapy框架爬虫—Scrapy爬取百度新闻&#xff0c;爬取Ajax动态生成的信息 crapy爬取百度新闻&#xff0c;爬取Ajax动态生成的信息&#xff0c;抓取百度新闻首页的新闻rul地址 有多网站&#xff0c;当你浏览器访问时看到的信息&#xf…

BEM思想之彻底弄清BEM语法

BEM的意思就是块&#xff08;block&#xff09;、元素&#xff08;element&#xff09;、修饰符&#xff08;modifier&#xff09;,是由Yandex团队提出的一种前端命名方法论。这种巧妙的命名方法让你的CSS类对其他开发者来说更加透明而且更有意义。BEM命名约定更加严格&#xf…

Hibernate Search 4.2最终发布:支持空间查询

JBoss已宣布发布Hibernate Search 4.2 final。 您可以从Sourceforge下载它或使用Maven构件 。 在新版本中&#xff0c;包含了一些有趣的功能&#xff1a; Hibernate Search现在支持空间查询 。 使用Spatial扩展&#xff0c;您可以将全文查询与基于到空间点的距离的限制结合起…

推荐算法

5类系统推荐算法,非常好使,非常全 今日头条用了哪五种推荐算法 视频 今日头条核心技术“个性推荐算法”揭秘转载于:https://www.cnblogs.com/lhuser/p/8306092.html

python的应用包括哪些_Python应用领域有哪些?

1、数据分析与处理通常情况下&#xff0c;Python被用来做数据分析。用C设计一些底层的算法进行封装&#xff0c;然后用Python进行调用。因为算法模块较为固定&#xff0c;所以用Python直接进行调用&#xff0c;方便且灵活&#xff0c;可以根据数据分析与统计的需要灵活使用。Py…

win10系统同时安装python2和python3

1、官网下载python2和python3版本 2、安装python3&#xff0c;勾上Add Python3.5 to PATH&#xff0c;自定义选择安装目录&#xff0c;安装&#xff0c;验证&#xff1a;WINR--->cmd&#xff0c;输入python看看是否安装python3 3、安装python2&#xff0c;自定义安装目录&am…

使用NoSQLUnit测试Spring Data MongoDB应用程序

Spring Data MongoDB是Spring Data项目中的项目&#xff0c;它提供了Spring编程模型的扩展&#xff0c;用于编写使用MongoDB作为数据库的应用程序。 要使用NoSQLUnit为Spring Data MongoDB应用程序编写测试&#xff0c;除了考虑Spring Data MongoDB使用一个名为_class的特殊属…

20170117小测

今天再次迎来了我们的例行考试。 T1&#xff1a; 首先我们考虑那些点是可以共存的&#xff0c;我们可以枚举一个质数做他们的gcd&#xff0c;然后把这些点放在一张图里求直径。所以我们要做的就是把这些点的值分解质因数&#xff0c;对每个质因数挂一个链&#xff0c;代表有那些…

java实现红包要多少钱_java实现红包的分配算法

个人推测&#xff0c;微信红包在发出的时候已经分配好金额。比如一个10元的红包发给甲乙丙三个人&#xff0c;其实在红包发出去的时候&#xff0c;已经确定了第一个会领取多少&#xff0c;第二个会领取多少金额。而不是在领取的时候才计算的。下面贴出实现方法&#xff1a;publ…

iOS中Safari浏览器select下拉列表文字太长被截断的处理方法

网页中的select下拉列表&#xff0c;文字太长的话在iOS的Safari浏览器里会被自动截断&#xff0c;显示成下面这种&#xff1a; 安卓版的浏览器则没有这个问题。 如何让下拉列表中的文字在iOS的Safari浏览器里显示完整呢&#xff1f;答案是使用<optgroup></optgroup>…