mirror of
https://github.com/writeas/web-core
synced 2018-07-20 11:55:21 +00:00
Add ApplyBasicMarkdown func
This commit is contained in:
parent
5f3aa533bf
commit
be5c5d2acb
@ -4,11 +4,15 @@ import (
|
||||
"github.com/microcosm-cc/bluemonday"
|
||||
"github.com/writeas/saturday"
|
||||
"regexp"
|
||||
"strings"
|
||||
"unicode"
|
||||
)
|
||||
|
||||
var (
|
||||
blockReg = regexp.MustCompile("<(ul|ol|blockquote)>\n")
|
||||
endBlockReg = regexp.MustCompile("</([a-z]+)>\n</(ul|ol|blockquote)>")
|
||||
|
||||
markeddownReg = regexp.MustCompile("<p>(.+)</p>")
|
||||
)
|
||||
|
||||
func ApplyMarkdown(data []byte) string {
|
||||
@ -35,3 +39,25 @@ func ApplyMarkdown(data []byte) string {
|
||||
|
||||
return outHTML
|
||||
}
|
||||
|
||||
func ApplyBasicMarkdown(data []byte) string {
|
||||
mdExtensions := 0 |
|
||||
blackfriday.EXTENSION_STRIKETHROUGH |
|
||||
blackfriday.EXTENSION_SPACE_HEADERS |
|
||||
blackfriday.EXTENSION_HEADER_IDS
|
||||
htmlFlags := 0 |
|
||||
blackfriday.HTML_SKIP_HTML |
|
||||
blackfriday.HTML_USE_SMARTYPANTS |
|
||||
blackfriday.HTML_SMARTYPANTS_DASHES
|
||||
|
||||
// Generate Markdown
|
||||
md := blackfriday.Markdown([]byte(data), blackfriday.HtmlRenderer(htmlFlags, "", ""), mdExtensions)
|
||||
// Strip out bad HTML
|
||||
policy := bluemonday.UGCPolicy()
|
||||
policy.AllowAttrs("class", "id").Globally()
|
||||
outHTML := string(policy.SanitizeBytes(md))
|
||||
outHTML = markeddownReg.ReplaceAllString(outHTML, "$1")
|
||||
outHTML = strings.TrimRightFunc(outHTML, unicode.IsSpace)
|
||||
|
||||
return outHTML
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user