markdown.go

 1package common
 2
 3import (
 4	"charm.land/glamour/v2"
 5	"github.com/charmbracelet/crush/internal/ui/styles"
 6)
 7
 8// MarkdownRenderer returns a glamour [glamour.TermRenderer] configured with
 9// the given styles and width.
10func MarkdownRenderer(t *styles.Styles, width int) *glamour.TermRenderer {
11	r, _ := glamour.NewTermRenderer(
12		glamour.WithStyles(t.Markdown),
13		glamour.WithWordWrap(width),
14	)
15	return r
16}
17
18// PlainMarkdownRenderer returns a glamour [glamour.TermRenderer] with muted
19// colors on a subtle background, for thinking content.
20func PlainMarkdownRenderer(t *styles.Styles, width int) *glamour.TermRenderer {
21	r, _ := glamour.NewTermRenderer(
22		glamour.WithStyles(t.PlainMarkdown),
23		glamour.WithWordWrap(width),
24	)
25	return r
26}