template

package
v0.1.2 Latest Latest
Warning

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

Go to latest
Published: Mar 16, 2026 License: MIT Imports: 9 Imported by: 0

Documentation

Overview

Package template provides template function registry and management.

Package template provides validation with detailed error reporting.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Engine

type Engine struct {
	// contains filtered or unexported fields
}

Engine manages template loading and execution.

func NewEngine

func NewEngine(config *EngineConfig) *Engine

NewEngine creates a new template engine.

func (*Engine) CreateFuncMap

func (e *Engine) CreateFuncMap() template.FuncMap

CreateFuncMap creates a template.FuncMap with all registered functions.

func (*Engine) ListFunctions

func (e *Engine) ListFunctions() []string

ListFunctions returns all registered function names.

func (*Engine) RegisterCustomFunc

func (e *Engine) RegisterCustomFunc(name string, fn any, description string) error

RegisterCustomFunc adds a custom function to the registry.

type EngineConfig

type EngineConfig struct {
	BaseURL         string
	ContentMap      map[string]*content.Node
	Markdown        goldmark.Markdown
	StrictTemplates bool // Error on undefined variables
	I18n            *i18n.I18n
}

EngineConfig holds configuration for the template engine.

type Error

type Error struct {
	Template string // Template file name
	Line     int    // Line number (1-indexed)
	Column   int    // Column number (1-indexed)
	Snippet  string // Source code snippet
	Message  string // Error message
	Hint     string // Optional hint for fixing
}

Error represents a template error with source context.

func (*Error) Error

func (e *Error) Error() string

Error implements the error interface.

type FuncDef

type FuncDef struct {
	Fn          any
	RequiresCtx bool // Requires site context
	Description string
}

FuncDef defines a template function with metadata.

type FuncRegistry

type FuncRegistry struct {
	// contains filtered or unexported fields
}

FuncRegistry manages template functions with metadata.

func CreateDefaultRegistry

func CreateDefaultRegistry() *FuncRegistry

CreateDefaultRegistry creates a registry with all built-in functions.

func NewFuncRegistry

func NewFuncRegistry() *FuncRegistry

NewFuncRegistry creates a new function registry.

func (*FuncRegistry) BuildFuncMap

func (r *FuncRegistry) BuildFuncMap(ctx *funcs.SiteContext) template.FuncMap

BuildFuncMap creates a template.FuncMap with optional site context.

func (*FuncRegistry) Get

func (r *FuncRegistry) Get(name string) (FuncDef, bool)

Get retrieves a function definition.

func (*FuncRegistry) List

func (r *FuncRegistry) List() []string

List returns all registered function names.

func (*FuncRegistry) MustRegister

func (r *FuncRegistry) MustRegister(name string, def FuncDef)

MustRegister registers a function or panics if it already exists.

func (*FuncRegistry) Register

func (r *FuncRegistry) Register(name string, def FuncDef) error

Register adds a function to the registry.

type ValidationResult

type ValidationResult struct {
	Errors   []Error
	Warnings []Error
}

func (*ValidationResult) IsValid

func (vr *ValidationResult) IsValid() bool

func (*ValidationResult) Report

func (vr *ValidationResult) Report() string

type Validator

type Validator struct {
	// contains filtered or unexported fields
}

Validator validates templates before generation.

func NewValidator

func NewValidator(templatesDir string, funcMap template.FuncMap) *Validator

NewValidator creates a new template validator.

func (*Validator) Validate

func (v *Validator) Validate() []Error

Validate checks all templates for syntax errors.

Directories

Path Synopsis
Package funcs provides content-specific template functions for filtering and grouping.
Package funcs provides content-specific template functions for filtering and grouping.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL