A golang port of the Twig templating engine
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
parse
testdata
twig
.travis.yml
LICENSE
README.md
doc.go
example_fs_test.go
example_macro_test.go
example_test.go
exec.go
exec_test.go
loader.go
loader_test.go
stick.go
value.go
value_test.go

README.md

Stick

Build Status GoDoc

A Go language port of the Twig templating engine.

Overview

This project is split over two main parts.

Package github.com/tyler-sommer/stick is a Twig template parser and executor. It provides the core functionality and offers many of the same extension points as Twig like functions, filters, node visitors, etc.

Package github.com/tyler-sommer/stick/twig contains extensions to provide the most Twig-like experience for template writers. It aims to feature the same functions, filters, etc. to be closely Twig-compatible.

Current status

In development

Stick itself is mostly feature-complete, with the exception of whitespace control, and better error handling in places.

Stick is made up of three main parts: a lexer, a parser, and a template executor. Stick's lexer and parser are complete. Template execution is under development, but essentially complete.

See the to do list for additional information.

Installation

Stick is intended to be used as a library. The recommended way to install the library is using go get.

go get -u github.com/tyler-sommer/stick

Usage

Execute a simple Stick template.

package main

import (
	"github.com/tyler-sommer/stick"
	"os"
)

func main() {
	env := stick.New(nil)
	env.Execute("Hello, {{ name }}!", os.Stdout, map[string]stick.Value{"name": "Tyler"})
}

See godoc for more information.

To do

Further