package templ
import "github.com/a-h/templ"
Index ¶
- Constants
- Variables
- func Bool(value bool) bool
- func CSSID(name string, css string) string
- func ClearChildren(ctx context.Context) context.Context
- func EscapeString(s string) string
- func GetBuffer() *bytes.Buffer
- func GetNonce(ctx context.Context) (nonce string)
- func InitializeContext(ctx context.Context) context.Context
- func JSONString(v any) (string, error)
- func JoinStringErrs(s string, errs ...error) (string, error)
- func ReleaseBuffer(b *bytes.Buffer)
- func RenderAttributes(ctx context.Context, w io.Writer, attributes Attributes) (err error)
- func RenderCSSItems(ctx context.Context, w io.Writer, classes ...any) (err error)
- func RenderScriptItems(ctx context.Context, w io.Writer, scripts ...ComponentScript) (err error)
- func SafeScript(functionName string, params ...any) string
- func SafeScriptInline(functionName string, params ...any) string
- func ToGoHTML(ctx context.Context, c Component) (s template.HTML, err error)
- func Version() string
- func WithChildren(ctx context.Context, children Component) context.Context
- func WithContentType(contentType string) func(*ComponentHandler)
- func WithErrorHandler(eh func(r *http.Request, err error) http.Handler) func(*ComponentHandler)
- func WithNonce(ctx context.Context, nonce string) context.Context
- func WithStatus(status int) func(*ComponentHandler)
- func WithStreaming() func(*ComponentHandler)
- func WriteWatchModeString(w io.Writer, lineNum int) error
- type Attributes
- type CSSClass
- type CSSClasses
- type CSSHandler
- func NewCSSHandler(classes ...CSSClass) CSSHandler
- func (cssh CSSHandler) ServeHTTP(w http.ResponseWriter, r *http.Request)
- type CSSMiddleware
- func NewCSSMiddleware(next http.Handler, classes ...CSSClass) CSSMiddleware
- func (cssm CSSMiddleware) ServeHTTP(w http.ResponseWriter, r *http.Request)
- type Component
- func FromGoHTML(t *template.Template, data any) Component
- func GetChildren(ctx context.Context) Component
- func Join(components ...Component) Component
- func Raw[T ~string](html T, errs ...error) Component
- type ComponentCSSClass
- type ComponentFunc
- type ComponentHandler
- func Handler(c Component, options ...func(*ComponentHandler)) *ComponentHandler
- func (ch ComponentHandler) ServeHTTP(w http.ResponseWriter, r *http.Request)
- func (ch *ComponentHandler) ServeHTTPBuffered(w http.ResponseWriter, r *http.Request)
- func (ch *ComponentHandler) ServeHTTPStreamed(w http.ResponseWriter, r *http.Request)
- type ComponentScript
- func JSFuncCall[T ~string](functionName T, args ...any) ComponentScript
- func JSUnsafeFuncCall[T ~string](js T) ComponentScript
- func (c ComponentScript) Render(ctx context.Context, w io.Writer) error
- type ConstantCSSClass
- type Error
- type FlushComponent
- func Flush() FlushComponent
- func (f FlushComponent) Render(ctx context.Context, w io.Writer) (err error)
- type JSExpression
- type JSONScriptElement
- func JSONScript(id string, data any) JSONScriptElement
- func (j JSONScriptElement) Render(ctx context.Context, w io.Writer) (err error)
- func (j JSONScriptElement) WithNonceFrom(f func(context.Context) string) JSONScriptElement
- func (j JSONScriptElement) WithNonceFromString(nonce string) JSONScriptElement
- func (j JSONScriptElement) WithType(t string) JSONScriptElement
- type KeyValue
- type OnceHandle
- type OnceOpt
- type SafeCSS
- type SafeCSSProperty
- type SafeURL
Constants ¶
const FailedSanitizationURL = SafeURL("about:invalid#TemplFailedSanitizationURL")
FailedSanitizationURL is returned if a URL fails sanitization checks.
Variables ¶
NopComponent is a component that doesn't render anything.
Functions ¶
func Bool ¶
Bool attribute value.
func CSSID ¶
CSSID calculates an ID.
func ClearChildren ¶
func EscapeString ¶
EscapeString escapes HTML text within templates.
func GetBuffer ¶
func GetNonce ¶
GetNonce returns the CSP nonce value set with WithNonce, or an empty string if none has been set.
func InitializeContext ¶
InitializeContext initializes context used to store internal state used during rendering.
func JSONString ¶
JSONString returns a JSON encoded string of v.
func JoinStringErrs ¶
JoinStringErrs joins an optional list of errors.
func ReleaseBuffer ¶
func RenderAttributes ¶
func RenderCSSItems ¶
RenderCSSItems renders the CSS to the writer, if the items haven't already been rendered.
func RenderScriptItems ¶
RenderScriptItems renders a <script> element, if the script has not already been rendered.
func SafeScript ¶
SafeScript encodes unknown parameters for safety for inside HTML attributes.
func SafeScriptInline ¶
SafeScript encodes unknown parameters for safety for inline scripts.
func ToGoHTML ¶
ToGoHTML renders the component to a Go html/template template.HTML string.
func Version ¶
func Version() string
func WithChildren ¶
func WithContentType ¶
func WithContentType(contentType string) func(*ComponentHandler)
WithContentType sets the Content-Type header returned by the ComponentHandler.
func WithErrorHandler ¶
WithErrorHandler sets the error handler used if rendering fails.
func WithNonce ¶
WithNonce sets a CSP nonce on the context and returns it.
func WithStatus ¶
func WithStatus(status int) func(*ComponentHandler)
WithStatus sets the HTTP status code returned by the ComponentHandler.
func WithStreaming ¶
func WithStreaming() func(*ComponentHandler)
WithStreaming sets the ComponentHandler to stream the response instead of buffering it.
func WriteWatchModeString ¶
WriteWatchModeString is used when rendering templates in development mode. the generator would have written non-go code to the _templ.txt file, which is then read by this function and written to the output.
Deprecated: since templ v0.3.x generated code uses WriteString.
Types ¶
type Attributes ¶
Attributes is an alias to map[string]any made for spread attributes.
type CSSClass ¶
type CSSClass interface { ClassName() string }
CSSClass provides a class name.
func Class ¶
Class returns a CSS class name. Deprecated: use a string instead.
func SafeClass ¶
SafeClass bypasses CSS class name validation. Deprecated: use a string instead.
type CSSClasses ¶
type CSSClasses []any
CSSClasses is a slice of CSS classes.
func Classes ¶
func Classes(classes ...any) CSSClasses
Classes for CSS. Supported types are string, ConstantCSSClass, ComponentCSSClass, map[string]bool.
func (CSSClasses) String ¶
func (classes CSSClasses) String() string
String returns the names of all CSS classes.
type CSSHandler ¶
type CSSHandler struct { Logger func(err error) Classes []ComponentCSSClass }
CSSHandler is a HTTP handler that serves CSS.
func NewCSSHandler ¶
func NewCSSHandler(classes ...CSSClass) CSSHandler
NewCSSHandler creates a handler that serves a stylesheet containing the CSS of the classes passed in. This is used by the CSSMiddleware to provide global stylesheets for templ components.
func (CSSHandler) ServeHTTP ¶
func (cssh CSSHandler) ServeHTTP(w http.ResponseWriter, r *http.Request)
type CSSMiddleware ¶
type CSSMiddleware struct { Path string CSSHandler CSSHandler Next http.Handler }
CSSMiddleware renders a global stylesheet.
func NewCSSMiddleware ¶
func NewCSSMiddleware(next http.Handler, classes ...CSSClass) CSSMiddleware
NewCSSMiddleware creates HTTP middleware that renders a global stylesheet of ComponentCSSClass CSS if the request path matches, or updates the HTTP context to ensure that any handlers that use templ.Components skip rendering <style> elements for classes that are included in the global stylesheet. By default, the stylesheet path is /styles/templ.css
func (CSSMiddleware) ServeHTTP ¶
func (cssm CSSMiddleware) ServeHTTP(w http.ResponseWriter, r *http.Request)
type Component ¶
Component is the interface that all templates implement.
func FromGoHTML ¶
FromGoHTML creates a templ Component from a Go html/template template.
func GetChildren ¶
GetChildren from the context.
func Join ¶
Join returns a single `templ.Component` that will render provided components in order. If any of the components return an error the Join component will immediately return with the error.
func Raw ¶
Raw renders the input HTML to the output without applying HTML escaping.
Use of this component presents a security risk - the HTML should come from a trusted source, because it will be included as-is in the output.
type ComponentCSSClass ¶
type ComponentCSSClass struct { // ID of the class, will be autogenerated. ID string // Definition of the CSS. Class SafeCSS }
ComponentCSSClass is a templ.CSS
func (ComponentCSSClass) ClassName ¶
func (css ComponentCSSClass) ClassName() string
ClassName of the CSS class.
type ComponentFunc ¶
ComponentFunc converts a function that matches the Component interface's Render method into a Component.
func (ComponentFunc) Render ¶
Render the template.
type ComponentHandler ¶
type ComponentHandler struct { Component Component Status int ContentType string ErrorHandler func(r *http.Request, err error) http.Handler StreamResponse bool }
ComponentHandler is a http.Handler that renders components.
func Handler ¶
func Handler(c Component, options ...func(*ComponentHandler)) *ComponentHandler
Handler creates a http.Handler that renders the template.
func (ComponentHandler) ServeHTTP ¶
func (ch ComponentHandler) ServeHTTP(w http.ResponseWriter, r *http.Request)
ServeHTTP implements the http.Handler interface.
func (*ComponentHandler) ServeHTTPBuffered ¶
func (ch *ComponentHandler) ServeHTTPBuffered(w http.ResponseWriter, r *http.Request)
func (*ComponentHandler) ServeHTTPStreamed ¶
func (ch *ComponentHandler) ServeHTTPStreamed(w http.ResponseWriter, r *http.Request)
type ComponentScript ¶
type ComponentScript struct { // Name of the script, e.g. print. Name string // Function to render. Function string // Call of the function in JavaScript syntax, including parameters, and // ensures parameters are HTML escaped; useful for injecting into HTML // attributes like onclick, onhover, etc. // // Given: // functionName("some string",12345) // It would render: // __templ_functionName_sha("some string",12345)) // // This is can be injected into HTML attributes: // <button onClick="__templ_functionName_sha("some string",12345))">Click Me</button> Call string // Call of the function in JavaScript syntax, including parameters. It // does not HTML escape parameters; useful for directly calling in script // elements. // // Given: // functionName("some string",12345) // It would render: // __templ_functionName_sha("some string",12345)) // // This is can be used to call the function inside a script tag: // <script>__templ_functionName_sha("some string",12345))</script> CallInline string }
ComponentScript is a templ Script template.
func JSFuncCall ¶
func JSFuncCall[T ~string](functionName T, args ...any) ComponentScript
JSFuncCall calls a JavaScript function with the given arguments.
It can be used in event handlers, e.g. onclick, onhover, etc. or directly in HTML.
func JSUnsafeFuncCall ¶
func JSUnsafeFuncCall[T ~string](js T) ComponentScript
JSUnsafeFuncCall calls arbitrary JavaScript in the js parameter.
Use of this function presents a security risk - the JavaScript must come from a trusted source, because it will be included as-is in the output.
func (ComponentScript) Render ¶
type ConstantCSSClass ¶
type ConstantCSSClass string
ConstantCSSClass is a string constant of a CSS class name. Deprecated: use a string instead.
func (ConstantCSSClass) ClassName ¶
func (css ConstantCSSClass) ClassName() string
ClassName of the CSS class.
type Error ¶
type Error struct { Err error // FileName of the template file. FileName string // Line index of the error. Line int // Col index of the error. Col int }
Error returned during template rendering.
func (Error) Error ¶
func (Error) Unwrap ¶
type FlushComponent ¶
type FlushComponent struct { }
func Flush ¶
func Flush() FlushComponent
Flush flushes the output buffer after all its child components have been rendered.
func (FlushComponent) Render ¶
type JSExpression ¶
type JSExpression string
JSExpression represents a JavaScript expression intended for use as an argument for script templates. The string value of JSExpression will be inserted directly as JavaScript code in function call arguments.
type JSONScriptElement ¶
type JSONScriptElement struct { // ID of the element in the DOM. ID string // Type of the script element, defaults to "application/json". Type string // Data that will be encoded as JSON. Data any // Nonce is a function that returns a CSP nonce. // Defaults to CSPNonceFromContext. // See https://content-security-policy.com/nonce for more information. Nonce func(ctx context.Context) string }
func JSONScript ¶
func JSONScript(id string, data any) JSONScriptElement
JSONScript renders a JSON object inside a script element. e.g. <script type="application/json">{"foo":"bar"}</script>
func (JSONScriptElement) Render ¶
func (JSONScriptElement) WithNonceFrom ¶
func (j JSONScriptElement) WithNonceFrom(f func(context.Context) string) JSONScriptElement
WithNonceFrom sets the value of the nonce attribute of the script element to the value returned by the given function.
func (JSONScriptElement) WithNonceFromString ¶
func (j JSONScriptElement) WithNonceFromString(nonce string) JSONScriptElement
WithNonceFromString sets the value of the nonce attribute of the script element to the given string.
func (JSONScriptElement) WithType ¶
func (j JSONScriptElement) WithType(t string) JSONScriptElement
WithType sets the value of the type attribute of the script element.
type KeyValue ¶
type KeyValue[TKey comparable, TValue any] struct { Key TKey `json:"name"` Value TValue `json:"value"` }
KeyValue is a key and value pair.
func KV ¶
func KV[TKey comparable, TValue any](key TKey, value TValue) KeyValue[TKey, TValue]
KV creates a new key/value pair from the input key and value.
type OnceHandle ¶
type OnceHandle struct {
// contains filtered or unexported fields
}
OnceHandle is used to ensure that the children of its `Once` method are are only rendered once per context.
func NewOnceHandle ¶
func NewOnceHandle(opts ...OnceOpt) *OnceHandle
NewOnceHandle creates a OnceHandle used to ensure that the children of its `Once` method are only rendered once per context.
func (*OnceHandle) Once ¶
func (o *OnceHandle) Once() Component
Once returns a component that renders its children once per context.
type OnceOpt ¶
type OnceOpt func(*OnceHandle)
func WithComponent ¶
WithOnceComponent sets the component to be rendered once per context. This can be used instead of setting the children of the `Once` method, for example, if creating a code component outside of a templ HTML template.
type SafeCSS ¶
type SafeCSS string
SafeCSS is CSS that has been sanitized.
func SanitizeCSS ¶
SanitizeCSS sanitizes CSS properties to ensure that they are safe.
type SafeCSSProperty ¶
type SafeCSSProperty string
type SafeURL ¶
type SafeURL string
SafeURL is a URL that has been sanitized.
func URL ¶
URL sanitizes the input string s and returns a SafeURL.
Source Files ¶
flush.go handler.go join.go js.go jsonscript.go jsonstring.go once.go runtime.go scripttemplate.go url.go version.go watchmode.go
Directories ¶
- Version
- v0.3.857 (latest)
- Published
- Mar 25, 2025
- Platform
- linux/amd64
- Imports
- 23 packages
- Last checked
- 1 week ago –
Tools for package owners.