hmn/src/parsing/parsing.go

44 lines
703 B
Go

package parsing
import (
"bytes"
"github.com/yuin/goldmark"
"github.com/yuin/goldmark/extension"
)
var previewMarkdown = goldmark.New(
goldmark.WithExtensions(
extension.GFM,
SpoilerExtension{},
EmbedExtension{
Preview: true,
},
MathjaxExtension{},
BBCodeExtension{},
),
)
var realMarkdown = goldmark.New(
goldmark.WithExtensions(
extension.GFM,
SpoilerExtension{},
EmbedExtension{},
MathjaxExtension{},
BBCodeExtension{},
),
)
func ParsePostInput(source string, preview bool) string {
md := realMarkdown
if preview {
md = previewMarkdown
}
var buf bytes.Buffer
if err := md.Convert([]byte(source), &buf); err != nil {
panic(err)
}
return buf.String()
}