mirror of
https://github.com/danog/liquid.git
synced 2024-11-27 03:34:44 +01:00
chunks | ||
expressions | ||
.gitignore | ||
.travis.yml | ||
liquid_test.go | ||
liquid.go | ||
README.md |
Go Liquid Template Parser
goliquid
is a very early-stage Go implementation of the Shopify Liquid template language, for use in Gojekyll.
Status
- Basics
- Constants
- Variables
- Operators
- Arrays
- Whitespace Control
- Tags
- Comment
- Control Flow
- if/else/elsif
- unless
- case/when
- Iteration - [ ] for - [ ] limit, offset, range, reversed - [ ] break, continue - [ ] loop variables - [ ] tablerow - [ ] cycle
- Raw
- Variable
- Assign
- Capture
- Filters
Install
go get -u github.com/osteele/goliquid
Contribute
Setup
go get golang.org/x/tools/cmd/stringer
go install golang.org/x/tools/cmd/goyacc
Install Ragel. On macOS: brew install ragel
.
Workflow
go generate
go test
Test just the scanner:
ragel -Z scanner.rl && go test -run TestExpressionParser
Attribution
Michael Hamrah's Lexing with Ragel and Parsing with Yacc using Go was essential to understanding go yacc
.
License
MIT License