package module
Version: v0.0.1 Latest Latest

This package is not in the latest version of its module.

Go to latest
Published: Jan 17, 2020 License: MIT Imports: 35 Imported by: 0



Template engine for Go

This is a legacy template engine system, made to be compatible with an older version initially written in PHP.

It has reached end of line and as such release under MIT license has been decided.




This section is empty.


View Source
var BBCodeCompiler = bbcode.NewCompiler(true, true)
View Source
var (
	ErrTplNotFound = errors.New("tpl: Template not found")


func AsOutValue

func AsOutValue(ctx context.Context, v interface{}) *interfaceValue

func CallFunction

func CallFunction(ctx context.Context, funcName string, params Values, target WritableValue) error

func CompareValues

func CompareValues(ctx context.Context, o1, o2 interface{}) (bool, error)

func FormatSize

func FormatSize(v uint64) string

func LogWarn

func LogWarn(ctx context.Context, msg string, arg ...interface{})

func QueryEscapeAny

func QueryEscapeAny(ctx context.Context, val interface{}) string

func RegisterFilter

func RegisterFilter(name string, f TplFiltCallback)

func RegisterFunction

func RegisterFunction(name string, f *TplFunction)

func ResetServerCtx

func ResetServerCtx(ctx context.Context)

func ResolveValueIndex

func ResolveValueIndex(ctx context.Context, v interface{}, s string) (interface{}, error)

func ServerCtx

func ServerCtx(request *http.Request) context.Context

func ValuesCtx

func ValuesCtx(parent context.Context, values map[string]interface{}) context.Context

func ValuesCtxAlways

func ValuesCtxAlways(parent context.Context, values map[string]interface{}) context.Context


type ArrayAccessGet

type ArrayAccessGet interface {
	OffsetGet(context.Context, string) (Value, error)

type CtxLog

type CtxLog interface {
	LogWarn(msg string, arg ...interface{})

type Error

type Error struct {
	Message    string
	Template   string
	Line, Char int
	Stack      []byte
	Parent     error

Error is a template error, containing details such as where an error occured in the template source and details on the actual error.

func (*Error) Error

func (e *Error) Error() string

func (*Error) String

func (e *Error) String() string

func (*Error) Unwrap

func (e *Error) Unwrap() error

type Page

type Page struct {
	Version int // will be populated on compile
	Raw     RawData

	MaxProcess int // when running parallel compile (0=unlimited)
	// contains filtered or unexported fields

func New

func New() *Page

func (*Page) Compile

func (e *Page) Compile(ctx context.Context) error

func (*Page) Dump

func (e *Page) Dump(o io.Writer, lvl int)

func (*Page) GetMime

func (e *Page) GetMime() string

func (*Page) GetProperty

func (e *Page) GetProperty(p string) string

func (*Page) HasTpl

func (e *Page) HasTpl(tpl string) bool

func (*Page) Parse

func (e *Page) Parse(ctx context.Context, tpl string, out *interfaceValue) error

func (*Page) ParseAndReturn

func (e *Page) ParseAndReturn(ctx context.Context, tpl string) (string, error)

func (*Page) ParseAndWrite

func (e *Page) ParseAndWrite(ctx context.Context, tpl string, out io.Writer) error

type RawData

type RawData struct {
	PageProperties map[string]string // typically Charset=UTF-8 Content_Type=text/html
	TemplateData   map[string]string // actual contents for templates, at least "main" should be there

RawData contains the raw (uncompiled) data for current template

func (*RawData) FromDir

func (res *RawData) FromDir(d ...string) error

func (*RawData) FromVfs

func (res *RawData) FromVfs(fs vfs.FileSystem, d ...string) error

func (*RawData) FromZip

func (res *RawData) FromZip(z *zip.Reader, d ...string) error

func (*RawData) IsValid

func (r *RawData) IsValid() bool

type TplCtxValue

type TplCtxValue int
const (
	TplCtxLog TplCtxValue = iota + 1

type TplFiltCallback

type TplFiltCallback func(ctx context.Context, params Values, in Value, out WritableValue) error

type TplFuncCallback

type TplFuncCallback func(ctx context.Context, params Values, out WritableValue) error

type TplFunction

type TplFunction struct {
	Method     TplFuncCallback
	CanCompile bool

type Value

type Value interface {
	ReadValue(ctx context.Context) (interface{}, error)
	WithCtx(ctx context.Context) *ValueCtx

func NewValue

func NewValue(v interface{}) Value

type ValueCtx

type ValueCtx struct {
	// contains filtered or unexported fields

func NewValueCtx

func NewValueCtx(ctx context.Context, v Value) *ValueCtx

func (*ValueCtx) Bytes

func (v *ValueCtx) Bytes() []byte

func (*ValueCtx) BytesErr

func (v *ValueCtx) BytesErr() ([]byte, error)

func (*ValueCtx) IsString

func (v *ValueCtx) IsString() bool

IsString checks if the raw value is either a string, or an interface made to return a string

func (*ValueCtx) MarshalJSON

func (v *ValueCtx) MarshalJSON() ([]byte, error)

func (*ValueCtx) MatchValueType

func (v *ValueCtx) MatchValueType(t interface{}) (interface{}, error)

func (*ValueCtx) Raw

func (v *ValueCtx) Raw() (interface{}, error)

func (*ValueCtx) String

func (v *ValueCtx) String() string

func (*ValueCtx) StringErr

func (v *ValueCtx) StringErr() (string, error)

func (*ValueCtx) ToBool

func (v *ValueCtx) ToBool() bool

func (*ValueCtx) ToFloat

func (v *ValueCtx) ToFloat() (float64, bool)

func (*ValueCtx) ToInt

func (v *ValueCtx) ToInt() (int64, bool)

type Values

type Values []Value

type WritableValue

type WritableValue interface {
	Printf(fmt string, arg ...interface{}) (int, error)
	Write([]byte) (int, error)
	WriteValue(context.Context, interface{}) error

func NewEmptyValue

func NewEmptyValue() WritableValue

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
t or T : Toggle theme light dark auto
y or Y : Canonical URL