go-term-markdown
is a go package implementing a Markdown renderer for the terminal.
Note: Markdown being originally designed to render as HTML, rendering in a terminal is occasionally challenging and some adaptation had to be made.
Features:
- formatting
- lists
- tables
- images
- code blocks with syntax highlighting
- basic HTML support
Note: this renderer is packaged as a standalone terminal viewer at https://github.com/MichaelMure/mdr/
import (
"fmt"
"io/ioutil"
markdown "github.com/MichaelMure/go-term-markdown"
)
func main() {
path := "Readme.md"
source, err := ioutil.ReadFile(path)
if err != nil {
panic(err)
}
result := markdown.Render(string(source), 80, 6)
fmt.Println(result)
}
Here is the Readme of go-term-text
rendered with go-term-markdown
:
Here is an example of table rendering:
This package has been extracted from the git-bug project. As such, its aim is to support this project and not to provide an all-in-one solution. Contributions or full-on takeover as welcome though.
PRs accepted.
MIT