Template Filters
Pagelove's Liquid engine provides the standard Shopify Liquid filters, a set of Jekyll-compatible filters, and Pagelove-specific extensions for hashing, random generation, date arithmetic, data conversion, and querying arrays. Every filter is available inside any element with pagelove:template="text/liquid".
Filters are documented by category. Each page describes its filters with an example for every one; filters marked extension are Pagelove or Jekyll/LiquidJS additions beyond the standard Shopify Liquid set.
Filters by category
String — text manipulation: case, trimming, escaping, replacing, slugs
append · array_to_sentence_string · capitalize · cgi_escape · default · downcase · escape · escape_once · lstrip · newline_to_br · normalize_whitespace · number_of_words · prepend · remove · remove_first · remove_last · replace · replace_first · replace_last · rstrip · size · slice · slugify · split · strip · strip_html · strip_newlines · truncate · truncatewords · upcase · uri_escape · url_decode · url_encode · xml_escape
Number — arithmetic and rounding
abs · at_least · at_most · ceil · divided_by · floor · minus · modulo · plus · round · times · to_integer
Array — ordering, mapping, and querying lists
compact · concat · find · find_index · first · group_by · has · join · last · map · pop · push · reject · reverse · shift · sort · sort_natural · sum · uniq · unshift · where
Date and time — formatting and arithmetic on dates
date · date_add · date_to_long_string · date_to_rfc822 · date_to_string · date_to_xmlschema · unix_to_iso
Hashing and security — cryptographic digests and password hashes
Random generation — random strings and passphrases
Data and JSON — serialise values
Expression-variant array — query arrays with a full expression
find_exp · find_index_exp · group_by_exp · has_exp · reject_exp · where_exp
When a filter errors
If a filter raises an error on a particular value — for example, date given an unparseable string, or a hashing filter given an out-of-range parameter — only that one {{ … }} output expression is affected. The expression renders an inline error marker (an https://pagelove.org/Error Microdata element) and the rest of the page composes normally; a single bad value never blanks the whole page. In an attribute value (e.g. href="{{ … }}"), where markup can't go, the expression renders empty instead.
<!-- One bad value degrades locally; the rest of the page is unaffected -->
<p>Published {{ article.date | date: "%B %d, %Y" }}</p>
<p>{{ article.title }}</p>
This applies to value-output expressions. An error in a control-flow tag's expression (the condition of an {% if %}/{% unless %}, or a {% for %} range) is not degraded — there is no safe partial meaning for a failed condition or loop, so it surfaces as a composition error.
See also
- Templating — enabling and using server-side templates
- Resource Binding — bind site-wide queries to the variables these filters operate on
- Shopify Liquid filter reference — the upstream standard filters