haml入门

简介: 1.什么是HamlHaml是HTML abstraction markup language,遵循的原则是标记应该是美的。

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使用缩进来表示层级关系

目录
相关文章
|
10月前
|
前端开发 JavaScript 搜索推荐
前端小白也能学会的高大上技巧:如何让你的网页支持暗黑模式?
【10月更文挑战第30天】随着现代网页设计的发展,暗黑模式已成为一种流行趋势,提升了用户的阅读体验并增强了网页的适应性。本文介绍了如何通过简单的HTML、CSS和JavaScript实现网页的暗黑模式。首先,定义两种主题的CSS样式;然后,使用JavaScript实现模式切换逻辑,并自动检测系统主题。通过这些步骤,前端小白也能轻松掌握暗黑模式的实现,提升网页的用户体验和个性化水平。
614 4
|
数据采集 机器学习/深度学习 人工智能
算法金 | 一个强大的算法模型,多项式回归!!
```markdown # 多项式回归简述 - 多项式回归是线性回归扩展,用于处理非线性关系。 - 通过添加高次项来拟合复杂模式,但可能引发过拟合。 - 示例中展示了如何用Python创建模拟数据,使用`PolynomialFeatures`生成多项式特征,训练线性回归模型并可视化结果。 - 优点:灵活捕捉非线性关系,易于理解。 - 缺点:易过拟合,计算复杂度高。 - 相关概念:正则化(岭回归、Lasso回归)及其他非线性模型(如支持向量回归)。 - 注意事项:选择合适阶数,避免过拟合,重视数据预处理和模型评估。 ```
285 0
算法金 | 一个强大的算法模型,多项式回归!!
|
机器学习/深度学习 数据采集 算法
Python使用随机森林模型进行电影评分预测
Python使用随机森林模型进行电影评分预测
1829 1
Python使用随机森林模型进行电影评分预测
|
算法 安全 调度
基于蚁群算法的车辆路径规划问题的研究(Matlab代码实现)
基于蚁群算法的车辆路径规划问题的研究(Matlab代码实现)
365 0
|
机器学习/深度学习 人工智能 算法
【机器学习】AI在空战决策中的崛起:从理论到实践的跨越
【机器学习】AI在空战决策中的崛起:从理论到实践的跨越
399 0
|
JavaScript Java 测试技术
基于SpringBoot+Vue+uniapp的毕业设计选题系统的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue+uniapp的毕业设计选题系统的详细设计和实现(源码+lw+部署文档+讲解等)
177 0
|
NoSQL 大数据 数据挖掘
现代数据库技术与大数据应用
随着信息时代的到来,数据量呈指数级增长,对数据库技术提出了前所未有的挑战。本文将介绍现代数据库技术在处理大数据应用中的重要性,并探讨了一些流行的数据库解决方案及其在实际应用中的优势。
|
JSON JavaScript 前端开发
12个强大的 JavaScript 动画库,可帮助你提升用户体验
12个强大的 JavaScript 动画库,可帮助你提升用户体验
449 0
|
关系型数据库 分布式数据库 数据库
沉浸式学习PostgreSQL|PolarDB 10: 社交、刑侦等业务, 关系图谱搜索
业务场景1 介绍: 社交、刑侦等业务, 关系图谱搜索 - 营销、分销、流量变现、分佣、引爆流行、裂变式传播、家谱、选课、社交、人才库、刑侦、农产品溯源、药品溯源 图式搜索是PolarDB | PostgreSQL在(包括流计算、全文检索、图式搜索、K-V存储、图像搜索、指纹搜索、空间数据、时序数据、推荐等)诸多特性中的一个。 采用CTE语法,可以很方便的实现图式搜索(N度搜索、最短路径、点、边属性等)。 其中图式搜索中的:层级深度,是否循环,路径,都是可表述的。
424 0
沉浸式学习PostgreSQL|PolarDB 10: 社交、刑侦等业务, 关系图谱搜索