Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Node ¶ added in v0.1.1
type Node struct {
// contains filtered or unexported fields
}
Node represents text content that can be either HTML-escaped (safe) or raw (unescaped). It implements the node.Node interface and is used internally by Text() and RawText() constructor functions to handle different security models.
func RawText ¶
RawText creates an unescaped text component for trusted HTML content. This is now marked as dynamic by default to handle variables and dynamic content. Use this ONLY for content you control, such as pre-built HTML strings.
Example:
text.RawText(htmlContent) // Renders unescaped, marked as dynamic
func RawTextf ¶
RawTextf creates a formatted text component without HTML escaping. It should only be used with trusted format strings and arguments.
Example:
text.RawTextf("<a href='%s'>%s</a>", "/home", "Home") // Renders as: <a href='/home'>Home</a>
func Static ¶
Static creates a text component that is explicitly marked as static content. This should be used for content that never changes, allowing JIT optimisation. Warning: Static content is not html encoded/escaped.
Example:
text.Static("Copyright 2024") // Renders as: Copyright 2024
func Text ¶
Text creates a safe text component with automatic HTML escaping for security. This is now marked as dynamic by default to handle variables and user content.
Special HTML characters like <, >, &, and quotes are automatically escaped.
Example:
text.Text(userName) // Renders with HTML escaping, marked as dynamic
func Textf ¶
Textf creates a safe, formatted text component with automatic HTML escaping. It works like fmt.Sprintf but ensures the final string is properly escaped to prevent XSS attacks.
Example:
text.Textf("Hello, %s!", "<world>") // Renders as: Hello, <world>!
func (*Node) DynamicKey ¶ added in v0.2.0
DynamicKey returns an empty string — text nodes do not carry tracking keys.
func (*Node) IsDynamic ¶ added in v0.2.0
IsDynamic returns true if this text content is dynamically generated (created with Text, Textf, RawText, or RawTextf). Static content (created with Static) returns false, allowing JIT to pre-render it.
func (*Node) Nodes ¶ added in v0.1.1
Nodes returns an empty slice as text nodes do not have children.
func (*Node) Render ¶ added in v0.1.1
Render returns the text content as a byte slice or writes to the provided writer.
func (*Node) RenderBuilder ¶ added in v0.1.1
RenderBuilder writes the text content directly to the provided buffer. This method provides efficient rendering for large node trees.