markdown

package
v1.201.0 Latest Latest
Warning

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

Go to latest
Published: Dec 10, 2025 License: Apache-2.0 Imports: 13 Imported by: 0

Documentation

Index

Constants

View Source
const (
	DefaultLightGray      = "#e7e5e4" // Light gray for primary text.
	DefaultMidGray        = "#57534e" // Mid gray for secondary text.
	DefaultDarkGray       = "#030014" // Very dark gray (not used for backgrounds).
	DefaultCodeBackground = "#2F2E36" // Medium gray for code block backgrounds (from Fang) - RGB(47,46,54).
	DefaultCodeBgANSI256  = "236"     // ANSI256 color 236 = RGB(48,48,48) - closest to #2F2E36.
	DefaultPurple         = "#9B51E0" // Purple accent (existing Atmos purple).
	DefaultWhite          = "#FFFFFF" // White for emphasis.
)

Default color constants for code blocks.

Variables

View Source
var (
	White       = "#FFFFFF"
	Purple      = "#9B51E0"
	Blue        = "#00A3E0"
	Gray        = "#4A5568"
	Green       = "#48BB78"
	Yellow      = "#ECC94B"
	Red         = "#F56565"
	LightBlue   = "#4299E1"
	BlueLight   = "#63B3ED"
	GrayLight   = "#718096"
	GrayMid     = "#A0AEC0"
	GrayDark    = "#2D3748"
	GrayBorder  = "#CBD5E0"
	OffWhite    = "#F7FAFC"
	DarkSlate   = "#1A202C"
	GreenLight  = "#68D391"
	YellowLight = "#F6E05E"
	RedLight    = "#FC8181"
)

Base colors used throughout the application.

View Source
var Colors = struct {
	Primary    lipgloss.AdaptiveColor
	Secondary  lipgloss.AdaptiveColor
	Success    lipgloss.AdaptiveColor
	Warning    lipgloss.AdaptiveColor
	Error      lipgloss.AdaptiveColor
	Info       lipgloss.AdaptiveColor
	Subtle     lipgloss.AdaptiveColor
	HeaderBg   lipgloss.AdaptiveColor
	Border     lipgloss.AdaptiveColor
	Background lipgloss.AdaptiveColor
}{
	Primary:    lipgloss.AdaptiveColor{Light: Blue, Dark: Blue},
	Secondary:  lipgloss.AdaptiveColor{Light: Gray, Dark: GrayMid},
	Success:    lipgloss.AdaptiveColor{Light: Green, Dark: GreenLight},
	Warning:    lipgloss.AdaptiveColor{Light: Yellow, Dark: YellowLight},
	Error:      lipgloss.AdaptiveColor{Light: Red, Dark: RedLight},
	Info:       lipgloss.AdaptiveColor{Light: LightBlue, Dark: BlueLight},
	Subtle:     lipgloss.AdaptiveColor{Light: GrayLight, Dark: GrayMid},
	HeaderBg:   lipgloss.AdaptiveColor{Light: GrayDark, Dark: Gray},
	Border:     lipgloss.AdaptiveColor{Light: GrayBorder, Dark: Gray},
	Background: lipgloss.AdaptiveColor{Light: OffWhite, Dark: DarkSlate},
}

Colors defines the color scheme for markdown rendering.

Functions

func GetDefaultStyle

func GetDefaultStyle(atmosConfig schema.AtmosConfiguration) ([]byte, error)

GetDefaultStyle returns the markdown style configuration from atmos.yaml settings or falls back to built-in defaults if not configured.

func GetHelpStyle added in v1.200.0

func GetHelpStyle() ([]byte, error)

GetHelpStyle returns a markdown style configuration optimized for command help text. This uses the Cloud Posse color scheme (grayscale + purple accent) with transparent backgrounds.

func RenderCodeBlock added in v1.200.0

func RenderCodeBlock(renderer *lipgloss.Renderer, content string, terminalWidth int) string

RenderCodeBlock renders a code block with Fang-style syntax highlighting. This avoids nested backgrounds by doing custom parsing instead of using Glamour. It follows Fang's approach: style content first, measure it, then apply background.

func SplitMarkdownContent

func SplitMarkdownContent(content string) []string

SplitMarkdownContent splits markdown content into details and suggestion parts.

Types

type CodeblockStyle added in v1.200.0

type CodeblockStyle struct {
	Base    lipgloss.Style
	Text    lipgloss.Style
	Comment lipgloss.Style
	Program lipgloss.Style
	Flag    lipgloss.Style
	Arg     lipgloss.Style
}

CodeblockStyle defines the styling for code blocks in help text.

func NewCodeblockStyle added in v1.200.0

func NewCodeblockStyle(renderer *lipgloss.Renderer) CodeblockStyle

NewCodeblockStyle creates a new code block style with Cloud Posse colors. Uses the provided renderer to ensure correct color profile. Following Fang's approach: ALL styles have the SAME background to avoid nested backgrounds.

type Option

type Option func(*Renderer)

Option is a function that configures the renderer.

func WithWidth

func WithWidth(width uint) Option

WithWidth sets the word wrap width for the renderer.

type Renderer

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

Renderer is a markdown renderer using Glamour.

func NewHelpRenderer added in v1.200.0

func NewHelpRenderer(atmosConfig *schema.AtmosConfiguration, opts ...Option) (*Renderer, error)

NewHelpRenderer creates a new Markdown renderer specifically for command help text. This uses the Cloud Posse color scheme (grayscale + purple) with transparent backgrounds.

func NewRenderer

func NewRenderer(atmosConfig schema.AtmosConfiguration, opts ...Option) (*Renderer, error)

NewRenderer creates a new Markdown renderer with the given options.

func NewTerminalMarkdownRenderer added in v1.162.0

func NewTerminalMarkdownRenderer(atmosConfig schema.AtmosConfiguration) (*Renderer, error)

func (*Renderer) Render

func (r *Renderer) Render(content string) (string, error)

Render renders markdown content to ANSI styled text.

func (*Renderer) RenderAscii added in v1.162.0

func (r *Renderer) RenderAscii(content string) (string, error)

func (*Renderer) RenderAsciiWithoutWordWrap added in v1.165.0

func (r *Renderer) RenderAsciiWithoutWordWrap(content string) (string, error)

func (*Renderer) RenderError

func (r *Renderer) RenderError(title, details, suggestion string) (string, error)

RenderError renders an error message with specific styling.

func (*Renderer) RenderErrorf added in v1.162.0

func (r *Renderer) RenderErrorf(content string, args ...interface{}) (string, error)

RenderErrorf renders an error message with specific styling.

func (*Renderer) RenderSuccess

func (r *Renderer) RenderSuccess(title, details string) (string, error)

RenderSuccess renders a success message with specific styling.

func (*Renderer) RenderWithoutWordWrap added in v1.165.0

func (r *Renderer) RenderWithoutWordWrap(content string) (string, error)

func (*Renderer) RenderWorkflow

func (r *Renderer) RenderWorkflow(content string) (string, error)

RenderWorkflow renders workflow documentation with specific styling.

Jump to

Keyboard shortcuts

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