Awesome Go

glamour

CategoryCommand Line
SubcategoryAdvanced Console UIs
Stars3,731

Stylesheet-based markdown rendering for terminal applications

About glamour

Glamour

Stylesheet-based markdown rendering for your CLI apps.

glamour lets you render markdown documents & templates on ANSI compatible terminals. You can create your own stylesheet or simply use one of the stylish defaults.

Usage

import "charm.land/glamour/v2"

in := `# Hello World

This is a simple example of Markdown rendering with Glamour!
Check out the [other examples](https://github.com/charmbracelet/glamour/tree/main/examples) too.

Bye!
`

out, err := glamour.Render(in, "dark")
fmt.Print(out)

Custom Renderer

import "charm.land/glamour/v2"

r, _ := glamour.NewTermRenderer(
    // wrap output at specific width (default is 80)
    glamour.WithWordWrap(40),
)

out, err := r.Render(in)
fmt.Print(out)

Color Downsampling

Since the renderer is designed to be "pure" and always produce the same output for the same input, it doesn't have access to the terminal's capabilities. This means that color downsampling is not performed by default. In this case, use Lip Gloss to perform downsampling before rendering:

import (
    "charm.land/glamour/v2"
    "charm.land/lipgloss/v2"
)

r, _ := glamour.NewTermRenderer(
    // wrap output at specific width (default is 80)
    glamour.WithWordWrap(40),
)

out, err := r.Render(in)
if err != nil {
    // handle error
}

// downsample colors based on terminal capabilities.
lipgloss.Print(out)

Styles

You can find all available default styles in our gallery. Want to create your own style? Learn how!

There are a few options for using a custom style:

  1. Call glamour.Render(inputText, "desiredStyle")
  2. Set the GLAMOUR_STYLE environment variable to your desired default style or a file location for a style and call glamour.RenderWithEnvironmentConfig(inputText)
  3. Set the GLAMOUR_STYLE environment variable and pass glamour.WithEnvironmentConfig() to your custom renderer

Glamourous Projects

Check out these projects, which use glamour:

  • Glow, a markdown renderer for the command-line.
  • GitHub CLI, GitHub’s official command line tool.
  • GitLab CLI, GitLab's official command line tool.
  • Gitea CLI, Gitea's official command line tool.
  • Meteor, an easy-to-use, plugin-driven metadata collection framework.

Contributing

See contributing.

Feedback

We’d love to hear your thoughts on this project. Feel free to drop us a note!

License

MIT


Part of Charm.

Charm热爱开源 • Charm loves open source

Frequently Asked Questions

What is glamour?

glamour is a Command Line library for the Go programming language. Stylesheet-based markdown rendering for terminal applications

How many GitHub stars does glamour have?

glamour has 3,731 GitHub stars in the directory's latest synchronization.

How do I install glamour?

Install glamour with the Go module system using `go get charmbracelet/glamour`. Check the repository for the current installation instructions.

What category does glamour belong to?

glamour is listed under Command Line, specifically Advanced Console UIs.

← Back to Advanced Console UIs