Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ImageProtocolSupported ¶ added in v0.18.0
func ImageProtocolSupported() bool
ImageProtocolSupported checks if any supported image protocol terminal is detected.
func RenderImageToStdout ¶ added in v0.21.1
func RenderImageToStdout(placement *ImagePlacement, screenRow int)
RenderImageToStdout writes an image directly to stdout at the given screen row using cursor positioning. This bypasses bubbletea's cell-based renderer which cannot handle graphics protocol escape sequences.
For Kitty-protocol terminals, images are uploaded once and then displayed by ID on subsequent calls, making scroll rendering nearly instant.
Types ¶
type ImagePlacement ¶ added in v0.21.1
type ImagePlacement struct {
Line int // Line number in the processed body text where the image starts
Base64 string // Base64-encoded image data (PNG)
Rows int // Number of terminal rows the image occupies
Uploaded bool // Whether the image has been uploaded to the terminal via Kitty ID
ID uint32 // Kitty image ID for display-by-reference
}
ImagePlacement holds the data needed to render an image at a specific line in the email body. Images are rendered directly to stdout (bypassing bubbletea's cell-based renderer which cannot handle graphics protocols).
func ProcessBody ¶
func ProcessBody(rawBody string, h1Style, h2Style, bodyStyle lipgloss.Style, disableImages bool) (string, []ImagePlacement, error)
ProcessBody takes a raw email body, decodes it, and formats it as plain text with terminal hyperlinks.
func ProcessBodyWithInline ¶ added in v0.11.0
func ProcessBodyWithInline(rawBody string, inline []InlineImage, h1Style, h2Style, bodyStyle lipgloss.Style, disableImages bool) (string, []ImagePlacement, error)
ProcessBodyWithInline renders the body and resolves CID inline images when provided. Returns the rendered body text, image placements for out-of-band rendering, and any error.