tpl

package
v0.134.3 Latest Latest
Warning

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

Go to latest
Published: Sep 19, 2024 License: Apache-2.0 Imports: 15 Imported by: 223

Documentation

Overview

Package tpl contains template functions and related types.

Index

Constants

View Source
const (
	HugoDeferredTemplatePrefix = "__hdeferred/"
	HugoDeferredTemplateSuffix = "__d="
)
View Source
const TemplateVersion = 2

Increments on breaking changes.

Variables

View Source
var Context = struct {
	DependencyManagerScopedProvider    hcontext.ContextDispatcher[identity.DependencyManagerScopedProvider]
	GetDependencyManagerInCurrentScope func(context.Context) identity.Manager
	SetDependencyManagerInCurrentScope func(context.Context, identity.Manager) context.Context
	DependencyScope                    hcontext.ContextDispatcher[int]
	Page                               hcontext.ContextDispatcher[page]
	IsInGoldmark                       hcontext.ContextDispatcher[bool]
}{
	DependencyManagerScopedProvider: hcontext.NewContextDispatcher[identity.DependencyManagerScopedProvider](contextKey("DependencyManagerScopedProvider")),
	DependencyScope:                 hcontext.NewContextDispatcher[int](contextKey("DependencyScope")),
	Page:                            hcontext.NewContextDispatcher[page](contextKey("Page")),
	IsInGoldmark:                    hcontext.NewContextDispatcher[bool](contextKey("IsInGoldmark")),
}

Context manages values passed in the context to templates.

View Source
var DefaultParseConfig = ParseConfig{
	Version: TemplateVersion,
}
View Source
var DefaultParseInfo = ParseInfo{
	Config: DefaultParseConfig,
}

Functions

func StripHTML added in v0.100.0

func StripHTML(s string) string

StripHTML strips out all HTML tags in s.

Types

type DeferredExecution added in v0.128.0

type DeferredExecution struct {
	Mu           sync.Mutex
	Ctx          context.Context
	TemplateName string
	Data         any

	Executed bool
	Result   string
}

type FileInfo added in v0.93.0

type FileInfo interface {
	Name() string
	Filename() string
}

type Info added in v0.55.0

type Info interface {
	ParseInfo() ParseInfo
}

type IsInternalTemplateProvider added in v0.123.0

type IsInternalTemplateProvider interface {
	IsInternalTemplate() bool
}

type ParseConfig added in v0.62.0

type ParseConfig struct {
	Version int
}

type ParseInfo added in v0.62.0

type ParseInfo struct {
	// Set for shortcode templates with any {{ .Inner }}
	IsInner bool

	// Set for partials with a return statement.
	HasReturn bool

	// Config extracted from template.
	Config ParseConfig
}

func (ParseInfo) IsZero added in v0.62.0

func (info ParseInfo) IsZero() bool

type RenderingContext added in v0.128.0

type RenderingContext struct {
	Site       site
	SiteOutIdx int
}

type Template

type Template interface {
	Name() string
	Prepare() (*texttemplate.Template, error)
}

Template is the common interface between text/template and html/template.

func AddIdentity added in v0.123.0

func AddIdentity(t Template) Template

AddIdentity checks if t is an identity.Identity and returns it if so. Else it wraps it in a templateIdentity using its name as the base.

type TemplateDebugger added in v0.22.1

type TemplateDebugger interface {
	Debug()
}

TemplateDebugger prints some debug info to stdout.

type TemplateExecutor added in v0.20.1

type TemplateExecutor interface {
	ExecuteWithContext(ctx context.Context, t Template, wr io.Writer, data any) error
}

type TemplateFinder added in v0.20.1

type TemplateFinder interface {
	TemplateLookup
	TemplateLookupVariant
}

TemplateFinder finds templates.

type TemplateFuncGetter added in v0.62.0

type TemplateFuncGetter interface {
	GetFunc(name string) (reflect.Value, bool)
}

TemplateFuncGetter allows to find a template func by name.

type TemplateHandler added in v0.20.1

type TemplateHandler interface {
	TemplateFinder
	TemplateExecutor
	LookupLayout(d layouts.LayoutDescriptor, f output.Format) (Template, bool, error)
	HasTemplate(name string) bool
	GetIdentity(name string) (identity.Identity, bool)
}

TemplateHandler finds and executes templates.

type TemplateHandlers added in v0.112.0

type TemplateHandlers struct {
	Tmpl    TemplateHandler
	TxtTmpl TemplateParseFinder
}

TemplateHandlers holds the templates needed by Hugo.

type TemplateLookup added in v0.55.0

type TemplateLookup interface {
	Lookup(name string) (Template, bool)
}

type TemplateLookupVariant added in v0.55.0

type TemplateLookupVariant interface {
	// TODO(bep) this currently only works for shortcodes.
	// We may unify and expand this variant pattern to the
	// other templates, but we need this now for the shortcodes to
	// quickly determine if a shortcode has a template for a given
	// output format.
	// It returns the template, if it was found or not and if there are
	// alternative representations (output format, language).
	// We are currently only interested in output formats, so we should improve
	// this for speed.
	LookupVariant(name string, variants TemplateVariants) (Template, bool, bool)
	LookupVariants(name string) []Template
}

type TemplateManager added in v0.62.0

type TemplateManager interface {
	TemplateHandler
	TemplateFuncGetter
	AddTemplate(name, tpl string) error
	MarkReady() error
}

