Detalhes do pacote

liquidjs

harttle2.3mMIT10.21.0

A simple, expressive and safe Shopify / Github Pages compatible template engine in pure JavaScript.

liquid, template engine, express, jinja

readme (leia-me)

liquidjs

npm version npm downloads Coverage Build Status DUB license semantic-release

A simple, expressive and safe Shopify / GitHub Pages compatible template engine in pure JavaScript. The purpose of this repo is to provide a standard Liquid implementation for the JavaScript community so that Jekyll sites, GitHub Pages and Shopify templates can be ported to Node.js without pain.

logo

What's it like?

Basically there're two types of Liquid syntax: tags enclosed by {% %} and outputs enclosed by {{ }}. A Liquid template looks like:

{% if username %}
  {{ username | append: ", welcome to LiquidJS!" | capitalize }}
{% endif %}

A live demo is also available and here's a quick tutorial for Liquid syntax.

Installation

Install from npm in Node.js:

npm install liquidjs

Or use the UMD bundle from jsDelivr:

<script src="https://cdn.jsdelivr.net/npm/liquidjs/dist/liquid.browser.min.js"></script>

Or render directly from CLI using npx:

npx liquidjs --template 'Hello, {{ name }}!' --context '{"name": "Snake"}'

For more details, refer to the Setup Guide.

Who's Using LiquidJS?

  • Eleventy: Eleventy, a simpler static site generator.
  • Opensense: The smarter way to send email.
  • Directus: an instant REST+GraphQL API and intuitive no-code data collaboration app for any SQL database.
  • Semgrep: Lightweight static analysis for many languages.
  • Rock: An open source CMS, Relationship Management System (RMS) and Church Management System (ChMS) all rolled into one.
  • Mitosis: Write components once, run everywhere. Compiles to React, Vue, Qwik, Solid, Angular, Svelte, and more.
  • Pattern Lab: a frontend workshop environment that helps you build, view, test, and showcase your design system's UI components.
  • Builder.io: the first and only headless CMS with a visual editor that lets you drag and drop with your components, directly within your current site or app. Completely API-driven, for cleaner code and simpler workflows.
  • Microsoft Power Pages: a secure, enterprise-grade, low-code software as a service (SaaS) platform for creating, hosting, and administering modern external-facing business websites.
  • Azure API Management developer portal: an automatically generated, fully customizable website with the documentation of your APIs.
  • WISMOlabs: Post Purchase Experience platform for eCommerce retailers enhancing customer satisfaction by using LiquidJS to provide customizable post-purchase experiences through programmable email, SMS, order tracking pages, and webhooks.

Feel free to create a PR or contact me to add your use case into this list!

Financial Support

If you personally love LiquidJS or it's benefiting your business, please consider financially support us via GitHub Sponsors. Special thanks to our sponsors!

Opensense Inc.
Opensense
Eleventy
Eleventy
Peter deHaan
Peter deHaan
Touchless
Touchless
Adam Darrah
Dropkiq
Dailycontributors
Dailycontributors
coni2k
Serkan Holat
amit777
amit777
Khaled Salem
Khaled Salem
Sentry
Sentry
Checkout Blocks
Checkout Blocks
Customer IO
Customer IO
Emmanuel Cartelli
Emmanuel Cartelli

Microsoft
Microsoft

PakStyle.pk
PakStyle.pk
Syntax Podcast
Syntax Podcast
Cartelli Emmanuel
Cartelli Emmanuel
## Contributors ✨ Want to contribute? see Contribution Guidelines. Thanks goes to these wonderful people:
Jun Yang
Jun Yang

🚧 💻
chenos
chenos

💻
Zach Leatherman
Zach Leatherman

🐛
Tim Hardy
Tim Hardy

💻
Paul Robert Lloyd
Paul Robert Lloyd

💻 🐛
Alec Larson
Alec Larson

💻
Patrick Malouin
Patrick Malouin

💻 📖
jaswrks
jaswrks

💻
三三
三三

💻 🤔
ssendev
ssendev

💻 📖
wojtask9
wojtask9

💻
Andrew Barclay
Andrew Barclay

💻
Cory Mawhorter
Cory Mawhorter

💻
Mehdi Jaffery
Mehdi Jaffery

💻
Robin Bijlani
Robin Bijlani

💻 🐛
Ryan Kennedy
Ryan Kennedy

