`
qw232144
  • 浏览: 35291 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

Haml语言的用法

 
阅读更多

Haml不同于emmet,它是一个命令行工具。需要先安装Ruby语言,再安装Haml。

 

gem install haml

 

使用时,用命令行将haml文件一次性转为html文件。

 

haml input.haml output.html

 

haml的简化规则如下

 

  1. !!! 5 代表 <!DOCTYPE html>
  2. %E 代表HTML标签。
  3. %E#id 代表id属性。
  4. %E.class 代表class属性。
  5. %E(attr="xxx") 代表某一个特定属性。
  6. %E XXX 代表插入标签的内容。
  7. %E %N 代表N是E的子元素。N如果写在第二行,需要缩进。

 

下面是Haml的代码示例,代码块的层级关系用缩进表示。

 

!!! 5
  %html{lang: 'en'}
    %head
      %title Haml Demo
    %body
      %h1 Hello World
      %a{:href=>'http://wikipedia.org', :title=>"Wikipedia"} 维基百科

 

 

 

对应的HTML代码为:

 

<!DOCTYPE html>
  <html lang='en'>
    <head>
      <title>Haml Demo</title>
    </head>
    <body>
      <h1>Hello World</h1>
      <a href='http://wikipedia.org' title='Wikipedia'>维基百科</a>
    </body>
  </html>
  

 

 
 注:在Haml中,"/ "起首的行表示HTML注释,"-# "起首的行表示Haml注释。

 

 

 

分享到:
评论

相关推荐

    haml:HTML抽象标记语言-标记Haiku

    基本用法Haml可以从命令行使用,也可以作为Ruby Web框架的一部分使用。 第一步是安装gem: gem install haml 写了一些Haml之后,您可以运行haml document.haml 将其编译为HTML。 有关这些命令的更多信息,请查看haml...

    haml-rs:Haml模板语言的纯Rust实现

    用法 要将haml-rs包含在您的项目中,请在Cargo.toml中添加以下内容: [dependencies] hamlrs = "0.4.2" 然后将以下内容添加到您的代码中: extern crate haml; 例子 图书馆 extern crate haml; fn main () { let ...

    HAML.jl:JuliaHTML抽象标记语言。 受Ruby的HAML启发

    建立状态测试范围概要在Julia中使用HAML的最简单方法是haml""宏的形式。 只需内联编写HAML代码,它将扩展为字符串: julia &gt; using HAMLjulia &gt; link = " https://youtu.be/dQw4w9WgXcQ "julia &gt; haml """ %...

    faml:更快地实现Haml模板语言

    法姆 Haml模板语言的更快实现。安装将此行添加到您的应用程序的Gemfile中: gem 'faml' 然后执行: $ bundle或将其自己安装为: $ gem install faml用法您可以通过Faml::Engine.options设置几个选项。 # Render in ...

    hamlet-compiler:Haml 的形式化语法

    在使用hamlet-compiler时,开发者首先需要安装这个库,然后就可以开始编写Haml模板。Haml的语法结构清晰,如 `%tagname` 用于定义HTML标签,`#id` 和 `.class` 分别用于指定ID和类名,`= expression` 用于插入表达式...

    haml-i18n-extractor:从haml自动将字符串提取到语言环境文件

    用法 您可以使用此库中包含交互(提示)和非交互模式的二进制文件。 您也应该能够直接将代码用作lib。 例子 每个文件。 您可以直接在代码中使用lib,例如: begin @ex1 = Haml::I18n::Extractor.new(haml_path) @...

    MtHamlPHP:PHP 的多目标 HAML - IDE 编译器(运行时间减少)

    多目标 HAML - IDE 编译器(减少运行时间) MtHaml 是的 PHP 实现,可以针对多种语言。 这是基于 MtHaml 和 MtHaml-more(如果需要,支持两个运行时)的 fork 这个 fork 的主要目标 - 在 IDE 中实现将 haml 文件编译...

    hamdown:[WIP]面向Haml和Markdown粉丝的下一代模板语言

    例如,如果您想使用诸如或类的库向某些元素添加一些自定义样式,则没有简便的方法可以做到这一点。 编写这样的东西将是很棒的: # Main Title %h2.f2.helvetica.strike Fancy title ** with some bold ** Some...

    libJSHOL:Javascript HTML 对象语言

    虽然我认为 HAML 是防止我再次使用 HTML 的一个很好的步骤,但我认为它不足以利用现有的技术和替代方法。 我也不认为 HAML 足够容易访问,因为他们的 DSL 是由 Ruby 解析的,其他的很少。 通过让 JSHOL 成为 JSON ...

    sinatra-template-源码.rar

    2. Haml:Haml是一种简洁、结构化的HTML模板语言,可以与Sinatra结合使用。通过`haml`助手函数渲染Haml模板。 3. Slim:Slim是另一种高效的HTML模板引擎,其语法简洁,注重效率。在Sinatra中,我们可以配置使用Slim...

    mananajs:明天的模板语言

    它影响了Python,Javascript,HAML,YAML和Jade模板语言。 Mañana使用略微修改的Jison版本来生成其解析器。 通过允许词法分析器一次返回一组标记而不是一次返回一个标记,在Jison中添加了几行以允许使用Python...

    应用Rails进行敏捷Web开发(第2版)

    5. **视图和模板**:Rails使用ERB(Embedded Ruby)或Haml等模板语言来生成HTML。书中会讲解如何创建视图,使用部分视图,以及如何应用布局和辅助方法。 6. **测试驱动开发(TDD)**:Rails支持集成测试、单元测试和...

    Ruby on Rails: Up and Running

    7. **erb和haml模板**:Rails使用erb(Embedded Ruby)作为默认的视图模板引擎,也可以选择haml,这是一种更简洁的HTML模板语言。理解这两种模板引擎的工作原理,可以有效地编写视图代码。 8. **测试驱动开发(TDD)*...

    shakeit.so

    结合这两个信息,我们可能假设“shakeit.so”可能与一个使用Haml的Web应用有关,可能是一个用于处理特定请求的后端组件,或者是一个与用户界面交互的库。例如,它可能包含了图像抖动算法,用于图片处理,而Haml则是...

    Addison-Wesley - The Rails Way (Nov 2007)

    6. **视图和模板**:介绍如何使用erb、haml等模板语言创建动态页面,以及局部变量、辅助方法和布局的应用。 7. **测试驱动开发**:强调Rails对测试的重视,包括单元测试、集成测试和功能测试的编写。 8. **Ajax和...

    2021-2022年收藏的精品资料软件工程师快速编写HTML和CSS的工具集合.docx

    HAML,全称HTML Abstraction Markup Language,是由Hampton Catlin创建的一种模板语言,其语法简洁且类似CSS。HAML摒弃了传统HTML的繁琐标签,用更直观的方式表示HTML结构。如上所述,一段简单的HAML代码: ``` #...

    应用rails进行敏捷Web开发·第三版

    9. **辅助方法与局部变量**:在视图中,辅助方法和局部变量可以增强代码的可读性和复用性。 10. **Ajax与JavaScript**:Rails内置了Prototype JavaScript库,也支持jQuery等其他库,方便实现异步更新和页面交互。 ...

    Rails.Recipes.Rails.3rd和源码

    4. **视图**:涵盖模板语言ERB和Haml的使用,以及如何利用辅助方法和布局来美化界面。 5. **模型**:讨论ActiveRecord的查询接口,关联关系,以及如何进行数据验证。 6. **测试**:讲解RSpec和Cucumber等测试工具的...

    ruby-language-quickref.zip_About Language

    4. **方法定义**:Ruby提供了多种定义方法的方式,如`def`关键字,或者使用`define_method`动态定义。 5. **模块**:Ruby的模块(Module)用于封装命名空间,实现类的多重继承,并提供混合(mixin)功能。 6. **元...

    在create-react-app中使用sass的方法示例

    最开始的语法叫做“缩进语法”,与Haml类似,使用缩进来区分代码块,并且用回车将不同规则分隔开。而较新的语法叫做“SCSS”,使用和CSS一样的块语法,即使用大括号将不同的规则分开,使用分号将具体的样式分开。...

Global site tag (gtag.js) - Google Analytics