Liquid 是一门开源的模板语言,由 Shopify 创造并用 Ruby 实现。它是 Shopify 主题的骨骼,并且被用于加载店铺系统的动态内容。
Liquid 是一门开源的模板语言,由 Shopify 创造并用 Ruby 实现。它是 Shopify 主题的骨骼,并且被用于加载店铺系统的动态内容。从 2006 年起,Liquid 就被 Shopify 所使用,现在更是被大量 web 应用所使用。
Liquid 代码可分为 对象(object)、标记(tag) 和 过滤器(filter)。
对象(object)
对象告诉 Liquid 在页面的哪个位置展示内容。对象和变量名由双花括号标识:{{ 和 }}。
标记(tag)
标记(tag) 创造了模板的逻辑和控制流。他们由单括号加百分号标识:{% 和 %}。
标记(tag)并不产生任何可见的文本输出。这意味着你可以用他们为变量赋值、创建条件和循环逻辑,并且不在页面上显示出任何 Liquid 逻辑代码。
过滤器(filter)
过滤器 改变 Liquid 对象的输出。他们被用在输出上,通过一个 | 符号分隔。
编程时,在条件判断中任何返回 true 的都被叫做 真值(truthy)。任何返回 false 的都被叫做 假值(falsy)。所有的对象(object)类型都可以被描述为真值(truthy)或假值(falsy)。
Liquid 的各种分支
Liquid 是一门灵活、安全的模版语言,被用于许多不同环境中。Liquid 被创建之初是用在 Shopify 商店系统中的,后来也被广泛用于 Jekyll 网站中。随着时间的推移,Shopify 和 Jekyll 分别为 Liquid 添加了针对各自用途的对象(object)、标记(tag)和过滤器(filter)。目前最流行的 Liquid 版本包括 Liquid、Shopify Liquid 和 Jekyll Liquid。
Shopify
Shopify 一直采用的都是最新版本的 Liquid,并且 Shopify 会针对 merchants’ store 为 Liquid 添加大量的对象(object)、标记(tag)和过滤器。这些新增的内容包括代表商店(store)、产品(product)和顾客信息的对象,以及用于展示商店数据和操作产品照片的过滤器。
Shopify 版本的 Liquid 所对应的文档在 Shopify Help Center。如果你希望尝试 Shopify 版本的 Liquid,你可以试用 Shopify 或者使用类似 DropPen 的工具。
Jekyll
Jekyll 是一个静态网站生成器,一个用于将模版和内容合并到一起从而创建网站的命令行工具。ekyll 将 Liquid 作为自身的模版语言,并且添加了许多对象(object)、标记(tag)和过滤器(filter)。这些新增内容包括代表内容页面的对象、用于在页面中引入内容片段的标记(tag),以及用于操作字符串和 URL 的过滤器。
Jekyll 还是 GitHub Pages 的底层引擎。GitHub Pages 是一项网站托管服务,允许你将 Jekyll 网站推送到 GitHub 仓库,最终得到一个发布到公网的站点。本网站就是由 GitHub Pages 托管的。
Jekyll 可能使用的不是最新版本的 Liquid。也就意味着本文档所列出的标记(tag)和过滤器不能在 Jekyll 中使用。通常 Jekyll 项目使用的是稳定版的 Liquid,而不使用 beta 或 release candidate 版本。通过 Jekyll 的 gem 信息也 可查看 Jekyll 所依赖的所有 gem 包,从而可以了解 Jekyll 所使用的 Liquid 版本。
Jekyll 版本的 Liquid 的文档在 Templates section of Jekyll’s documentation。如果你希望尝试 Jekyll 版本的 Liquid,你可以克隆 Jekyll 项目或者安装 Jekyll 的 gem 包,然后在静态网站中测试 Liquid。