type
status
date
slug
summary
tags
category
icon
password
前言
Liquid是由Shopify创建并使用Ruby编写的模板语言。 它现在作为一个开源项目可以在GitHub上获得,并被许多不同的软件项目和公司使用。 Liquid是所有Shopify主题的支柱,用于在在线商店页面加载动态内容。
基础
Liquid使用标签、对象和过滤器的组合来加载动态内容。 它们在Liquid模板文件中使用,这些文件构成了一个主题。
- 标签
标签用来控制模板的逻辑,如条件语句、循环语句、赋值语句等;除了这些基本的逻辑处理语句,Liquid还定义了一些主题标签,如注释标签、Liquid标签、表单标签、layout标签、paginate标签、raw标签、render标签、section标签、style标签等。如:
- 对象
对象也叫做变量,包含用于在页面上显示动态内容的属性。包括全局对象、内容对象、其他变量。输出一个对象的属性:
- 过滤器
Liquid过滤器用于修改数字、字符串、对象和变量的输出。 它们被放置在输出标记 {{}} 或者 echo 语句中,并由管道字符 | 表示。如:
运算符
Liquid是没有算数运算符的,只能通过过滤器进行运算;Liquid只有比较运算符和逻辑运算符,还有一个“包含”运算符。
运算符 | 说明 |
== | 等于 |
!= | 不等 |
> | 大于 |
< | 小于 |
>= | 大于等于 |
<= | 小于等于 |
or | 逻辑或 |
and | 逻辑与 |
contains | 包含。检查字符串中是否存在子字符串;或者检查字符串数组是否存在字符串;注意,contains 只能用于检查字符串。 |
“contains”使用示例
逻辑运算符示例:
注意:比较运算符只能进行两两比较,以下示例会报错:
在js里面,会运算“2 > 1”,返回“true”,再比较“true == true”,运算结果为“true”,但在Liquid里,会报错。
运算符优先级
比较运算符, 包含运算符 > 逻辑运算符
有两个需要注意的地方:
1. Liquid运算符不包含圆括号,使用圆括号进行运算会报错;
2. Liquid逻辑运算符 and 和 or 具有相同优先级的,且结合性是从右向左。
数据类型
Liquid有六种数据类型。
1. 字符串 String
使用单引号或双引号包裹。
2. 数值 Number
数值包含整数和小数。
3. 布尔值 Boolean
布尔值包含 true 和 false。
4. 无 Nil
nil是一个特殊的空值,是Liquid代码没有值返回时的值。
打印nil值到页面上,不会展示任何内容。
5. 数组 Array
数组是可以用来保存任何变量类型的列表。
使用循环访问数组中的所有项。
使用中括号访问数组中特定下标的项(下标从0开始)。
在Liquid中创建数组只有一种方式:使用split过滤器将一个字符串分解为字符串数组。
6. 空降 EmptyDrop
通过 handle 访问一个已被删除的对象(例如 page 或 post)时会返回 EmptyDrop 对象。
例如,以下的page_1, page_2, page_3都是 EmptyDrop 对象:
检查对象是否为空:
注意:经测试,blank 和 empty 都可检查字符串或对象是否为空,但官网使用 blank 来检查字符串是否为空;使用 empty 检查对象是否为空,也没说两者可以混用,为了保险起见,还是按照官网的示例来使用。
真值和假值(truthy 和falsy)
除了 nil 和 false 为假值,其他值都为真值,包括 0、空字符串、EmptyDrop对象。
去除标签空白符
{{ }} 和 {% %} 标签即使不输出任何内容,但仍然会在html中渲染一个空行;如果需要删除这些空行,可以在标签中包含连字符,如:{{-, -}}, {%-, -%}。
- 作者:HRope
- 链接:https://hrope.cn/article/liquid-getting-started-basics
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。