GoBlog/markdown.go

41 lines
818 B
Go
Raw Normal View History

2020-07-28 19:38:12 +00:00
package main
import (
"bytes"
"github.com/yuin/goldmark"
"github.com/yuin/goldmark-emoji"
"github.com/yuin/goldmark-emoji/definition"
2020-07-28 19:38:12 +00:00
"github.com/yuin/goldmark/extension"
"github.com/yuin/goldmark/parser"
"github.com/yuin/goldmark/renderer/html"
)
var markdown goldmark.Markdown
2020-08-24 19:09:30 +00:00
func initMarkdown() {
2020-07-28 19:38:12 +00:00
markdown = goldmark.New(
goldmark.WithRendererOptions(
html.WithUnsafe(),
),
goldmark.WithParserOptions(
parser.WithAutoHeadingID(),
),
goldmark.WithExtensions(
extension.GFM,
extension.Footnote,
extension.Typographer,
// Emojis
emoji.New(
emoji.WithEmojis(definition.Github()),
),
2020-07-28 19:38:12 +00:00
),
)
}
2020-07-29 14:41:36 +00:00
func renderMarkdown(source string) (content []byte, err error) {
2020-07-28 19:38:12 +00:00
var buffer bytes.Buffer
err = markdown.Convert([]byte(source), &buffer)
2020-08-24 19:09:30 +00:00
content = buffer.Bytes()
2020-07-28 19:38:12 +00:00
return
}