Kaynağa Gözat

Add ApplyBasicMarkdown func

master
Matt Baer 6 yıl önce
ebeveyn
işleme
be5c5d2acb
1 değiştirilmiş dosya ile 26 ekleme ve 0 silme
  1. +26
    -0
      posts/render.go

+ 26
- 0
posts/render.go Dosyayı Görüntüle

@@ -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
}

Yükleniyor…
İptal
Kaydet