mirror of
https://github.com/danog/liquid.git
synced 2024-11-30 09:59:02 +01:00
chunks | ||
errors | ||
expressions | ||
.gitignore | ||
.travis.yml | ||
engine.go | ||
LICENSE | ||
liquid_test.go | ||
README.md | ||
template.go |
Go Liquid Template Parser
goliquid
is a very early-stage Go implementation of the Shopify Liquid template language, for use in Gojekyll.
Status
- Basics
- Literals
- String Escapes
- Variables
- Operators
- Arrays
- Whitespace Control
- Literals
- 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:
cd expressions
ragel -Z scanner.rl && go test
Attribution
Michael Hamrah's Lexing with Ragel and Parsing with Yacc using Go was essential to understanding go yacc
.
License
MIT License