Neale Pickett
·
2021-02-25
markdown.go
1package transpile
2
3import (
4 "io"
5 "io/ioutil"
6
7 "github.com/yuin/goldmark"
8 "github.com/yuin/goldmark/extension"
9 "github.com/yuin/goldmark/renderer/html"
10)
11
12// Markdown formats the provided bytes using whatever Markdown engine we're currently using.
13func Markdown(input io.Reader, output io.Writer) error {
14 md := goldmark.New(
15 goldmark.WithExtensions(
16 extension.Table,
17 extension.DefinitionList,
18 ),
19 goldmark.WithRendererOptions(
20 html.WithUnsafe(),
21 ),
22 )
23 buf, err := ioutil.ReadAll(input)
24 if err != nil {
25 return err
26 }
27 md.Convert(buf, output)
28 return nil
29}