okami.mom/glamour

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

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

main
865 B46 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(
31		glamour.WithEnvironmentConfig(),
32		glamour.WithWordWrap(defaultWidth),
33	)
34	if err != nil {
35		fmt.Fprintf(os.Stderr, "Error creating renderer: %s\n", err)
36	}
37
38	// Render markdown.
39	md, err := r.RenderBytes(in)
40	if err != nil {
41		fmt.Fprintf(os.Stderr, "Error rendering markdown: %s\n", err)
42	}
43
44	// Write markdown to stdout.
45	fmt.Fprintf(os.Stdout, "%s\n", md)
46}