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(sty *styles.Styles, width int) *glamour.TermRenderer {
11 r, _ := glamour.NewTermRenderer(
12 glamour.WithStyles(sty.Markdown),
13 glamour.WithWordWrap(width),
14 )
15 return r
16}
17
18// PlainMarkdownRenderer returns a glamour [glamour.TermRenderer] with no colors
19// (plain text with structure) and the given width.
20func PlainMarkdownRenderer(sty *styles.Styles, width int) *glamour.TermRenderer {
21 r, _ := glamour.NewTermRenderer(
22 glamour.WithStyles(sty.PlainMarkdown),
23 glamour.WithWordWrap(width),
24 )
25 return r
26}