💻
Sami Kukkonen
Sami Kukkonen

💻
Scott Santucci
Scott Santucci

💻
Steven
Steven

💡 💻
azu
azu

📖
Joonas
Joonas

💻
Jamel A.
Jamel A.

💻
Brandon Pittman
Brandon Pittman

💻
tgrandgent
tgrandgent

💻
Martin Schuster
Martin Schuster

💻
Ray
Ray

⚠️ 💻
Cristofer Gonzales
Cristofer Gonzales

💻
Raymond Camden
Raymond Camden

📖
Steve Stedman
Steve Stedman

📖
Anthony Ciccarello
Anthony Ciccarello

📖
Bogdan Chadkin
Bogdan Chadkin

💻
Tejas Manohar
Tejas Manohar

💻
Peter deHaan
Peter deHaan

📖
amit777
amit777

💻
Steffen Schuldenzucker
Steffen Schuldenzucker

💻
Pixcell
Pixcell

💻
Jason Etcovitch
Jason Etcovitch

💻
ZC
ZC

📖
Memmie Lenglet
Memmie Lenglet

💻
ilhamdev0
ilhamdev0

📖
一饮一啄皆是人生
一饮一啄皆是人生

📖
Amit Agarwal
Amit Agarwal

📖
Laurin Quast
Laurin Quast

💻
Matt Vague
Matt Vague

💻
Liam Bigelow
Liam Bigelow

💻
Jason Kurian
Jason Kurian

📖
d pham (they/them)
d pham (they/them)

📖
Aleksandr Hovhannisyan
Aleksandr Hovhannisyan

💻
jg-rp
jg-rp

💻
Ameya Apte
Ameya Apte

💻
tbdrz
tbdrz

📖
Santi Albo
Santi Albo

📖 💻
Yahang Wu
Yahang Wu

📖
hongl
hongl

📖
zxx-457
zxx-457

📖
prassie
prassie

📖
Slav Ivanov
Slav Ivanov

💻
Daniel Rosenberg
Daniel Rosenberg

💻
bobgubko
bobgubko

💻
BaNgan
BaNgan

📖
Mahyar Pasarzangene
Mahyar Pasarzangene

📖
Tomáš Hübelbauer
Tomáš Hübelbauer

💻 📖
Jason Garber
Jason Garber

💻
Nick Reilingh
Nick Reilingh

📖
Francisco Soto
Francisco Soto

💻
David LJ
David LJ

📖
Rasmus Wriedt Larsen
Rasmus Wriedt Larsen

📖
Bruno Carvalho
Bruno Carvalho

💻
傅鹏
傅鹏

💻
Joel Hamilton
Joel Hamilton

💻
Max Medve
Max Medve

💻
Cosmin Popovici
Cosmin Popovici

📖
Adam Tanner
Adam Tanner

💻
Guillermo Casal Caro
Guillermo Casal Caro

💻
Josh Soref
Josh Soref

📖
Koen
Koen

💻
Matthieu Bacconnier
Matthieu Bacconnier

📖
Tim van Dam
Tim van Dam

💻

changelog (log de mudanças)

10.21.0 (2025-02-23)

