1
0
mirror of https://github.com/danog/liquid.git synced 2025-01-22 23:21:15 +01:00

Go Liquid Template Parser

goliquid is a 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

Description
No description provided
Readme 3.2 MiB
Languages
Go 95.6%
Yacc 2.3%
Ragel 1.2%
Makefile 0.6%
Shell 0.2%
Other 0.1%