okami.mom/glamour

git clone https://git.nkp.pet/okami.mom/glamour

Ayman BagabasMerge pull request #408 from charmbracelet/v2-expcf874d7

main
824 B43 linesraw
1package main
2
3// A simple example that renders input through a pipe.
4//
5// Usage:
6//     echo "# Hello, world!" | go run main.go
7//
8//     cat README.md | go run main.go
9//
10//     go run main.go < README.md
11
12import (
13	"fmt"
14	"io"
15	"os"
16
17	"charm.land/glamour/v2"
18)
19
20const defaultWidth = 80
21
22func main() {
23	// Read from stdin.
24	in, err := io.ReadAll(os.Stdin)
25	if err != nil {
26		fmt.Fprintf(os.Stderr, "Error reading stdin: %s\n", err)
27	}
28
29	// Create a new renderer.
30	r, err := glamour.NewTermRenderer(glamour.WithWordWrap(defaultWidth))
31	if err != nil {
32		fmt.Fprintf(os.Stderr, "Error creating renderer: %s\n", err)
33	}
34
35	// Render markdown.
36	md, err := r.RenderBytes(in)
37	if err != nil {
38		fmt.Fprintf(os.Stderr, "Error rendering markdown: %s\n", err)
39	}
40
41	// Write markdown to stdout.
42	fmt.Fprintf(os.Stdout, "%s\n", md)
43}