Liquid
● Differs from Ruby Jekyll — modified
Undefined filters and tags are build errors; undefined variables render as empty. sassify, find, and find_exp are missing. Jigyll adds Shopify-style money filters (money, money_with_currency, …) that Jekyll doesn't have.
Jigyll uses the Liquid templating language to process templates, just like Jekyll. All of the standard Liquid tags and filters are supported.
Error handling
Differs from Jekyll. Liquid error behavior is fixed (Jekyll's
liquid:config options have no effect):
- An undefined filter or unknown tag is a build error.
- An undefined variable renders as empty, silently.
Jekyll filters
Jigyll implements Jekyll's filters, including:
| URLs | relative_url, absolute_url |
| Dates | date_to_string, date_to_long_string, date_to_rfc822, date_to_xmlschema |
| Selection | where, where_exp, group_by, group_by_exp, sort, uniq, sample |
| Escaping | xml_escape, cgi_escape, uri_escape |
| Text | markdownify, smartify, slugify, normalize_whitespace, number_of_words, array_to_sentence_string, to_integer |
| Data | jsonify, inspect |
| Sass | scssify |
See the Jekyll filter reference for what each does.
Differs from Jekyll. Not supported:
sassify— a warning is printed and the input passes through unchanged.scssifyworks.findandfind_exp— usewhere/where_expand takefirst.wherewithnil/empty—wherecompares stringified values only; Jekyll 4's nil/empty detection is not implemented.slugifymodesascii,latin, andnone—default,raw, andprettywork.
Jekyll tags
The Jekyll tags are all available:
include/include_relative— with parameters ({% include note.html content="..." %}), theme includes, and include-loop detection.highlight— chroma-based syntax highlighting with Rouge-compatible CSS classes; the optionallinenosargument works:{% highlight ruby linenos %} ... {% endhighlight %}link/post_url— resolve a source path to its permalink, with build-time validation (a missing target fails the build, as in Jekyll).rawand all standard control-flow tags.
Differs from Jekyll.
linkandpost_urltake a literal path only — Jekyll 4.5's variable interpolation ({% post_url {{ post.slug }} %}) is not supported.
Money filters
Jigyll-only. These Shopify-style filters have no Ruby Jekyll counterpart.
Prices are stored as an integer number of cents, following the Shopify
convention — 1000 means $10.00:
{{ 1000 | money }} → $10.00
{{ 1000 | money_with_currency }} → $10.00 USD
{{ 1000 | money_without_currency }} → 10.00
{{ 1000 | money_without_trailing_zeros }} → $10
{{ 1099 | money_without_trailing_zeros }} → $10.99
{{ 123456 | money }} → $1,234.56
Floats and numeric strings are accepted and rounded to the nearest cent;
non-numeric input renders as empty. Configure the currency in _config.yml:
currency: USD # code shown by money_with_currency (default: USD)
currency_symbol: "$" # symbol prefix (default: $)