TemplateManager manages the collection of templates.

type TemplateParseFinder added in v0.45.1

type TemplateParseFinder interface {
	TemplateParser
	TemplateFinder
}

TemplateParseFinder provides both parsing and finding.

type TemplateParser added in v0.45.1

type TemplateParser interface {
	Parse(name, tpl string) (Template, error)
}

TemplateParser is used to parse ad-hoc templates, e.g. in the Resource chain.

type TemplateVariants added in v0.55.0

type TemplateVariants struct {
	Language     string
	OutputFormat output.Format
}

TemplateVariants describes the possible variants of a template. All of these may be empty.

type TemplatesProvider added in v0.63.0

type TemplatesProvider interface {
	Tmpl() TemplateHandler
	TextTmpl() TemplateParseFinder
}

TemplatesProvider as implemented by deps.Deps.

type UnusedTemplatesProvider added in v0.93.0

type UnusedTemplatesProvider interface {
	UnusedTemplates() []FileInfo
}

UnusedTemplatesProvider lists unused templates if the build is configured to track those.

Directories

Path Synopsis
Package cast provides template functions for data type conversions.
Package cast provides template functions for data type conversions.
Package collections provides template functions for manipulating collections such as arrays, maps, and slices.
Package collections provides template functions for manipulating collections such as arrays, maps, and slices.
Package compare provides template functions for comparing values.
Package compare provides template functions for comparing values.
Package crypto provides template functions for cryptographic operations.
Package crypto provides template functions for cryptographic operations.
Package data provides template functions for working with external data sources.
Package data provides template functions for working with external data sources.
Package debug provides template functions to help debugging templates.
Package debug provides template functions to help debugging templates.
Package diagrams provides template functions for generating diagrams.
Package diagrams provides template functions for generating diagrams.
Package encoding provides template functions for encoding content.
Package encoding provides template functions for encoding content.
Package fmt provides template functions for formatting strings.
Package fmt provides template functions for formatting strings.
Package hash provides non-cryptographic hash functions for template use.
Package hash provides non-cryptographic hash functions for template use.
Package hugo provides template functions for accessing the Site Hugo object.
Package hugo provides template functions for accessing the Site Hugo object.
Package images provides template functions for manipulating images.
Package images provides template functions for manipulating images.
Package inflect provides template functions for the inflection of words.
Package inflect provides template functions for the inflection of words.
go_templates/cfg
Package cfg holds configuration shared by the Go command and internal/testenv.
Package cfg holds configuration shared by the Go command and internal/testenv.
go_templates/fmtsort
Package fmtsort provides a general stable ordering mechanism for maps, on behalf of the fmt and text/template packages.
Package fmtsort provides a general stable ordering mechanism for maps, on behalf of the fmt and text/template packages.
go_templates/htmltemplate
Package template (html/template) implements data-driven templates for generating HTML output safe against code injection.
Package template (html/template) implements data-driven templates for generating HTML output safe against code injection.
go_templates/testenv
Package testenv provides information about what functionality is available in different testing environments run by the Go team.
Package testenv provides information about what functionality is available in different testing environments run by the Go team.
go_templates/texttemplate
Package template implements data-driven templates for generating textual output.
Package template implements data-driven templates for generating textual output.
go_templates/texttemplate/parse
Package parse builds parse trees for templates as defined by text/template and html/template.
Package parse builds parse trees for templates as defined by text/template and html/template.
Package js provides functions for building JavaScript resources
Package js provides functions for building JavaScript resources
Package lang provides template functions for content internationalization.
Package lang provides template functions for content internationalization.
Package math provides template functions for mathematical operations.
Package math provides template functions for mathematical operations.
Package openapi provides functions for generating OpenAPI (Swagger) documentation.
Package openapi provides functions for generating OpenAPI (Swagger) documentation.
openapi3
Package openapi3 provides functions for generating OpenAPI v3 (Swagger) documentation.
Package openapi3 provides functions for generating OpenAPI v3 (Swagger) documentation.
Package os provides template functions for interacting with the operating system.
Package os provides template functions for interacting with the operating system.
Package page provides template functions for accessing the current Page object, the entry level context for the current template.
Package page provides template functions for accessing the current Page object, the entry level context for the current template.
Package partials provides template functions for working with reusable templates.
Package partials provides template functions for working with reusable templates.
Package path provides template functions for manipulating paths.
Package path provides template functions for manipulating paths.
Package reflect provides template functions for run-time object reflection.
Package reflect provides template functions for run-time object reflection.
Package resources provides template functions for working with resources.
Package resources provides template functions for working with resources.
Package safe provides template functions for escaping untrusted content or encapsulating trusted content.
Package safe provides template functions for escaping untrusted content or encapsulating trusted content.
Package site provides template functions for accessing the Site object.
Package site provides template functions for accessing the Site object.
Package strings provides template functions for manipulating strings.
Package strings provides template functions for manipulating strings.
Package templates provides template functions for working with templates.
Package templates provides template functions for working with templates.
Package time provides template functions for measuring and displaying time.
Package time provides template functions for measuring and displaying time.
Package transform provides template functions for transforming content.
Package transform provides template functions for transforming content.
Package urls provides template functions to deal with URLs.
Package urls provides template functions to deal with URLs.

Jump to

Keyboard shortcuts

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