message

package
v1.0.138 Latest Latest
Warning

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

Go to latest
Published: Jan 13, 2026 License: MIT Imports: 4 Imported by: 0

README

Message Package

The message package provides HTML templating functionality for rendering dynamic web pages.

Usage

Basic Error Page
import (
    "net/http"
    "github.com/agentuity/go-common/message"
)

func handler(w http.ResponseWriter, r *http.Request) {
    message.NotFoundResponse(w)
}
Custom Error Page
import (
    "net/http"
    "github.com/agentuity/go-common/message"
)

func handler(w http.ResponseWriter, r *http.Request) {
    message.CustomErrorResponse(w, "Custom Error", "Something went wrong", "Error details here", http.StatusBadRequest)
}
Using a Template Writer
import (
    "net/http"
    "github.com/agentuity/go-common/message"
)

func handler(w http.ResponseWriter, r *http.Request) {
    tw := message.NewTemplateWriter()
    data := message.TemplateData{
        Title:        "Page Title",
        Description:  "Page description",
        HeaderTitle:  "Header Title",
        Message:      "Page message",
        ShowDetails:  true,
        ErrorDetails: "Error details",
    }
    tw.Write(w, data, http.StatusOK)
}
Custom Template
import (
    "net/http"
    "github.com/agentuity/go-common/message"
)

func handler(w http.ResponseWriter, r *http.Request) {
    customTemplate := "<!DOCTYPE html><html>...</html>"
    tmpl, err := message.WithCustomTemplate(customTemplate)
    if err != nil {
        // Handle error
    }
    
    tw := message.NewTemplateWriter().WithTemplate(tmpl)
    data := message.TemplateData{
        Title:        "Custom Page",
        HeaderTitle:  "Custom Header",
        Message:      "Custom message",
    }
    tw.Write(w, data, http.StatusOK)
}

Documentation

Index

Constants

This section is empty.

Variables

View Source
var DefaultErrorTemplate = template.Must(template.New("error").Funcs(template.FuncMap{
	"safeHTML": safeHTML,
}).Parse(defaultTemplate))

Functions

func CustomErrorResponse

func CustomErrorResponse(w http.ResponseWriter, title string, message string, details string, statusCode int) error

func ErrorResponse

func ErrorResponse(w http.ResponseWriter, title string, message string, details string, statusCode int) error

func ErrorResponseWithHTML

func ErrorResponseWithHTML(w http.ResponseWriter, title string, htmlMessage string, details string, statusCode int) error

func NotFoundResponse

func NotFoundResponse(w http.ResponseWriter) error

func RenderErrorPage

func RenderErrorPage(title, message, details string) (string, error)

func RenderErrorPageWithHTML

func RenderErrorPageWithHTML(title, htmlMessage, details string) (string, error)

func RenderHTML

func RenderHTML(data TemplateData) (string, error)

func RenderHTMLWithTemplate

func RenderHTMLWithTemplate(tmpl *template.Template, data TemplateData) (string, error)

func ServerErrorResponse

func ServerErrorResponse(w http.ResponseWriter, err error) error

func WithCustomTemplate

func WithCustomTemplate(tmplContent string) (*template.Template, error)

Types

type TemplateData

type TemplateData struct {
	Title        string // Page title in <title> tag
	Description  string // Meta description
	HeaderTitle  string // H1 title displayed on the page
	Message      string // Message text displayed below the title (escaped)
	RawHTML      string // Raw HTML message content (not escaped)
	ShowDetails  bool   // Whether to show the details section
	ErrorDetails string // Error details to display in the details section
}

type TemplateWriter

type TemplateWriter struct {
	Template *template.Template
}

func NewTemplateWriter

func NewTemplateWriter() *TemplateWriter

func (*TemplateWriter) RenderToString

func (tw *TemplateWriter) RenderToString(data TemplateData) (string, error)

func (*TemplateWriter) WithTemplate

func (tw *TemplateWriter) WithTemplate(tmpl *template.Template) *TemplateWriter

func (*TemplateWriter) Write

func (tw *TemplateWriter) Write(w http.ResponseWriter, data TemplateData, statusCode int) error

Jump to

Keyboard shortcuts

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