Features

  • add find_index, has, and reject filters (#799) (0deb93e)

10.20.3 (2025-02-09)

Bug Fixes

  • empty tagToken.args since 10.20.0, fixes #796 (38a0f51)

10.20.2 (2025-01-19)

Bug Fixes

10.20.1 (2025-01-04)

Bug Fixes

10.20.0 (2024-12-28)

Features

10.19.1 (2024-12-22)

Bug Fixes

  • add sideEffects=false to package.json (734eb52)
  • inconsistent continue behaviour, fixes #779 (e3ef574)
  • memoryLimit doesn't work in for tag, #776 (2af297f)

10.19.0 (2024-11-17)

Features

10.18.0 (2024-10-16)

Features

10.17.0 (2024-09-22)

Features

10.16.7 (2024-08-29)

Bug Fixes

  • use CommonJS bundle to support default export (2543461)
  • use cwd to resolve npm partials for Node.JS (e5fbdfe)

10.16.6 (2024-08-29)

Bug Fixes

  • expose originalError from LiquidError, #742 (86f6bf0)

10.16.5 (2024-08-27)

Bug Fixes

10.16.4 (2024-08-23)

Bug Fixes

  • "filter is not a function" for uniq (68387c3)
  • memory limit issue for join filter, fix #737 (2d59cff)

10.16.3 (2024-08-16)

Bug Fixes

10.16.2 (2024-08-15)

Bug Fixes

10.16.1 (2024-07-25)

Bug Fixes

10.16.0 (2024-07-21)

Features

10.15.0 (2024-07-09)

Bug Fixes

  • report error for malformed else/elsif/endif/endfor, #713 (22b5a12)

Features

10.14.0 (2024-06-17)

Bug Fixes

  • use drop valueOf when evaluated as condition (#705) (a7da93f)

Features

10.13.1 (2024-05-24)

Bug Fixes

  • allow liquidMethodMissing to return any supported value type (#698) (0983f2c)
  • isComparable full interface check (#701) (55e144a)

10.13.0 (2024-05-13)

Features

  • array_to_sentence_string and number_of_words filters from Jekyll, #443 (50253a9)
  • date filters from Jekyll (4955e75)
  • escape filters from Jekyll, #443 (b12eb8a)
  • jsonify, inspect, to_integer, normalize_whitespace filters (842b45c)
  • slugify filter from Jekyll, #443 (47ddc11)

10.12.0 (2024-04-28)

Bug Fixes

Features

  • introduce where_exp filter from Jekyll (8c7cef9)

10.11.1 (2024-04-21)

Bug Fixes

  • allow %Z for TimezoneDate, update docs accordingly #684 (e09657c)
  • Allow lenientIf for multiple operands (issue #682) (#683) (490ff43)

10.11.0 (2024-04-14)

Features

  • group_by/group_by_exp/find/find_exp from Jekyll, #443 (2b713b7)
  • pop/shift/unshift filters from Jekyll (258780e)

10.10.2 (2024-03-21)

Bug Fixes

10.10.1 (2024-02-18)

Bug Fixes

  • in conditionals, don't render anything after an else branch (#671) (f816955)
  • Rely on equal for computing contains (#668) (1937aa1)

10.10.0 (2023-12-19)

Features

10.9.4 (2023-11-04)

Bug Fixes

  • allow unicode to be identifiers, fixes #655 (dd7616a)

10.9.3 (2023-10-15)

Bug Fixes

  • package version in released files (67a5b22)

10.9.2 (2023-08-28)

Bug Fixes

  • handle windows newlines on newline_to_br and strip_newlines (88aa63f)
  • sort and where bug when using strictVariables (8af682d)

10.9.1 (2023-08-23)

Bug Fixes

  • map filter allow nil results in strict mode, fixes #647 (45adbd7)

10.9.0 (2023-08-22)

Bug Fixes

  • case should allow multiple values separated by or (b8e7e2d)
  • for throws undefined var with a null value with strictVariables (dc6a301)
  • remove_last was eating an extra character (fc27313)

Features

  • more flexible squared property read expression, fixes #643 (#646) (660d9be)

10.8.4 (2023-07-07)

Bug Fixes

  • allow quotes in inline comment tag, fixes #628 (bf425c3)

10.8.3 (2023-06-16)

Bug Fixes

  • strftime getSuffix works for all dates (0b4e2a9)

10.8.2 (2023-06-04)

Bug Fixes

  • sample filter randomness and count=1 case (fcb930f)

10.8.1 (2023-06-04)

Bug Fixes

  • incorrect error message for browser UMD bundle (3a67eb7)

10.8.0 (2023-06-03)

Bug Fixes

  • proper error message for filter syntax error, #610 (0480d33)
  • sed invocations to work out of the box on macOS (#615) (87d4cc7)

Features

  • Add support for the Jekyll sample filter (#612) (ba8b842)
  • Add support for the Jekyll push filter (#611)
  • introduce a matrix with latest Ubuntu and macOS to test the build on macOS as well (82ba548), closes #615
  • precise line/col for tokenization Error, #613 (e347e60)

10.7.1 (2023-04-24)

Bug Fixes

  • incorrect timezone correction for DST dates, fixes #604 (33b3c01)
  • timezoneOffset ignored in date when preserveTimezones is enabled, fixes #605 (21ee27b)

10.7.0 (2023-03-21)

Bug Fixes

Features

  • JSON format by space in json filter (7b87ea8)

10.6.2 (2023-03-19)

Bug Fixes

10.6.1 (2023-03-02)

Bug Fixes

  • [expression] apply value equal for arrays, #589 (9c0dc5f)
  • strip_html for multi line <script>/<style>/comments, #70 (42d2590)

10.6.0 (2023-02-22)

Features

  • LiquidOptions.dateFormat to override default date format (#587) (3fb6646)

10.5.0 (2023-02-14)

Bug Fixes

  • "ownPropertyOnly" not respected when passed via "renderOptions" (d489916)

Features

  • Adds support for options to CLI and improves usability (#586) (24c8a1e)

10.4.0 (2023-01-02)

Features

10.3.3 (2022-12-18)

Bug Fixes

  • type compatible with v9 tag definition, support Context as scope in various render APIs, #570 (fb6a9f8)

10.3.2 (2022-12-13)

Bug Fixes

10.3.1 (2022-12-12)

Bug Fixes

  • support Context as evalValue parameter, #568 (0f4916b)

10.3.0 (2022-12-11)

Features

  • support disable outputEscape for specific filters, #565 (e6db371)

10.2.0 (2022-12-02)

Bug Fixes

  • case should render multiple when statements (d17813e)

Features

10.1.0 (2022-11-29)

Features

  • timezone name for opts.timezoneOffset and date argument, fixes #553 (89c6c76)

10.0.0 (2022-11-27)

Code Refactoring

  • rename filters to snake style, #487 (ff112a4)
  • _evalToken renamed to evalToken (4e1a30a)
  • change ownPropertyOnly default value to true (7eb6216)
  • delay creation of operatorsTrie and hide this implementation (bb58d3e)
  • remove toThenable export (ffefd91)
  • remove use of internal Context class in evalValue argument (b115077)

Performance Improvements

  • target Node.js 14 for cjs bundle (main entry) (1f6ce7c)

BREAKING CHANGES

  • evalToken now returns a generator (LiquidJS async), which is different from evalToken in previous LiquidJS versions.
  • main entry need Node.js>=14 to run, you can build LiquidJS by your own by using ESM entry.
  • ownPropertyOnly default value changed to true
  • <liquidjs>.toThenable is removed, use <liquidjs>.toPromise instead
  • evalValue won't support Context as second argument anymore.
  • use operators instead of operatorsTrie as Tokenizer constructor argument, #500
  • keys in <liquidjs>.filters are now in snake case (instead of camel case), identical to that in Liquid template.

9.43.0 (2022-11-27)

Features

  • support timezone offset argument for date filter, #553 (7a71485)

9.42.1 (2022-10-21)

Bug Fixes

  • truncatewords should use at least one word, #537 (32f613f)

9.42.0 (2022-08-27)

Features

9.41.0 (2022-08-24)

Features

  • use evalValue to parse & render expression, #527 (071368a)

9.40.0 (2022-08-14)

Bug Fixes

Features

  • export toValueSync & defaultOptions to evaluate expression, see #527 (e874b40)

9.39.2 (2022-07-21)

Bug Fixes

  • expression support Drop.valueOf, fixes #522 (4ad383d)

9.39.1 (2022-07-14)

Bug Fixes

  • throw ParseError instead of RenderError for invalid assign expression, closes #519 (c41a5d5)

9.39.0 (2022-07-09)

Bug Fixes

  • for tag not respecting Drop#valueOf(), fixes #515 (c3e51ca)

Features

9.38.0 (2022-07-07)

Bug Fixes

  • stack overflow on large number of templates, #513 (3dc4290)

Features

9.37.0 (2022-04-21)

Bug Fixes

  • support integer arithmetic for divided_by, closes #465 (e69a510)

Features

9.36.2 (2022-04-19)

Bug Fixes

  • lazy createRequire to allow exceptions being catched, fixes #497 (b377dad)

9.36.1 (2022-04-17)

Bug Fixes

9.36.0 (2022-03-05)

Features

  • Access array item by negative index, closes #486 (049685b)
  • allow strip filter with specified char, closes #390 (c503cb2)
  • appropriate error for malformed filters, fixes #271 (01014ed)

9.35.2 (2022-03-02)

Bug Fixes

  • corner case for concat filter without argument, #481 (aa95517)
  • export all builtin tags from LiquidJS, #464 (33009bb)

9.35.1 (2022-02-26)

Bug Fixes

9.35.0 (2022-02-23)

Bug Fixes

  • url_encode throws on undefined value, fixes #479 (ca3240c)

Features

  • expose all tags/filters and TimezoneDate, closes #464 (dab8a29)

9.34.1 (2022-02-20)

Bug Fixes

  • array output now join with "" instead of "," (ab5e245)
  • sort filter unexpectedly modifies original array, #475 (dbc0497)

9.34.0 (2022-01-28)

Bug Fixes

Features

  • ownPropertyOnly option to protect prototype, #454 (7e99efc)

9.33.1 (2022-01-19)

Bug Fixes

  • liquidjs.version on npm package (53824a2)

9.33.0 (2022-01-19)

Features

9.32.1 (2022-01-12)

Bug Fixes

  • remove limit on operator char length (7677f84)

9.32.0 (2022-01-02)

Features

  • support allow_false for default filter, see #435 (c756191)

9.31.0 (2021-12-19)

Features

9.30.0 (2021-12-18)

Features

9.29.0 (2021-12-11)

Features

  • customize globals & strictVariables when calling render, see #432 (6801552)

9.28.6 (2021-12-07)

Bug Fixes

  • size filter does not respect Objects, fixes #385 (6c11426)
  • throws when using preserveTimezones on Node.js, fixes #431 (e2ef236)

9.28.5 (2021-11-05)

Bug Fixes

  • always allow './' and '../' to be relative, even on windows (44f6b52)

9.28.4 (2021-10-31)

Bug Fixes

  • allow {%render%} to reassign argument, #404 (124f4c4)

9.28.3 (2021-10-27)

Bug Fixes

  • relative root (by default) yields LookupError, fixes #419, #424, also related to #395 (aebeae9)

9.28.2 (2021-10-16)

Bug Fixes

  • cache ongoing parseFile() calls, fixes #416 (8894cbf)

9.28.1 (2021-10-16)

Bug Fixes

9.28.0 (2021-10-06)

Bug Fixes

  • skip root check for renderFile() (822ba0b)
  • support timezoneOffset for date from scope, #401 (fd5ef47)

Features

  • relativeReference for render/include/layout, #395 (a3455eb)
  • implement forloop.name as found in ruby shopify/liquid (6dc7fad)

9.27.1 (2021-10-04)

Bug Fixes

  • directory info in lookupError message, #395 (92bfc65)

9.27.0 (2021-10-03)

Bug Fixes

  • remove "stream" dependency in browser bundles, #396 (3b5eb66)
  • renderToNodeStream() now emit 'error' event instead of throw (afeef1d)

Features

  • add layouts, partials apart from root, #395 (b9ae479)
  • renderFileToNodeStream(filepath, scope) (68c4cfc)

Performance Improvements

  • make the most of streamed rendering (aea3441)

9.26.0 (2021-09-30)

Features

Performance Improvements

  • improve performance by 4x by simplified parseFile (24f5346)
  • parse filenames in parse() insteadof render() (8273c17)

9.25.1 (2021-06-20)

Performance Improvements

  • add cross-engines benchmark (cdceb25)

9.25.0 (2021-05-07)

Features

  • when tag with multiple values (8f9639f)

9.24.2 (2021-05-04)

Bug Fixes

  • operator boundary not correctly recognized, fixes #342 (3e3d84a)

9.24.1 (2021-05-01)

Bug Fixes

  • make LiquidError context property public (1fd76ac)

9.24.0 (2021-05-01)

Features

  • add context as a property on the LiquidError error (9c7cb57)
  • export errors for better error handling in user-land (4e394b9)

9.23.4 (2021-04-17)

Bug Fixes

  • capitalize filter not lower case trailing string, fixes #326 (6548765)

9.23.3 (2021-03-21)

Bug Fixes

9.23.2 (2021-03-13)

Bug Fixes

  • comparison for empty/nil, fixes #321 (99d14e7)
  • newline_to_br filter should output
    instead of
    , fixes #320 (9a9b792)

9.23.1 (2021-02-19)

Bug Fixes

  • lenientIf not working for the umd bundle, closes #313 (2e66e8b)

9.23.0 (2021-02-12)

Bug Fixes

Features

9.22.1 (2021-02-05)

Bug Fixes

  • default to precedence 1 for custom operators (20f559e)

9.22.0 (2021-02-04)

Features

9.21.0 (2021-02-04)

Features

  • add operators option for custom operators (75591cd)
  • create trie programmatically in options (befc33c)
  • export OperatorMap type (bc87e19)
  • export Operators from operator.ts (6a7c280)
  • rename to defaultOperators and Operators (8734e2e)

9.20.1 (2021-01-24)

Bug Fixes

  • allow string literals contain delimiters, fixes #288 (9c40da7)

9.20.0 (2021-01-23)

Features

9.19.0 (2020-12-18)

Bug Fixes

  • lint (de32259)
  • move offset adding complexity inside TimezoneDate (26b2175)
  • simpler timezone regex and non-null offset (e3ecfe3)

Features

  • add preserveTimezones option (d70cd2a)
  • parse and handle date timezone offsets (c16c787)

9.18.0 (2020-12-17)

Bug Fixes

  • address refactor comments (6a0ad10)

Features

  • add option for keeping variable type in output (cd92e77)

9.17.0 (2020-12-07)

Bug Fixes

  • elsif is not supported for unless, fixes #268 (2bbf501)
  • enforce string-type pattern in replace, fixes #243 (c8afa39)
  • raw block not ignoring {% characters, fixes #263 (a492d8e)

Features

9.16.1 (2020-10-09)

Bug Fixes

9.16.0 (2020-10-08)

Features

9.15.1 (2020-10-03)

Bug Fixes

  • allow quoted variable name in capture, fixes #252 (5b3f419)

9.15.0 (2020-08-04)

Features

9.14.1 (2020-07-08)

Bug Fixes

  • enumerate Promises (e.g. in for & tablerow) (#237) (941dd66)

9.14.0 (2020-06-25)

Features

  • setup universal browser and node builds (6cf6ffa)

9.13.0 (2020-06-25)

Features

9.12.0 (2020-05-15)

Features

9.11.11 (2020-05-01)

Bug Fixes

9.11.10 (2020-04-03)

Bug Fixes

  • respect cache render options (a93f11d)

9.11.9 (2020-03-31)

Bug Fixes

  • coerce to Array in map and where filter (c923598)

9.11.8 (2020-03-31)

Bug Fixes

9.11.7 (2020-03-28)

Bug Fixes

9.11.6 (2020-03-25)

Bug Fixes

  • default filter not applied for empty array (c371762)

9.11.5 (2020-03-24)

Bug Fixes

  • throws on invalid arguments for prepend/append, fixes #208 (479c633)

9.11.4 (2020-03-23)

Bug Fixes

  • return variable name in include error (93433a8)

9.11.3 (2020-03-14)

Performance Improvements

  • introduce AST to avoid reparse (d2d6a38)
  • remove instanceof DelimitedToken (1673e84)

9.11.2 (2020-03-14)

Performance Improvements

  • remove transient strings to reduce memory (3dfdf98)

9.11.1 (2020-03-09)

Bug Fixes

9.11.0 (2020-03-04)

Bug Fixes

  • Buffer not defined for browser bundles, fixes #197 (65b849c)
  • stable sort for undefined keys, fixes #191 (f57156b)

Features

  • async cache.read()/write(), remove .has() (61dac49)

9.10.0 (2020-03-03)

Features

9.9.0 (2020-03-02)

Features

9.8.0 (2020-02-20)

Features

9.7.2 (2020-02-20)

Bug Fixes

  • add funding entry to show up in npm fund command (40095a8)

9.7.1 (2020-02-19)

Bug Fixes

9.7.0 (2020-02-07)

Bug Fixes

Features

9.6.2 (2020-01-10)

Performance Improvements

  • prevent multiple case evaluations (807e840)

9.6.1 (2020-01-04)

Bug Fixes

  • add this to fs references in parseFile (4b079c5)

9.6.0 (2019-12-15)

Features

9.5.0 (2019-12-12)

Features

9.4.2 (2019-11-15)

Bug Fixes

  • reading .first, .last of Array, closes #175 (f82da11)

9.4.1 (2019-11-15)

Bug Fixes

  • remove node dependencies for esm bundle, see #173 (04df929)

9.4.0 (2019-11-14)

Features

  • add ability to pass JSON context to CLI (9504e4e)

9.3.1 (2019-11-09)

Bug Fixes

  • liquidjs command in /bin/liquid.js, fixes #169 (0073b90)

9.3.0 (2019-11-07)

Features

  • support require.resolve for lookup, see #168 (2dd4355)

9.1.1 (2019-10-10)

Performance Improvements

  • add string flattening to reduce retained memory (node only) (3ad512c)

9.1.0 (2019-10-07)

Features

  • alias getTemplate() to parseFile() (6b83788)

9.0.1 (2019-10-02)

Bug Fixes

9.0.0 (2019-08-26)

Bug Fixes

  • break/continue omitting output before them, #123 (ae45c46)
  • reactjs demo during yarn install, fixes #145 (b65df44)

Code Refactoring

  • return value of Tag#render is no longer used (8028f82)

Features

  • renderSync, parseAndRenderSync and renderFileSync, see #48 (7fb01ad)

Performance Improvements

BREAKING CHANGES

  • Tag#render now returns void, use emitter argument to write rendered html.
  • ship to Node.js 8, the dist/liquid.cjs.js (main) no longer supports Node.js 6, other bundles are also provided via dist/liquid.esm.js, dist/liquid.js (ES5 umd) and liquid.min.js (minified ES5 umd)
  • remove default export, now should be used like import {Liquid} from 'liquidjs'

8.5.3 (2019-08-25)

Bug Fixes

  • escape filter when input is undefined (a00945c)

8.5.2 (2019-08-09)

Bug Fixes

8.5.1 (2019-08-05)

Bug Fixes

8.5.0 (2019-08-01)

Features

8.4.1 (2019-07-22)

Bug Fixes

  • some filters on undefined variable throws, #140 (6e6ea0a)

8.4.0 (2019-07-06)

Features

8.3.0 (2019-06-27)

Features

8.2.4 (2019-06-17)

Performance Improvements

  • improve getTemplate() when cache is enabled (1ffba2b)

8.2.3 (2019-05-19)

Bug Fixes

8.2.2 (2019-05-12)

Bug Fixes

8.2.1 (2019-04-26)

Bug Fixes

  • default filter is not working with an empty string, #122 (6075c0a)

8.2.0 (2019-04-17)

Features

  • pass context to filters (00bc1ef)

8.1.0 (2019-04-02)

Features

8.0.3 (2019-04-01)

Bug Fixes

8.0.2 (2019-03-25)

Performance Improvements

  • use polymorphism instead duck test (82d7673)

8.0.1 (2019-03-22)

Bug Fixes

  • incorrect scope when using assign with for, fixes #115 (defbb58)

8.0.0 (2019-03-10)

Code Refactoring

  • use camelCase for JavaScript APIs (64e0c87)

Features

  • promise support for drops, working on #65 (4a8088d)

BREAKING CHANGES

  • Options and method names in JavaScript API are now renamed to camelCase, for a complete list see #109

7.5.1 (2019-03-05)

Bug Fixes

7.5.0 (2019-03-01)

Features

7.4.0 (2019-02-28)

Bug Fixes

  • math filters now return number, resolves #110 (b4acdb4)

Features

7.3.1 (2019-02-25)

Bug Fixes

  • #108: remove absolute path in emitted d.ts (53a835a), closes #108

7.3.0 (2019-02-24)

Features

  • nil/null/empty/blank literals, resolves #102 (88c9e96)

7.2.2 (2019-02-23)

Bug Fixes

  • filters break when argument contains [()|, fixes #89 (e977669)

7.2.1 (2019-02-22)

Bug Fixes

  • default length for truncate and truncatewords (56c7992)

7.2.0 (2019-02-20)

Features

  • override output/tag delimiter, fixes #54 (d20a043)

BREAKING CHANGES

  • trim_value_left option renamed to trim_output_left, trim_value_right option renamed to trim_output_right

7.1.0 (2019-02-20)

Features

  • throw an Error if delimiter not matched (c33d8f6)

7.0.0 (2019-02-14)

chore

  • TypeScript: ship Liquid to class (1cc7249)

BREAKING CHANGES

  • TypeScript: calling Liquid() without new now becomes invalid

6.4.3 (2019-02-13)

Bug Fixes

  • better index.d.ts and a demo (2015f68), closes #98

6.4.2 (2019-01-28)

Bug Fixes

  • CI: e2e not building cjs (dde7b3b)

6.4.1 (2019-01-28)

Bug Fixes