markdown.go

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