liquid v0.1.0 Release Notes

Release Date: 2017-07-09 // almost 7 years ago
    • ✅ "contains" tests for arrays too (24d83f1)
    • (Some) relationship operators (d03efed)
    • a.b syntax (5dbd972)
    • a[b] for invalid a or b (50d11a6)
    • ➕ Add a Grammar interface for parsing (f313e6f)
    • ➕ Add a Travis file (8e673ac)
    • ➕ Add an executable (f1b2777)
    • ➕ Add an type filter; inspect is more robust (3a1506b)
    • ➕ Add contribution guidelines (1b7564d)
    • ➕ Add coverage status (6297319)
    • ➕ Add docs; remove unused UnimplementedError (983b9f5)
    • ➕ Add engine.DefineControlTag; currently does nothing (8f7bcae)
    • ➕ Add error line number (4472b15)
    • ➕ Add goveralls to travis (c415f89)
    • ➕ Add install-dev-toolsl to travis (008f1ed)
    • ➕ Add IsTemplateError (2161bb6)
    • ➕ Add Makefile (29c9ad8)
    • ➕ Add more dependencies to credits (97b36ab)
    • ➕ Add more parse time formats (77c5dc9)
    • ➕ Add MustConvertItem; convert bool -> int (80d58dc)
    • ➕ Add nil; distinguish between identifier and property patterns (7a2b28c)
    • ➕ Add public DefineTag (e21d2a7)
    • ➕ Add references to README (ac12225)
    • ➕ Add RenderContext.ParseTagArgs (7c48138)
    • ➕ Add reverse filter; improve generics (54b9f13)
    • ➕ Add status badges to the README (465a681)
    • ➕ Add strptime for time parsing (8ea72e4)
    • ➕ Add Template.SetSourcePath (5425668)
    • 👍 Allow - in identifiers (af8c486)
    • 👍 Allow parens (607f4f4)
    • Catch unimplemented panics (b1cf056)
    • Chunk regex wasn't sufficiently non-greedy (f8b5503)
    • ✅ Chunk scanner test cases (fc6d96e)
    • Closure.Bind copies the original bindings (4e96c15)
    • Compiler copies the syntax tree (8f63cb7)
    • contains operates on strings not arrays (9dda87f)
    • 📜 Control tag parsers can return an error (61663ab)
    • Control tags actions are table-driven (20e4df3)
    • Convert -> map[string] (767f1f4)
    • Convert map -> [] (6075f39)
    • Convert maps (2fed70b)
    • Convert returns an error; create MustConvert (4df3f04)
    • Coverage (6f7b67f)
    • Coverage (36929af)
    • Coverage (caca7a2)
    • Coverage (78526e7)
    • Coverage; simplify (a8afb01)
    • 📄 Create an Expression interface; add some docs (2a2f333)
    • Create LICENSE (e3425cc)
    • 📦 Create top-level interface to liquid package (514559e)
    • 📄 Docs (f15de87)
    • 📄 Docs (803fbbc)
    • Embed the Chunk in the AST nodes (089a0c8)
    • ✅ Expression evaluator tests; fix revealed bugs (1f805d5)
    • 🔧 Filters are an engine configuration (2e9903f)
    • Filters can have (single) parameters (70aa70d)
    • 👍 Filters support multiple argument, including expressions (a93848a)
    • Finish generic comparison (dbdcca4)
    • 🛠 Fix forloop.last with offset modifier (394036d)
    • 🛠 Fix generic equality with nil (229059c)
    • 🛠 Fix previous (87b8198)
    • 🛠 Fix the raw tag (e2bb7c6)
    • for over a map iterates over its keys (decd8dd)
    • 📜 Functional is constructed within parser, not scanner (c02fbd5)
    • FunctionalNode -> TagNode (18e2540)
    • Generic Convert handles conversion to time (2083747)
    • Generics (87708a0)
    • GitHub templates (7bd8a8d)
    • 👕 gometalinter doesn't have a config in this repo (28db298)
    • identifiers can include '-' (606870e)
    • 📜 If tag parses during parse stage (621992c)
    • Implement {% else %}, {% elsif %} (cab7845)
    • Implement {% if %} (60d2f78)
    • Implement {% unless %} (6a06665)
    • Implement <=, >=, contains (6c56efd)
    • Implement a big chunk of filters (1630af7)
    • Implement a[n] (555991c)
    • Implement and, or, != (a5a3ad2)
    • Implement ar.first, ar.list (c648a70)
    • Implement booleans (6af4fca)
    • Implement break, continue (a1784cd)
    • Implement capture tag (055e789)
    • Implement case (w/out else) (c5e7e6c)
    • Implement comment tag (eb7a18e)
    • Implement date formats (61b651c)
    • Implement drops (ba874de)
    • Implement expression scanner (57be549)
    • 0️⃣ Implement filters: default; date (w/out format) (d849e74)
    • Implement forloop variables (e9c35a3)
    • Implement include (fab31d9)
    • Implement loop modifiers (53a41f3)
    • Implement loop reversed (383db45)
    • Implement loop tag (babfc3e)
    • Implement obj['name'] (63e2c5c)
    • Implement raw tag (c09652b)
    • Implement remaining numeric filters (5ec1f66)
    • Implement some filters (30211ac)
    • Implement sort: key (612f456)
    • Implement string literals (without escapes) (ed150c5)
    • Implement uniq filter (585cc5d)
    • Implement variable assignment (cd15950)
    • 👌 Improve docs (a077502)
    • 👌 Improve some internal names (1da9d40)
    • 🎉 Initial (58395a8)
    • 👕 lint (a824673)
    • 👕 Lint (e71bc95)
    • 👕 Lint (09d3650)
    • 👕 Lint (c4bd99b)
    • 👕 Lint; remove dead code (fb26bb3)
    • ⚡️ make install-dev-tools doesn't update packages (9714544)
    • 0️⃣ Makefile default target is ci (3dba4ee)
    • 🖨 Match print object to observed (d924e0b)
    • Match split filter to observed (6a8127a)
    • More filters (910d4b2)
    • More filters (c433c08)
    • ✅ More generic.Less; tests (43bedef)
    • More time formats (2f0f6ba)
    • 📦 Move assign tag -> tags package (d31fe04)
    • 🚚 Move chunk marshalling to separate file (b367592)
    • 🚚 Move chunks -> render (6161e6d)
    • 📦 Move chunks to sub-package (2e61304)
    • 📦 Move expression parser to sub-package (373b2fb)
    • 🚚 Move expressions -> expression (9691dc2)
    • 📦 Move filters to own package (4189f03)
    • 🚚 Move generics -> evaluator (a434a75)
    • 📦 Move generics to own package (f52d00f)
    • 🚚 Move tag compilation to compiler stage (54e840c)
    • 📦 Move tags to own package (83503a1)
    • Negative integer indexes from end of list (c1fd00c)
    • 🆕 New top-level Context wrapper (d6bc456)
    • Optional filter arguments declared as functions (8397c5e)
    • 📜 Parse control tag forms at parse time (5dddabe)
    • 📜 Parse object expressions during parse stage; report error source (d4c895d)
    • Rationalize some filenames (c4ff3d2)
    • README (d29e4b2)
    • README (c67d027)
    • README links to godoc (a4b1835)
    • Record source line number (08fcc4e)
    • ✂ remove a debug print (e332e53)
    • ✂ Remove else/elsif from unless (12045b5)
    • ✂ Remove gratuitous Context wrapper (cb8911a)
    • 📇 Rename (594ec99)
    • 📇 Rename chunk -> token (69d26a2)
    • 📇 Rename render.(Context,RenderContext) -> (NodeContext,Context) (411a2f0)
    • 📇 Rename renderError -> render.Error (315af1a)
    • 📇 Rename Settings -> Config (405c5bf)
    • 📇 Rename some files (bcef4dc)
    • 📇 Rename to match Liquid terminology (2e8f51a)
    • 📜 Render tree is distinct type from parse AST (803471c)
    • Render uses a switch instead of polymorphism (0559730)
    • Renderers return a string, rather than taking an io.writer (8d9df82)
    • ⚡️ Replace GetVariableMap -> UpdateBindings, RenderFile (a7cbb9b)
    • ⏪ Restore tag tests (db5a3af)
    • Separate interface.go from engine.go (ebc29dc)
    • simplify (af95c44)
    • simplify (846987d)
    • simplify (c599761)
    • Simplify external tag interface (f6c4299)
    • slice, truncate use runes not bytes (a3c646c)
    • SortByProperty can sort nil first or last (e2fd3bb)
    • 📦 Split package render->parser (903acb8)
    • 📜 Start to separate parser and compiler (c7d9af2)
    • 🏷 Tags are an engine configuration (e6f8eac)
    • 🏷 Tags are called within a RenderContext (41da3f9)
    • 👕 tavis uses makefile lint (8f148dc)
    • ✅ tests (d435cf5)
    • Uh-oh – strftime gets the day of week wrong! (25e97ed)
    • 🏗 Un-export ControlTagDefinition; create builder (0c7a8d2)
    • Unconfuse unless/endunless (9b8da4f)
    • Undefined tags, filters are errors not panics (9a807d0)
    • ⚡️ Update Contributing to point to the project boards (dd41a36)
    • ⚡️ Update guidelines to refer to issues board (aad76bd)
    • 👉 Use C strptime to format dates (247bec3)
    • ↪ Work around missing %-H in strftime (fc227aa)
    • 📜 Yacc expression parsing (9c64c5a)
    • 📦 Yacc, ragel source match package moves (a7a1ee5)