Skip to content

Commit

Permalink
feat(examples): add simple example that renders markdown from a pipe
Browse files Browse the repository at this point in the history
  • Loading branch information
meowgorithm authored and bashbunni committed Jul 31, 2024
1 parent 5f5965e commit 26f0bd4
Showing 1 changed file with 46 additions and 0 deletions.
46 changes: 46 additions & 0 deletions examples/stdin-stdout/main.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
package main

// A simple example that renders input through a pipe.
//
// Usage:
// echo "# Hello, world!" | go run main.go
//
// cat README.md | go run main.go
//
// go run main.go < README.md

import (
"fmt"
"io"
"os"

"github.com/charmbracelet/glamour"
)

const defaultWidth = 80

func main() {
// Read from stdin.
in, err := io.ReadAll(os.Stdin)
if err != nil {
fmt.Fprintf(os.Stderr, "Error reading stdin: %s\n", err)
}

// Create a new renderer.
r, err := glamour.NewTermRenderer(
glamour.WithAutoStyle(),
glamour.WithWordWrap(defaultWidth),
)
if err != nil {
fmt.Fprintf(os.Stderr, "Error creating renderer: %s\n", err)
}

// Render markdown.
md, err := r.RenderBytes(in)
if err != nil {
fmt.Fprintf(os.Stderr, "Error rendering markdown: %s\n", err)
}

// Write markdown to stdout.
fmt.Fprintf(os.Stdout, "%s\n", md)
}

0 comments on commit 26f0bd4

Please sign in to comment.