Tpl banner
KarpelesLab KarpelesLab

Tpl

Testing community intermediate

Description

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

Installation

This entry records only its repository, not the path inside it, so there is no exact command to give. Open the source below and copy the folder into ~/.claude/skills/, or the file into ~/.claude/agents/.

README

[](https://godoc.org/github.com/KarpelesLab/tpl) [](https://github.com/KarpelesLab/tpl/actions/workflows/test.yml) [](https://coveralls.io/github/KarpelesLab/tpl?branch=master)

Template Engine for Go

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

Features

  • Template syntax with interpolation and control structures
  • Support for custom filters and functions
  • Parallel template execution
  • Structured error handling with location information
  • Context-aware template execution

Usage

See the [SYNTAX.md](SYNTAX.md) file for template syntax documentation.

package main

import (
	"context"
	"fmt"
	
	"github.com/KarpelesLab/tpl"
)

func main() {
	// Create a new template engine
	engine := tpl.New()
	
	// Add a template
	engine.Raw.TemplateData["main"] = "Hello {{_name}}!"

	// Set up a context with variables
	ctx := context.Background()
	ctx = tpl.ValuesCtx(ctx, map[string]any{
		"_name": "World",
	})
	
	// Compile templates
	if err := engine.Compile(ctx); err != nil {
		panic(err)
	}
	
	// Execute template
	result, err := engine.ParseAndReturn(ctx, "main")
	if err != nil {
		panic(err)
	}
	
	fmt.Println(result) // Output: Hello World!
}

License

This project is released under the MIT license.