htmx

package
v0.9.0 Latest Latest
Warning

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

Go to latest
Published: Jun 7, 2026 License: MIT Imports: 6 Imported by: 0

Documentation

Overview

Package htmx adapts Ohm HTML views to htmx request and response headers.

Index

Constants

View Source
const (
	// HeaderBoosted identifies requests made through hx-boost.
	HeaderBoosted = "HX-Boosted"
	// HeaderCurrentURL carries the browser's current URL.
	HeaderCurrentURL = "HX-Current-URL"
	// HeaderHistoryRestoreRequest identifies a history cache miss restore.
	HeaderHistoryRestoreRequest = "HX-History-Restore-Request"
	// HeaderPrompt carries the user response to hx-prompt.
	HeaderPrompt = "HX-Prompt"
	// HeaderRequest identifies htmx requests.
	HeaderRequest = "HX-Request"
	// HeaderTarget carries the target element id when one exists.
	HeaderTarget = "HX-Target"
	// HeaderTrigger carries the triggering id on requests and events on responses.
	HeaderTrigger = "HX-Trigger"
	// HeaderTriggerName carries the name of the triggering element when one exists.
	HeaderTriggerName = "HX-Trigger-Name"

	// HeaderLocation performs a client-side redirect without a full reload.
	HeaderLocation = "HX-Location"
	// HeaderPushURL pushes a URL into the browser history stack.
	HeaderPushURL = "HX-Push-Url"
	// HeaderRedirect redirects the browser to a new location.
	HeaderRedirect = "HX-Redirect"
	// HeaderRefresh asks the browser to perform a full refresh.
	HeaderRefresh = "HX-Refresh"
	// HeaderReplaceURL replaces the current URL in the browser history stack.
	HeaderReplaceURL = "HX-Replace-Url"
	// HeaderReselect selects part of the response for swapping.
	HeaderReselect = "HX-Reselect"
	// HeaderReswap overrides the swap behavior.
	HeaderReswap = "HX-Reswap"
	// HeaderRetarget overrides the response target.
	HeaderRetarget = "HX-Retarget"
	// HeaderTriggerAfterSettle triggers client events after settle.
	HeaderTriggerAfterSettle = "HX-Trigger-After-Settle"
	// HeaderTriggerAfterSwap triggers client events after swap.
	HeaderTriggerAfterSwap = "HX-Trigger-After-Swap"
)

Variables

View Source
var ErrUnknownTarget = errors.New("unknown htmx target")

ErrUnknownTarget identifies an htmx request target with no matching fragment.

Functions

func Render

func Render(req *ohm.Request, status int, view ohm.HTMLView, opts ...Option) error

Render writes either the full HTML view or a matching htmx fragment.

func Select

func Select(r *http.Request, view ohm.HTMLView, opts ...Option) (ohm.HTML, error)

Select returns the HTML that should satisfy r.

func SetLocation

func SetLocation(w http.ResponseWriter, path string)

SetLocation sets HX-Location.

func SetPushURL

func SetPushURL(w http.ResponseWriter, url string)

SetPushURL sets HX-Push-Url.

func SetRedirect

func SetRedirect(w http.ResponseWriter, url string)

SetRedirect sets HX-Redirect.

func SetRefresh

func SetRefresh(w http.ResponseWriter)

SetRefresh sets HX-Refresh to true.

func SetReplaceURL

func SetReplaceURL(w http.ResponseWriter, url string)

SetReplaceURL sets HX-Replace-Url.

func SetReselect

func SetReselect(w http.ResponseWriter, selector string)

SetReselect sets HX-Reselect.

func SetReswap

func SetReswap(w http.ResponseWriter, swap string)

SetReswap sets HX-Reswap.

func SetRetarget

func SetRetarget(w http.ResponseWriter, selector string)

SetRetarget sets HX-Retarget.

func SetTrigger

func SetTrigger(w http.ResponseWriter, event string)

SetTrigger sets HX-Trigger.

func SetTriggerAfterSettle

func SetTriggerAfterSettle(w http.ResponseWriter, event string)

SetTriggerAfterSettle sets HX-Trigger-After-Settle.

func SetTriggerAfterSwap

func SetTriggerAfterSwap(w http.ResponseWriter, event string)

SetTriggerAfterSwap sets HX-Trigger-After-Swap.

Types

type Option

type Option func(*renderOptions)

Option configures htmx rendering.

func WithSingleFragmentFallback

func WithSingleFragmentFallback() Option

WithSingleFragmentFallback renders the only fragment for targetless htmx requests.

type Request

type Request struct {
	// contains filtered or unexported fields
}

Request describes the htmx-specific request headers Ohm uses.

func ParseRequest

func ParseRequest(r *http.Request) Request

ParseRequest extracts htmx request information from r.

func (Request) CurrentURL

func (r Request) CurrentURL() string

CurrentURL returns the browser's current URL, when htmx sent one.

func (Request) IsBoosted

func (r Request) IsBoosted() bool

IsBoosted reports whether the request came from hx-boost.

func (Request) IsHistoryRestore

func (r Request) IsHistoryRestore() bool

IsHistoryRestore reports whether htmx is restoring a history cache miss.

func (Request) IsRequest

func (r Request) IsRequest() bool

IsRequest reports whether the request came from htmx.

func (Request) Prompt

func (r Request) Prompt() string

Prompt returns the user response to hx-prompt, when present.

func (Request) Target

func (r Request) Target() string

Target returns the target element id, when htmx sent one.

func (Request) Trigger

func (r Request) Trigger() string

Trigger returns the triggering element id, when htmx sent one.

func (Request) TriggerName

func (r Request) TriggerName() string

TriggerName returns the triggering element name, when htmx sent one.

type UnknownTargetError

type UnknownTargetError struct {
	// Target is the requested htmx target.
	Target string
	// KnownTargets is the set of fragment targets declared by the view.
	KnownTargets []string
}

UnknownTargetError describes an htmx target that does not match a fragment.

func (*UnknownTargetError) Error

func (e *UnknownTargetError) Error() string

Error returns a human-readable unknown target error.

func (*UnknownTargetError) Is

func (e *UnknownTargetError) Is(target error) bool

Is reports whether target matches ErrUnknownTarget.

Jump to

Keyboard shortcuts

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