Shopify专题
Liquid 入门基础
00 分钟
2022-10-6
2023-9-11
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中渲染一个空行;如果需要删除这些空行,可以在标签中包含连字符,如:{{-, -}}, {%-, -%}。