Liquid Filters
所有标准的 Liquid 过滤器 都受支持(请参见下文)。
为了简化常见任务,Jekyll 甚至添加了一些实用的过滤器,所有这些过滤器你可以在本页面找到。你还可以使用 插件 创建自己的过滤器。
描述 | 过滤器(Filter) 和 输出(Output) |
---|---|
相对 URL 在输入路径前添加 |
|
绝对 URL 在输入路径前添加 |
|
日期转为 XML Schema 格式 将一个日期转换为 XML Schema(ISO 8601)格式。 |
|
日期转为 RFC-822 格式 将一个日期转换为 RSS 订阅中使用的 RFC-822 格式。 |
|
日期转为简短字符串 将日期转换为简短格式。 |
|
日期转为美式序数简短格式 将日期格式化为序数形式的美国简短格式。 3.8.0 |
|
日期转为长字符串 将日期格式化为长格式。 |
|
日期转为英式序数长格式 将日期格式化为序数形式的英国长格式。 3.8.0 |
|
条件筛选(where) 从数组中选出所有某个键具有指定值的对象。 |
|
表达式筛选(Where Expression) 从数组中选出所有使表达式成立的对象。 3.2.0 |
|
查找(Find) 返回数组中第一个其属性值与给定值匹配的对象, 若无匹配项则返回 |
|
表达式查找(Find Expression) 返回数组中第一个使给定表达式成立的对象, 若无匹配项则返回 |
|
分组(Group By) 按给定属性对数组中的项目进行分组。 |
|
表达式分组(Group By Expression) 使用 Liquid 表达式对数组中的项目进行分组。 3.4.0 |
|
XML 转义(XML Escape) 对文本进行转义以用于 XML。 |
|
CGI 转义(CGI Escape) 对字符串进行 CGI 转义以用于 URL。将任何特殊字符替换为相应的 |
|
URI 转义(URI Escape) 对 URI 中的特殊字符进行百分号编码。 通常会将空格替换为 |
|
单词计数(Number of Words) 统计文本中的单词数量。 |
|
数组转语句(Array to Sentence) 将数组转换为语句形式,适用于列出标签。 可选参数用于指定连接词。 |
|
Markdown 转 HTML(Markdownify) 将 Markdown 格式的字符串转换为 HTML。 |
|
智能引号(Smartify) 将 "直角引号" 转换为 “智能引号”。 |
|
Sass/SCSS 转换(Converting Sass/SCSS) 将 Sass 或 SCSS 格式的字符串转换为 CSS。 |
|
Slug 化(Slugify) 将字符串转换为小写的 URL “slug”。见下方选项说明。 |
|
数据转 JSON(Data To JSON) 将 Hash 或数组转换为 JSON 格式。 |
|
空白规范化(Normalize Whitespace) 将所有空白字符替换为单个空格。 |
|
排序(Sort) 对数组进行排序。对哈希排序时可选两个参数: 1. 属性名称 2. 空值位置(first 或 last)。 |
|
随机取样(Sample) 从数组中随机选择一个值,或可选选择多个值。 |
|
转为整数(To Integer) 将字符串或布尔值转换为整数。 |
|
数组操作(Array Filters) 对数组执行 push、pop、shift 和 unshift 操作。 这些操作是非破坏性的,即不会修改原数组, 而是复制数组并对副本进行操作。 |
|
查看(Inspect) 将对象转换为字符串表示,便于调试。 |
|
slugify
过滤器的选项
slugify
过滤器接受一个选项,每个选项指定要过滤的内容。默认选项为 default
,它们如下(及其过滤的内容):
-
none
: 不过滤任何字符 -
raw
: 过滤空格 -
default
: 过滤空格和非字母数字字符 -
pretty
: 过滤空格和非字母数字字符,但保留._~!$&'()+,;=@
-
ascii
: 过滤空格、非字母数字字符和非 ASCII 字符 -
latin
: 类似于default
,但首先会将拉丁字符进行音译(例如,将àèïòü
转换为aeiou
)3.7.0 。
使用 where
过滤器检测 nil
值4.0
你可以使用 where
过滤器来检测属性为 nil
或 ""
的文档和页面。例如,
// 使用 `nil` 来选择那些没有定义 `my_prop`
// 或者 `my_prop` 已经明确设置为 `nil` 的帖子。
{% assign filtered_posts = site.posts | where: 'my_prop', nil %}
// 使用 Liquid 的特殊字面量 `empty` 或 `blank` 来选择
// `my_prop` 被设置为空值的帖子。
{% assign filtered_posts = site.posts | where: 'my_prop', empty %}
where_exp
过滤器中的二元运算符4.0
你可以在传递给 where_exp
过滤器的表达式中使用 Liquid 的二元运算符 or
和 and
,以在操作中使用多个条件。
例如,要获取英文恐怖片的文档列表,可以使用以下代码:
{{ site.movies | where_exp: "item", "item.genre == 'horror' and item.language == 'English'" }}
或者,要获取基于漫画书的电影列表,可以使用以下代码:
{{ site.movies | where_exp: "item", "item.sub_genre == 'MCU' or item.sub_genre == 'DCEU'" }}
标准 Liquid 过滤器
为了方便你使用,这里列出了所有的 Liquid 过滤器,并提供了指向按照官方 Liquid 文档翻译后的示例链接。