Configs2026年5月30日·1 分钟阅读

Glamour — Stylesheet-Based Markdown Rendering for CLI Apps

A Go library from Charm for rendering markdown in terminal applications with customizable stylesheets, ANSI color support, and word wrapping.

Agent 就绪

这个资产会安全暂存

这个资产会先安全暂存。复制的指令会要求 Agent 读取暂存文件,并在激活脚本、MCP 配置或全局配置前先确认。

Stage only · 29/100策略:需暂存
Agent 入口
任意 MCP/CLI Agent
类型
CLI Tool
安装
Single
信任
信任等级:Established
入口
Glamour
安全暂存命令
npx -y tokrepo@latest install 1fdd44a8-5be0-11f1-9bc6-00163e2b0d79 --target codex

先暂存文件;激活前需要读取暂存 README 和安装计划。

Introduction

Glamour is a Go library by Charmbracelet that renders Markdown documents as styled ANSI terminal output. It provides a stylesheet system for controlling colors, indentation, and formatting, making it easy to display rich text content in CLI applications without building custom rendering logic.

What Glamour Does

  • Converts Markdown to beautifully formatted ANSI terminal output
  • Applies configurable stylesheets for dark, light, and custom themes
  • Handles headings, code blocks, tables, lists, and links with color coding
  • Wraps text to fit terminal width automatically
  • Supports GitHub-Flavored Markdown including task lists and strikethrough

Architecture Overview

Glamour parses Markdown using the goldmark parser and then applies a style tree to produce ANSI-escaped output. Each Markdown element type (heading, paragraph, code block) maps to a style definition that controls foreground/background colors, margins, padding, and text decoration. The library outputs plain strings with embedded ANSI codes, compatible with any terminal emulator.

Self-Hosting & Configuration

  • Add Glamour to your Go project with go get github.com/charmbracelet/glamour
  • Use the glamour.Render() function for quick single-call rendering
  • Create a custom glamour.TermRenderer with a specific style for reuse
  • Choose from built-in styles: DarkStyle, LightStyle, AutoStyle, or NoTTYStyle
  • Define custom JSON stylesheets to match your application's branding

Key Features

  • Zero external dependencies beyond the Go standard library and goldmark
  • Word wrapping that respects terminal width and avoids mid-word breaks
  • Syntax highlighting for fenced code blocks via the chroma library
  • Emoji rendering with Unicode support in code and prose
  • Integration with other Charm tools like Bubble Tea and Lip Gloss

Comparison with Similar Tools

  • Rich (Python) — similar terminal rendering but Python-only, not a Go library
  • termimad (Rust) — Markdown rendering for Rust terminals, smaller feature set
  • mdcat — standalone CLI for rendering Markdown, not an embeddable library
  • Glow (Charm) — CLI Markdown viewer built on Glamour for end-user use
  • ANSI Markdown — various language-specific solutions without stylesheet support

FAQ

Q: Can I use Glamour in a Bubble Tea TUI application? A: Yes. Glamour output is plain ANSI text that integrates naturally with Bubble Tea views.

Q: Does Glamour support HTML inside Markdown? A: HTML tags are stripped by default. Glamour focuses on standard Markdown elements for terminal rendering.

Q: How do I handle long documents? A: Set a max width on the renderer and pipe output through a pager like less -R for scrollable viewing.

Q: Is there a way to disable colors? A: Use the NoTTYStyle or set GLAMOUR_STYLE=notty to produce plain uncolored output for piping.

Sources

讨论

登录后参与讨论。
还没有评论,来写第一条吧。

相关资产