Liquid 过滤器篇

Author Avatar
lsbbd 8月 27, 2016
  • 在其它设备中阅读本文章
## 数学运算 ### plus 加法。 undefined undefined undefined undefined undefined undefined ### minus 减法。 undefined undefined undefined undefined undefined undefined ### times 乘法。 undefined undefined undefined undefined undefined undefined ### divided_by 除法 如果除数是整数,得出的结果是最接近真实结果的整数 (也就是所谓的 [地板除]())。 undefined undefined undefined undefined ### floor 将数字计算最接近的整数。在应用该过滤器前,Liquid 会自动输入转换为数字。 undefined undefined undefined undefined undefined undefined 下例中的输入是一个字符串: undefined undefined **控制舍入** `divided_by` 计算出的结果的数据类型与除数一样 -- 也就是说,如果除数是整数,得出的结果也将会是整数。而如果除数是一个浮点数 (含有小数点的数),那么得出的结果也会是浮点数。 举例来说,下个例子中的除数是一个整数: undefined undefined 再来看看浮点数的情况: undefined undefined **变量的数据类型转换** 你可能会想使用一个变量来作为除数,在这种情况下你不能简单的在变量名之后加上 `.0` 来使它转换为浮点型。要解决这个问题,你可以使用 `times` 过滤器来实现以上转换。 在下例中,我们使用了一个整型变量来作为除数,所以得到的结果也是一个整数: undefined undefined 这里,我们将变量乘以 `1.0` 来得到一个浮点数,然后将得到的浮点数作为除数: undefined undefined ### abs 求绝对值。 undefined undefined undefined undefined `abs` 对只包含数字的字符串也起作用 undefined undefined ### modulo 求余数。 undefined undefined undefined undefined undefined undefined ## 字符串处理 ## append 将两个字符串合并为 1 个并返回合并之后的字符串。 undefined undefined `append` 也能用于变量: undefined undefined ## capitalize 将字符串的首字母转换为大写字母。 undefined undefined `capitalize` 只将字符串的首字母转换为大写,所以不会影响剩下的单词。 undefined undefined ## ceil 将输入转换为最接近的整数。在应用过滤器之前 Liquid 会自动将输入转换为数字。 undefined undefined undefined undefined undefined undefined 这个实例中的的输入是一个字符串: undefined undefined ## date 将时间戳转换为其他的时间格式。这种语法格式与 [strftime]()。 undefined undefined undefined undefined `date` 也可以作用于包含格式正确的日期的字符串。 undefined undefined ## default 允许你在变量值不存在时指定默认值。`default` 在值为 `nil`,`false` 或者空值时不会显示。 undefined undefined 在下例中,`product_price` 已有值,所以没有使用默认值。 undefined undefined 下例中,`product_price` 为空,所以使用默认值。 undefined undefined ## downcase 将字符串中所有的字母都转换为小写。对已经是小写的字符串没有影响。 undefined undefined undefined undefined ## escape 将字符串中的需可转义的字符转换成转义序列 (比如作用于 URL)。对不包含可转义字符的字符串无影响。 undefined undefined undefined undefined ## escape_once 转义一个字符串,但不会处理其中已经转移的字符。对不包含可转义字符的字符串无影响。 undefined undefined undefined undefined ## first 返回数组中的第一个元素 undefined undefined undefined undefined ## join 将数组中的元素组合成一个字符串,并将参数作为分割器。 undefined undefined ## last 返回数组中最后一个元素 undefined undefined undefined undefined ## lstrip 移除字符串中所有的空白 (制表符,空格,换行符)。不影响单词之间的空格。 undefined undefined ## map 通过提取其他对象中的已命名的属性值来创建一个数组。 在下例中,假设 `site.pages` 对象包含了网站的所有元数据。使用 `assign` 和 `map` 过滤器创建了一个包含了 `site.pages` 所有包含了 `categorie` 属性文件的属性值。 undefined undefined ## newline_to_br 将每一个的换行符 (\n) 转换为 HTML 的换行标签 (`
`)。 undefined undefined ## prepend 在字符串开头添加指定的字符串。 undefined undefined 你也可以 `prepend` 变量: undefined undefined ## remove 移除字符串中所有的指定的子串。 undefined undefined ## remove_first 只移除字符串中的第一个给定的子串。 undefined undefined ## replace 将字符串中匹配的子串替换为第二个参数。 undefined undefined ## replace_first 只将字符串中第一个匹配的子串替换为第二个参数。 undefined undefined ## reverse 将数组中的元素逆序,`reverse` 不能用于字符串。 undefined undefined 虽然 `reverse` 不能直接作用于字符串,但你可以将字符串分割成字符数组,然后对数组使用 `reverse`,可以将多个过滤器联合使用。 undefined undefined ## round 将输入中的数字四舍五入到最接近的整数,或者如果有个数字参数的话,将保留对应的小数位。 undefined undefined undefined undefined undefined undefined ## rstrip 从字符串右侧移除所有的空白 (制表符,空格,换行符)。 undefined undefined ## size 返回字符串中字符数量或者数组中元素个数。`size` 也可使用点号风格 (例如:`{{ my_string.size }}`)。允许你在条件语句中使用。 undefined undefined undefined undefined 使用点号风格: undefined ## slice 返回一个距离字符串首字符 n 的字符 (n 为传入的参数)。具有可选的第二参数,指定返回子串的长度。 undefined undefined undefined undefined undefined undefined 如果第一参数是一个负数,将会从字符串末尾开始计数: undefined undefined ## sort 按照数组中的指定属性将数组排序。排序后的数组区分大小写。 undefined undefined ## split 将输入的字符串分割成字符串数组,使用参数作为分割器。`split` 经常用于将逗号分隔的字符串转换为字符串数组。 undefined undefined ## strip 将字符串左右的左右的空白 (制表符,空格,换行符) 都移除。不影响单词间的空格。 undefined undefined ## strip_html 移除字符串中的所有的 HTML 标签。 undefined undefined ## strip_newlines 移除字符串中所有的换行符。 undefined undefined ## truncate 将字符串缩减到指定的字符数,若果指定的字符数少于元字符串的长度,将会在字符串末尾添加省略号 (...)。 undefined undefined ### 自定义省略字符 `truncate` 提供了一个可选的第二参数,用来指定省略字符。默认是省略符号 (...)。 注意第二参数的长度会跟第一参数产生冲突。比如,你想将字符串的缩减到 10 个字符,并且使用 3 个字符长度的省略字符,那么第一参数就得设为 13。 undefined undefined ### 不使用省略字符 你可以让 `truncate` 不输出省略字符,方法是使用空字符串作为第二参数。 undefined undefined ## truncatewords 将字符串的缩减到指定的单词数。如果指定的单词数少于字符串中单词数,将会在末尾添加省略符号 (...)。 undefined undefined ### 自定义省略字符 `truncatewords` 提供了一个可选的第二参数,用来指定省略字符。默认是省略符号 (...)。 undefined undefined #### 不使用省略字符 你可以让 `truncatewords` 不输出省略字符,方法是使用空字符串作为第二参数。 undefined undefined ## uniq 移除数组中相同的元素。 undefined undefined ## upcase 将字符串中所有的字母转换成大写。已将是大写字母的不会受影响。 undefined undefined undefined undefined ## url_encode 将字符串中不安全的 URL 字符转换成百分号编码字符。 undefined undefined undefined undefined