Documentation ¶
Index ¶
- Constants
- Variables
- func Render(in string, stylePath string) (string, error)
- func RenderBytes(in []byte, stylePath string) ([]byte, error)
- func RenderWithEnvironmentConfig(in string) (string, error)
- type TermRenderer
- type TermRendererOption
- func WithAutoStyle() TermRendererOption
- func WithBaseURL(baseURL string) TermRendererOption
- func WithColorProfile(profile termenv.Profile) TermRendererOption
- func WithEmoji() TermRendererOption
- func WithEnvironmentConfig() TermRendererOption
- func WithPreservedNewLines() TermRendererOption
- func WithStandardStyle(style string) TermRendererOption
- func WithStylePath(stylePath string) TermRendererOption
- func WithStyles(styles ansi.StyleConfig) TermRendererOption
- func WithStylesFromJSONBytes(jsonBytes []byte) TermRendererOption
- func WithStylesFromJSONFile(filename string) TermRendererOption
- func WithWordWrap(wordWrap int) TermRendererOption
Constants ¶
const ( AsciiStyle = "ascii" AutoStyle = "auto" DarkStyle = "dark" DraculaStyle = "dracula" LightStyle = "light" NoTTYStyle = "notty" PinkStyle = "pink" )
Default styles.
Variables ¶
var ( // ASCIIStyleConfig uses only ASCII characters. ASCIIStyleConfig = ansi.StyleConfig{ Document: ansi.StyleBlock{ StylePrimitive: ansi.StylePrimitive{ BlockPrefix: "\n", BlockSuffix: "\n", }, Margin: uintPtr(2), }, BlockQuote: ansi.StyleBlock{ StylePrimitive: ansi.StylePrimitive{}, Indent: uintPtr(1), IndentToken: stringPtr("| "), }, Paragraph: ansi.StyleBlock{ StylePrimitive: ansi.StylePrimitive{}, }, List: ansi.StyleList{ StyleBlock: ansi.StyleBlock{ StylePrimitive: ansi.StylePrimitive{}, }, LevelIndent: 4, }, Heading: ansi.StyleBlock{ StylePrimitive: ansi.StylePrimitive{ BlockSuffix: "\n", }, }, H1: ansi.StyleBlock{ StylePrimitive: ansi.StylePrimitive{ Prefix: "# ", }, }, H2: ansi.StyleBlock{ StylePrimitive: ansi.StylePrimitive{ Prefix: "## ", }, }, H3: ansi.StyleBlock{ StylePrimitive: ansi.StylePrimitive{ Prefix: "### ", }, }, H4: ansi.StyleBlock{ StylePrimitive: ansi.StylePrimitive{ Prefix: "#### ", }, }, H5: ansi.StyleBlock{ StylePrimitive: ansi.StylePrimitive{ Prefix: "##### ", }, }, H6: ansi.StyleBlock{ StylePrimitive: ansi.StylePrimitive{ Prefix: "###### ", }, }, Strikethrough: ansi.StylePrimitive{ BlockPrefix: "~~", BlockSuffix: "~~", }, Emph: ansi.StylePrimitive{ BlockPrefix: "*", BlockSuffix: "*", }, Strong: ansi.StylePrimitive{ BlockPrefix: "**", BlockSuffix: "**", }, HorizontalRule: ansi.StylePrimitive{ Format: "\n--------\n", }, Item: ansi.StylePrimitive{ BlockPrefix: "• ", }, Enumeration: ansi.StylePrimitive{ BlockPrefix: ". ", }, Task: ansi.StyleTask{ Ticked: "[x] ", Unticked: "[ ] ", }, ImageText: ansi.StylePrimitive{ Format: "Image: {{.text}} →", }, Code: ansi.StyleBlock{ StylePrimitive: ansi.StylePrimitive{ BlockPrefix: "`", BlockSuffix: "`", }, }, CodeBlock: ansi.StyleCodeBlock{ StyleBlock: ansi.StyleBlock{ Margin: uintPtr(2), }, }, Table: ansi.StyleTable{ CenterSeparator: stringPtr("+"), ColumnSeparator: stringPtr("|"), RowSeparator: stringPtr("-"), }, DefinitionDescription: ansi.StylePrimitive{ BlockPrefix: "\n* ", }, } // DarkStyleConfig is the default dark style. DarkStyleConfig = ansi.StyleConfig{ Document: ansi.StyleBlock{ StylePrimitive: ansi.StylePrimitive{ BlockPrefix: "\n", BlockSuffix: "\n", Color: stringPtr("252"), }, Margin: uintPtr(2), }, BlockQuote: ansi.StyleBlock{ StylePrimitive: ansi.StylePrimitive{}, Indent: uintPtr(1), IndentToken: stringPtr("│ "), }, List: ansi.StyleList{ LevelIndent: 2, }, Heading: ansi.StyleBlock{ StylePrimitive: ansi.StylePrimitive{ BlockSuffix: "\n", Color: stringPtr("39"), Bold: boolPtr(true), }, }, H1: ansi.StyleBlock{ StylePrimitive: ansi.StylePrimitive{ Prefix: " ", Suffix: " ", Color: stringPtr("228"), BackgroundColor: stringPtr("63"), Bold: boolPtr(true), }, }, H2: ansi.StyleBlock{ StylePrimitive: ansi.StylePrimitive{ Prefix: "## ", }, }, H3: ansi.StyleBlock{ StylePrimitive: ansi.StylePrimitive{ Prefix: "### ", }, }, H4: ansi.StyleBlock{ StylePrimitive: ansi.StylePrimitive{ Prefix: "#### ", }, }, H5: ansi.StyleBlock{ StylePrimitive: ansi.StylePrimitive{ Prefix: "##### ", }, }, H6: ansi.StyleBlock{ StylePrimitive: ansi.StylePrimitive{ Prefix: "###### ", Color: stringPtr("35"), Bold: boolPtr(false), }, }, Strikethrough: ansi.StylePrimitive{ CrossedOut: boolPtr(true), }, Emph: ansi.StylePrimitive{ Italic: boolPtr(true), }, Strong: ansi.StylePrimitive{ Bold: boolPtr(true), }, HorizontalRule: ansi.StylePrimitive{ Color: stringPtr("240"), Format: "\n--------\n", }, Item: ansi.StylePrimitive{ BlockPrefix: "• ", }, Enumeration: ansi.StylePrimitive{ BlockPrefix: ". ", }, Task: ansi.StyleTask{ StylePrimitive: ansi.StylePrimitive{}, Ticked: "[✓] ", Unticked: "[ ] ", }, Link: ansi.StylePrimitive{ Color: stringPtr("30"), Underline: boolPtr(true), }, LinkText: ansi.StylePrimitive{ Color: stringPtr("35"), Bold: boolPtr(true), }, Image: ansi.StylePrimitive{ Color: stringPtr("212"), Underline: boolPtr(true), }, ImageText: ansi.StylePrimitive{ Color: stringPtr("243"), Format: "Image: {{.text}} →", }, Code: ansi.StyleBlock{ StylePrimitive: ansi.StylePrimitive{ Prefix: " ", Suffix: " ", Color: stringPtr("203"), BackgroundColor: stringPtr("236"), }, }, CodeBlock: ansi.StyleCodeBlock{ StyleBlock: ansi.StyleBlock{ StylePrimitive: ansi.StylePrimitive{ Color: stringPtr("244"), }, Margin: uintPtr(2), }, Chroma: &ansi.Chroma{ Text: ansi.StylePrimitive{ Color: stringPtr("#C4C4C4"), }, Error: ansi.StylePrimitive{ Color: stringPtr("#F1F1F1"), BackgroundColor: stringPtr("#F05B5B"), }, Comment: ansi.StylePrimitive{ Color: stringPtr("#676767"), }, CommentPreproc: ansi.StylePrimitive{ Color: stringPtr("#FF875F"), }, Keyword: ansi.StylePrimitive{ Color: stringPtr("#00AAFF"), }, KeywordReserved: ansi.StylePrimitive{ Color: stringPtr("#FF5FD2"), }, KeywordNamespace: ansi.StylePrimitive{ Color: stringPtr("#FF5F87"), }, KeywordType: ansi.StylePrimitive{ Color: stringPtr("#6E6ED8"), }, Operator: ansi.StylePrimitive{ Color: stringPtr("#EF8080"), }, Punctuation: ansi.StylePrimitive{ Color: stringPtr("#E8E8A8"), }, Name: ansi.StylePrimitive{ Color: stringPtr("#C4C4C4"), }, NameBuiltin: ansi.StylePrimitive{ Color: stringPtr("#FF8EC7"), }, NameTag: ansi.StylePrimitive{ Color: stringPtr("#B083EA"), }, NameAttribute: ansi.StylePrimitive{ Color: stringPtr("#7A7AE6"), }, NameClass: ansi.StylePrimitive{ Color: stringPtr("#F1F1F1"), Underline: boolPtr(true), Bold: boolPtr(true), }, NameDecorator: ansi.StylePrimitive{ Color: stringPtr("#FFFF87"), }, NameFunction: ansi.StylePrimitive{ Color: stringPtr("#00D787"), }, LiteralNumber: ansi.StylePrimitive{ Color: stringPtr("#6EEFC0"), }, LiteralString: ansi.StylePrimitive{ Color: stringPtr("#C69669"), }, LiteralStringEscape: ansi.StylePrimitive{ Color: stringPtr("#AFFFD7"), }, GenericDeleted: ansi.StylePrimitive{ Color: stringPtr("#FD5B5B"), }, GenericEmph: ansi.StylePrimitive{ Italic: boolPtr(true), }, GenericInserted: ansi.StylePrimitive{ Color: stringPtr("#00D787"), }, GenericStrong: ansi.StylePrimitive{ Bold: boolPtr(true), }, GenericSubheading: ansi.StylePrimitive{ Color: stringPtr("#777777"), }, Background: ansi.StylePrimitive{ BackgroundColor: stringPtr("#373737"), }, }, }, Table: ansi.StyleTable{ StyleBlock: ansi.StyleBlock{ StylePrimitive: ansi.StylePrimitive{}, }, CenterSeparator: stringPtr("┼"), ColumnSeparator: stringPtr("│"), RowSeparator: stringPtr("─"), }, DefinitionDescription: ansi.StylePrimitive{ BlockPrefix: "\n🠶 ", }, } // LightStyleConfig is the default light style. LightStyleConfig = ansi.StyleConfig{ Document: ansi.StyleBlock{ StylePrimitive: ansi.StylePrimitive{ BlockPrefix: "\n", BlockSuffix: "\n", Color: stringPtr("234"), }, Margin: uintPtr(2), }, BlockQuote: ansi.StyleBlock{ StylePrimitive: ansi.StylePrimitive{}, Indent: uintPtr(1), IndentToken: stringPtr("│ "), }, List: ansi.StyleList{ LevelIndent: 2, }, Heading: ansi.StyleBlock{ StylePrimitive: ansi.StylePrimitive{ BlockSuffix: "\n", Color: stringPtr("27"), Bold: boolPtr(true), }, }, H1: ansi.StyleBlock{ StylePrimitive: ansi.StylePrimitive{ Prefix: " ", Suffix: " ", Color: stringPtr("228"), BackgroundColor: stringPtr("63"), Bold: boolPtr(true), }, }, H2: ansi.StyleBlock{ StylePrimitive: ansi.StylePrimitive{ Prefix: "## ", }, }, H3: ansi.StyleBlock{ StylePrimitive: ansi.StylePrimitive{ Prefix: "### ", }, }, H4: ansi.StyleBlock{ StylePrimitive: ansi.StylePrimitive{ Prefix: "#### ", }, }, H5: ansi.StyleBlock{ StylePrimitive: ansi.StylePrimitive{ Prefix: "##### ", }, }, H6: ansi.StyleBlock{ StylePrimitive: ansi.StylePrimitive{ Prefix: "###### ", Bold: boolPtr(false), }, }, Strikethrough: ansi.StylePrimitive{ CrossedOut: boolPtr(true), }, Emph: ansi.StylePrimitive{ Italic: boolPtr(true), }, Strong: ansi.StylePrimitive{ Bold: boolPtr(true), }, HorizontalRule: ansi.StylePrimitive{ Color: stringPtr("249"), Format: "\n--------\n", }, Item: ansi.StylePrimitive{ BlockPrefix: "• ", }, Enumeration: ansi.StylePrimitive{ BlockPrefix: ". ", }, Task: ansi.StyleTask{ StylePrimitive: ansi.StylePrimitive{}, Ticked: "[✓] ", Unticked: "[ ] ", }, Link: ansi.StylePrimitive{ Color: stringPtr("36"), Underline: boolPtr(true), }, LinkText: ansi.StylePrimitive{ Color: stringPtr("29"), Bold: boolPtr(true), }, Image: ansi.StylePrimitive{ Color: stringPtr("205"), Underline: boolPtr(true), }, ImageText: ansi.StylePrimitive{ Color: stringPtr("243"), Format: "Image: {{.text}} →", }, Code: ansi.StyleBlock{ StylePrimitive: ansi.StylePrimitive{ Prefix: " ", Suffix: " ", Color: stringPtr("203"), BackgroundColor: stringPtr("254"), }, }, CodeBlock: ansi.StyleCodeBlock{ StyleBlock: ansi.StyleBlock{ StylePrimitive: ansi.StylePrimitive{ Color: stringPtr("242"), }, Margin: uintPtr(2), }, Chroma: &ansi.Chroma{ Text: ansi.StylePrimitive{ Color: stringPtr("#2A2A2A"), }, Error: ansi.StylePrimitive{ Color: stringPtr("#F1F1F1"), BackgroundColor: stringPtr("#FF5555"), }, Comment: ansi.StylePrimitive{ Color: stringPtr("#8D8D8D"), }, CommentPreproc: ansi.StylePrimitive{ Color: stringPtr("#FF875F"), }, Keyword: ansi.StylePrimitive{ Color: stringPtr("#279EFC"), }, KeywordReserved: ansi.StylePrimitive{ Color: stringPtr("#FF5FD2"), }, KeywordNamespace: ansi.StylePrimitive{ Color: stringPtr("#FB406F"), }, KeywordType: ansi.StylePrimitive{ Color: stringPtr("#7049C2"), }, Operator: ansi.StylePrimitive{ Color: stringPtr("#FF2626"), }, Punctuation: ansi.StylePrimitive{ Color: stringPtr("#FA7878"), }, NameBuiltin: ansi.StylePrimitive{ Color: stringPtr("#0A1BB1"), }, NameTag: ansi.StylePrimitive{ Color: stringPtr("#581290"), }, NameAttribute: ansi.StylePrimitive{ Color: stringPtr("#8362CB"), }, NameClass: ansi.StylePrimitive{ Color: stringPtr("#212121"), Underline: boolPtr(true), Bold: boolPtr(true), }, NameConstant: ansi.StylePrimitive{ Color: stringPtr("#581290"), }, NameDecorator: ansi.StylePrimitive{ Color: stringPtr("#A3A322"), }, NameFunction: ansi.StylePrimitive{ Color: stringPtr("#019F57"), }, LiteralNumber: ansi.StylePrimitive{ Color: stringPtr("#22CCAE"), }, LiteralString: ansi.StylePrimitive{ Color: stringPtr("#7E5B38"), }, LiteralStringEscape: ansi.StylePrimitive{ Color: stringPtr("#00AEAE"), }, GenericDeleted: ansi.StylePrimitive{ Color: stringPtr("#FD5B5B"), }, GenericEmph: ansi.StylePrimitive{ Italic: boolPtr(true), }, GenericInserted: ansi.StylePrimitive{ Color: stringPtr("#00D787"), }, GenericStrong: ansi.StylePrimitive{ Bold: boolPtr(true), }, GenericSubheading: ansi.StylePrimitive{ Color: stringPtr("#777777"), }, Background: ansi.StylePrimitive{ BackgroundColor: stringPtr("#373737"), }, }, }, Table: ansi.StyleTable{ StyleBlock: ansi.StyleBlock{ StylePrimitive: ansi.StylePrimitive{}, }, CenterSeparator: stringPtr("┼"), ColumnSeparator: stringPtr("│"), RowSeparator: stringPtr("─"), }, DefinitionDescription: ansi.StylePrimitive{ BlockPrefix: "\n🠶 ", }, } // PinkStyleConfig is the default pink style. PinkStyleConfig = ansi.StyleConfig{ Document: ansi.StyleBlock{ Margin: uintPtr(2), }, BlockQuote: ansi.StyleBlock{ Indent: uintPtr(1), IndentToken: stringPtr("│ "), }, List: ansi.StyleList{ LevelIndent: 0, }, Heading: ansi.StyleBlock{ StylePrimitive: ansi.StylePrimitive{ BlockSuffix: "\n", Color: stringPtr("212"), Bold: boolPtr(true), }, }, H1: ansi.StyleBlock{ StylePrimitive: ansi.StylePrimitive{ BlockSuffix: "\n", BlockPrefix: "\n", Prefix: "", }, }, H2: ansi.StyleBlock{ StylePrimitive: ansi.StylePrimitive{ Prefix: "▌ ", }, }, H3: ansi.StyleBlock{ StylePrimitive: ansi.StylePrimitive{ Prefix: "┃ ", }, }, H4: ansi.StyleBlock{ StylePrimitive: ansi.StylePrimitive{ Prefix: "│ ", }, }, H5: ansi.StyleBlock{ StylePrimitive: ansi.StylePrimitive{ Prefix: "┆ ", }, }, H6: ansi.StyleBlock{ StylePrimitive: ansi.StylePrimitive{ Prefix: "┊ ", Bold: boolPtr(false), }, }, Text: ansi.StylePrimitive{}, Strikethrough: ansi.StylePrimitive{ CrossedOut: boolPtr(true), }, Emph: ansi.StylePrimitive{ Italic: boolPtr(true), }, Strong: ansi.StylePrimitive{ Bold: boolPtr(true), }, HorizontalRule: ansi.StylePrimitive{ Color: stringPtr("212"), Format: "\n──────\n", }, Item: ansi.StylePrimitive{ BlockPrefix: "• ", }, Enumeration: ansi.StylePrimitive{ BlockPrefix: ". ", }, Task: ansi.StyleTask{ Ticked: "[✓] ", Unticked: "[ ] ", }, Link: ansi.StylePrimitive{ Color: stringPtr("99"), Underline: boolPtr(true), }, LinkText: ansi.StylePrimitive{ Bold: boolPtr(true), }, Image: ansi.StylePrimitive{ Underline: boolPtr(true), }, ImageText: ansi.StylePrimitive{ Format: "Image: {{.text}}", }, Code: ansi.StyleBlock{ StylePrimitive: ansi.StylePrimitive{ Color: stringPtr("212"), BackgroundColor: stringPtr("236"), Prefix: " ", Suffix: " ", }, }, Table: ansi.StyleTable{ CenterSeparator: stringPtr("┼"), ColumnSeparator: stringPtr("│"), RowSeparator: stringPtr("─"), }, DefinitionList: ansi.StyleBlock{}, DefinitionTerm: ansi.StylePrimitive{}, DefinitionDescription: ansi.StylePrimitive{ BlockPrefix: "\n🠶 ", }, HTMLBlock: ansi.StyleBlock{}, HTMLSpan: ansi.StyleBlock{}, } // NoTTYStyleConfig is the default notty style. NoTTYStyleConfig = ansi.StyleConfig{ Document: ansi.StyleBlock{ StylePrimitive: ansi.StylePrimitive{ BlockPrefix: "\n", BlockSuffix: "\n", }, Margin: uintPtr(2), }, BlockQuote: ansi.StyleBlock{ StylePrimitive: ansi.StylePrimitive{}, Indent: uintPtr(1), IndentToken: stringPtr("│ "), }, Paragraph: ansi.StyleBlock{ StylePrimitive: ansi.StylePrimitive{}, }, List: ansi.StyleList{ StyleBlock: ansi.StyleBlock{ StylePrimitive: ansi.StylePrimitive{}, }, LevelIndent: 4, }, Heading: ansi.StyleBlock{ StylePrimitive: ansi.StylePrimitive{ BlockSuffix: "\n", }, }, H1: ansi.StyleBlock{ StylePrimitive: ansi.StylePrimitive{ Prefix: "# ", }, }, H2: ansi.StyleBlock{ StylePrimitive: ansi.StylePrimitive{ Prefix: "## ", }, }, H3: ansi.StyleBlock{ StylePrimitive: ansi.StylePrimitive{ Prefix: "### ", }, }, H4: ansi.StyleBlock{ StylePrimitive: ansi.StylePrimitive{ Prefix: "#### ", }, }, H5: ansi.StyleBlock{ StylePrimitive: ansi.StylePrimitive{ Prefix: "##### ", }, }, H6: ansi.StyleBlock{ StylePrimitive: ansi.StylePrimitive{ Prefix: "###### ", }, }, Strikethrough: ansi.StylePrimitive{ BlockPrefix: "~~", BlockSuffix: "~~", }, Emph: ansi.StylePrimitive{ BlockPrefix: "*", BlockSuffix: "*", }, Strong: ansi.StylePrimitive{ BlockPrefix: "**", BlockSuffix: "**", }, HorizontalRule: ansi.StylePrimitive{ Format: "\n--------\n", }, Item: ansi.StylePrimitive{ BlockPrefix: "• ", }, Enumeration: ansi.StylePrimitive{ BlockPrefix: ". ", }, Task: ansi.StyleTask{ Ticked: "[✓] ", Unticked: "[ ] ", }, ImageText: ansi.StylePrimitive{ Format: "Image: {{.text}} →", }, Code: ansi.StyleBlock{ StylePrimitive: ansi.StylePrimitive{ BlockPrefix: "`", BlockSuffix: "`", }, }, CodeBlock: ansi.StyleCodeBlock{ StyleBlock: ansi.StyleBlock{ Margin: uintPtr(2), }, }, Table: ansi.StyleTable{ CenterSeparator: stringPtr("┼"), ColumnSeparator: stringPtr("│"), RowSeparator: stringPtr("─"), }, DefinitionDescription: ansi.StylePrimitive{ BlockPrefix: "\n🠶 ", }, } // DefaultStyles are the default styles. DefaultStyles = map[string]*ansi.StyleConfig{ AsciiStyle: &ASCIIStyleConfig, DarkStyle: &DarkStyleConfig, DraculaStyle: &DraculaStyleConfig, LightStyle: &LightStyleConfig, NoTTYStyle: &NoTTYStyleConfig, PinkStyle: &PinkStyleConfig, } )
var DraculaStyleConfig = ansi.StyleConfig{ Document: ansi.StyleBlock{ StylePrimitive: ansi.StylePrimitive{ BlockPrefix: "\n", BlockSuffix: "\n", Color: stringPtr("#f8f8f2"), }, Margin: uintPtr(2), }, BlockQuote: ansi.StyleBlock{ StylePrimitive: ansi.StylePrimitive{ Color: stringPtr("#f1fa8c"), Italic: boolPtr(true), }, Indent: uintPtr(2), }, List: ansi.StyleList{ LevelIndent: 2, StyleBlock: ansi.StyleBlock{ StylePrimitive: ansi.StylePrimitive{ Color: stringPtr("#f8f8f2"), }, }, }, Heading: ansi.StyleBlock{ StylePrimitive: ansi.StylePrimitive{ BlockSuffix: "\n", Color: stringPtr("#bd93f9"), Bold: boolPtr(true), }, }, H1: ansi.StyleBlock{ StylePrimitive: ansi.StylePrimitive{ Prefix: "# ", }, }, H2: ansi.StyleBlock{ StylePrimitive: ansi.StylePrimitive{ Prefix: "## ", }, }, H3: ansi.StyleBlock{ StylePrimitive: ansi.StylePrimitive{ Prefix: "### ", }, }, H4: ansi.StyleBlock{ StylePrimitive: ansi.StylePrimitive{ Prefix: "#### ", }, }, H5: ansi.StyleBlock{ StylePrimitive: ansi.StylePrimitive{ Prefix: "##### ", }, }, H6: ansi.StyleBlock{ StylePrimitive: ansi.StylePrimitive{ Prefix: "###### ", }, }, Strikethrough: ansi.StylePrimitive{ CrossedOut: boolPtr(true), }, Emph: ansi.StylePrimitive{ Color: stringPtr("#f1fa8c"), Italic: boolPtr(true), }, Strong: ansi.StylePrimitive{ Bold: boolPtr(true), Color: stringPtr("#ffb86c"), }, HorizontalRule: ansi.StylePrimitive{ Color: stringPtr("#6272A4"), Format: "\n--------\n", }, Item: ansi.StylePrimitive{ BlockPrefix: "• ", }, Enumeration: ansi.StylePrimitive{ BlockPrefix: ". ", Color: stringPtr("#8be9fd"), }, Task: ansi.StyleTask{ StylePrimitive: ansi.StylePrimitive{}, Ticked: "[✓] ", Unticked: "[ ] ", }, Link: ansi.StylePrimitive{ Color: stringPtr("#8be9fd"), Underline: boolPtr(true), }, LinkText: ansi.StylePrimitive{ Color: stringPtr("#ff79c6"), }, Image: ansi.StylePrimitive{ Color: stringPtr("#8be9fd"), Underline: boolPtr(true), }, ImageText: ansi.StylePrimitive{ Color: stringPtr("#ff79c6"), Format: "Image: {{.text}} →", }, Code: ansi.StyleBlock{ StylePrimitive: ansi.StylePrimitive{ Color: stringPtr("#50fa7b"), }, }, CodeBlock: ansi.StyleCodeBlock{ StyleBlock: ansi.StyleBlock{ StylePrimitive: ansi.StylePrimitive{ Color: stringPtr("#ffb86c"), }, Margin: uintPtr(2), }, Chroma: &ansi.Chroma{ Text: ansi.StylePrimitive{ Color: stringPtr("#f8f8f2"), }, Error: ansi.StylePrimitive{ Color: stringPtr("#f8f8f2"), BackgroundColor: stringPtr("#ff5555"), }, Comment: ansi.StylePrimitive{ Color: stringPtr("#6272A4"), }, CommentPreproc: ansi.StylePrimitive{ Color: stringPtr("#ff79c6"), }, Keyword: ansi.StylePrimitive{ Color: stringPtr("#ff79c6"), }, KeywordReserved: ansi.StylePrimitive{ Color: stringPtr("#ff79c6"), }, KeywordNamespace: ansi.StylePrimitive{ Color: stringPtr("#ff79c6"), }, KeywordType: ansi.StylePrimitive{ Color: stringPtr("#8be9fd"), }, Operator: ansi.StylePrimitive{ Color: stringPtr("#ff79c6"), }, Punctuation: ansi.StylePrimitive{ Color: stringPtr("#f8f8f2"), }, Name: ansi.StylePrimitive{ Color: stringPtr("#8be9fd"), }, NameBuiltin: ansi.StylePrimitive{ Color: stringPtr("#8be9fd"), }, NameTag: ansi.StylePrimitive{ Color: stringPtr("#ff79c6"), }, NameAttribute: ansi.StylePrimitive{ Color: stringPtr("#50fa7b"), }, NameClass: ansi.StylePrimitive{ Color: stringPtr("#8be9fd"), }, NameConstant: ansi.StylePrimitive{ Color: stringPtr("#bd93f9"), }, NameDecorator: ansi.StylePrimitive{ Color: stringPtr("#50fa7b"), }, NameFunction: ansi.StylePrimitive{ Color: stringPtr("#50fa7b"), }, LiteralNumber: ansi.StylePrimitive{ Color: stringPtr("#6EEFC0"), }, LiteralString: ansi.StylePrimitive{ Color: stringPtr("#f1fa8c"), }, LiteralStringEscape: ansi.StylePrimitive{ Color: stringPtr("#ff79c6"), }, GenericDeleted: ansi.StylePrimitive{ Color: stringPtr("#ff5555"), }, GenericEmph: ansi.StylePrimitive{ Color: stringPtr("#f1fa8c"), Italic: boolPtr(true), }, GenericInserted: ansi.StylePrimitive{ Color: stringPtr("#50fa7b"), }, GenericStrong: ansi.StylePrimitive{ Color: stringPtr("#ffb86c"), Bold: boolPtr(true), }, GenericSubheading: ansi.StylePrimitive{ Color: stringPtr("#bd93f9"), }, Background: ansi.StylePrimitive{ BackgroundColor: stringPtr("#282a36"), }, }, }, Table: ansi.StyleTable{ StyleBlock: ansi.StyleBlock{ StylePrimitive: ansi.StylePrimitive{}, }, CenterSeparator: stringPtr("┼"), ColumnSeparator: stringPtr("│"), RowSeparator: stringPtr("─"), }, DefinitionDescription: ansi.StylePrimitive{ BlockPrefix: "\n🠶 ", }, }
Functions ¶
func Render ¶
Render initializes a new TermRenderer and renders a markdown with a specific style.
func RenderBytes ¶
RenderBytes initializes a new TermRenderer and renders a markdown with a specific style.
Types ¶
type TermRenderer ¶
type TermRenderer struct {
// contains filtered or unexported fields
}
TermRenderer can be used to render markdown content, posing a depth of customization and styles to fit your needs.
func NewTermRenderer ¶
func NewTermRenderer(options ...TermRendererOption) (*TermRenderer, error)
NewTermRenderer returns a new TermRenderer the given options.
func (*TermRenderer) Close ¶
func (tr *TermRenderer) Close() error
Close must be called after writing to TermRenderer. You can then retrieve the rendered markdown by calling Read.
func (*TermRenderer) Read ¶
func (tr *TermRenderer) Read(b []byte) (int, error)
func (*TermRenderer) Render ¶
func (tr *TermRenderer) Render(in string) (string, error)
Render returns the markdown rendered into a string.
func (*TermRenderer) RenderBytes ¶
func (tr *TermRenderer) RenderBytes(in []byte) ([]byte, error)
RenderBytes returns the markdown rendered into a byte slice.
func (*TermRenderer) Write ¶
func (tr *TermRenderer) Write(b []byte) (int, error)
type TermRendererOption ¶
type TermRendererOption func(*TermRenderer) error
A TermRendererOption sets an option on a TermRenderer.
func WithAutoStyle ¶
func WithAutoStyle() TermRendererOption
WithAutoStyle sets a TermRenderer's styles with either the standard dark or light style, depending on the terminal's background color at run-time.
func WithBaseURL ¶
func WithBaseURL(baseURL string) TermRendererOption
WithBaseURL sets a TermRenderer's base URL.
func WithColorProfile ¶
func WithColorProfile(profile termenv.Profile) TermRendererOption
WithColorProfile sets the TermRenderer's color profile (TrueColor / ANSI256 / ANSI).
func WithEmoji ¶
func WithEmoji() TermRendererOption
WithEmoji sets a TermRenderer's emoji rendering.
func WithEnvironmentConfig ¶
func WithEnvironmentConfig() TermRendererOption
WithEnvironmentConfig sets a TermRenderer's styles based on the GLAMOUR_STYLE environment variable.
func WithPreservedNewLines ¶
func WithPreservedNewLines() TermRendererOption
WithPreservedNewlines preserves newlines from being replaced.
func WithStandardStyle ¶
func WithStandardStyle(style string) TermRendererOption
WithStandardStyle sets a TermRenderer's styles with a standard (builtin) style.
func WithStylePath ¶
func WithStylePath(stylePath string) TermRendererOption
WithStylePath sets a TermRenderer's style from stylePath. stylePath is first interpreted as a filename. If no such file exists, it is re-interpreted as a standard style.
func WithStyles ¶
func WithStyles(styles ansi.StyleConfig) TermRendererOption
WithStyles sets a TermRenderer's styles.
func WithStylesFromJSONBytes ¶
func WithStylesFromJSONBytes(jsonBytes []byte) TermRendererOption
WithStylesFromJSONBytes sets a TermRenderer's styles by parsing styles from jsonBytes.
func WithStylesFromJSONFile ¶
func WithStylesFromJSONFile(filename string) TermRendererOption
WithStylesFromJSONFile sets a TermRenderer's styles from a JSON file.
func WithWordWrap ¶
func WithWordWrap(wordWrap int) TermRendererOption
WithWordWrap sets a TermRenderer's word wrap.