website/pkg/markdown/markdown.go

30 lines
731 B
Go

// Package markdown provides markdown render functions.
package markdown
import (
"strings"
"github.com/microcosm-cc/bluemonday"
"github.com/shurcooL/github_flavored_markdown"
)
// Render markdown from untrusted sources.
func Render(input string) string {
// Render Markdown to HTML.
html := github_flavored_markdown.Markdown([]byte(input))
// Sanitize the HTML from any nasties.
p := bluemonday.UGCPolicy()
safened := p.SanitizeBytes(html)
return string(safened)
}
// Quotify a message putting it into a Markdown "> quotes" block.
func Quotify(input string) string {
var lines = []string{}
for _, line := range strings.Split(input, "\n") {
lines = append(lines, "> "+line)
}
return strings.Join(lines, "\n")
}