1
0
mirror of https://github.com/danog/liquid.git synced 2024-11-27 05:44:40 +01:00
liquid/README.md
2017-07-05 09:51:00 -04:00

4.5 KiB
Raw Blame History

Go Liquid Template Parser

Build Status Go Report Card GoDoc Coverage Status

“Any sufficiently complicated C or Fortran program contains an ad-hoc, informally-specified, bug-ridden, slow implementation of half of Common Lisp.” Philip Greenspun

liquid ports Shopify Liquid templates to Go. It was developed for use in gojekyll.

liquid provides a functional API for defining tags and filters. See examples here, here, and here.

Status

This library is in its early days. The API may still change.

  • Basics
    • Literals
      • String Escapes
    • Variables
    • Operators
    • Arrays
    • Whitespace Control
  • Tags
    • Comment
    • Control Flow
      • if/else/elsif
      • unless
      • case
        • when
        • else
    • Iteration
      • modifiers (limit, reversed, offset)
      • range
      • break, continue
      • loop variables
      • tablerow
      • cycle
    • Raw
    • Variables
      • Assign
      • Capture
  • Filters
    • sort_natural, uniq, escape, truncatewords, url_decode, url_encode
    • everything else
  • Drops

Install

go get -u github.com/osteele/goliquid

Contributing

Bug reports, test cases, and code contributions are more than welcome. Please refer to the contribution guidelines.

References

Attribution

Package Author Description License
gopkg.in/yaml.v2 Canonical YAML support (for printing parse trees) Apache License 2.0
jeffjen/datefmt Jeffrey Jen Go bindings to GNU strftime and strptime MIT
Ragel Adrian Thurston scanning expressions MIT

Michael Hamrah's Lexing with Ragel and Parsing with Yacc using Go was essential to understanding go yacc.

The original Liquid engine, of course, for the design and documentation of the Liquid template language. Many of the tag and filter test cases are taken directly from the Liquid documentation.

Other Implementations

Go

Other Languages

See Shopify's ports of Liquid to other environments.

License

MIT License