Haml 模板引擎使用技巧

梦里花落 2020-06-13 ⋅ 15 阅读

Haml 是一种基于缩进的模板引擎,主要用于编写 HTML。相比于传统的 HTML,Haml 提供了一种简洁、优雅的语法,让开发者可以更快速地编写模板。

1. 安装和配置

首先,你需要安装 Haml。可以通过以下命令使用 gem 安装:

gem install haml

当安装完成后,你需要将 Haml 配置到你的应用程序中。具体的配置方法取决于你使用的框架或工具。例如,如果你使用的是 Rails,你可以在 Gemfile 文件中添加以下内容:

gem 'haml-rails'

然后执行 bundle install 安装依赖。

2. 基本语法

2.1 标签和类

在 Haml 中,你可以使用缩进来表示标签的嵌套关系。例如:

%div
  %h1 Hello, World

上面的代码片段会被转换为以下 HTML:

<div>
  <h1>Hello, World</h1>
</div>

Haml 还支持使用 . 进行类选择器的添加。例如:

%div.container
  %h1.title Welcome

上面的代码片段会被转换为以下 HTML:

<div class="container">
  <h1 class="title">Welcome</h1>
</div>

2.2 属性

Haml 使用 [] 来表示标签的属性。例如:

%a[href="https://example.com"][target="_blank"] Visit Example

上面的代码片段会被转换为以下 HTML:

<a href="https://example.com" target="_blank">Visit Example</a>

2.3 文本

你可以使用 | 来表示标签中的纯文本内容。例如:

%p
  | This is a paragraph.
  | It has multiple lines.

上面的代码片段会被转换为以下 HTML:

<p>
  This is a paragraph.
  It has multiple lines.
</p>

2.4 注释

Haml 使用 -# 进行注释。例如:

.container
  %h1.title Welcome
  -# This is a comment

上面的代码片段会生成以下 HTML:

<div class="container">
  <h1 class="title">Welcome</h1>
</div>

3. 高级技巧

3.1 嵌入 Ruby 代码

Haml 允许你在模板中嵌入 Ruby 代码。你可以使用 -= 进行区分。

使用 - 可以嵌入任意的 Ruby 代码块,而不会有返回值。例如:

- if condition
  %p Condition is true
- else
  %p Condition is false

使用 = 可以嵌入具有返回值的 Ruby 代码,并将其结果插入到模板中。例如:

%p= Time.now

3.2 使用局部变量

Haml 支持使用局部变量。你可以在模板中定义局部变量,并在需要的地方进行使用。例如:

- name = "John"
%p Hello, #{name}!

上面的代码片段会生成以下 HTML:

<p>Hello, John!</p>

3.3 继承和布局

Haml 支持模板的继承和布局。你可以在一个模板中定义布局,并在其他模板中继承该布局。例如:

layout.haml

%html
  %head
    %title My Website
  %body
    = yield

index.haml

-# 继承 layout.haml
- content_for :title do
  My Homepage
%p Welcome to my homepage!

上面的代码片段会生成以下 HTML:

<html>
  <head>
    <title>My Website</title>
  </head>
  <body>
    <p>Welcome to my homepage!</p>
  </body>
</html>

结语

以上介绍了 Haml 的一些基本用法和高级技巧,希望对你使用 Haml 进行模板编写有所帮助。使用 Haml 可以让你的代码更加简洁、优雅,并提高开发效率。如果你对 Haml 感兴趣,建议你进一步学习其更多的特性和用法。


全部评论: 0

    我有话说: