Browse Source

pkg/markup: support data URL of base64 encoded images (#5391)

Nikita 5 years ago
parent
commit
9079fb6a0d
2 changed files with 9 additions and 0 deletions
  1. 6 0
      pkg/markup/markup.go
  2. 3 0
      pkg/markup/sanitizer.go

+ 6 - 0
pkg/markup/markup.go

@@ -190,6 +190,12 @@ func wrapImgWithLink(urlPrefix string, buf *bytes.Buffer, token html.Token) {
 		return
 	}
 
+	// Skip in case the "src" is data url
+	if strings.HasPrefix(src, "data:") {
+		buf.WriteString(token.String())
+		return
+	}
+
 	// Prepend repository base URL for internal links
 	needPrepend := !isLink([]byte(src))
 	if needPrepend {

+ 3 - 0
pkg/markup/sanitizer.go

@@ -36,6 +36,9 @@ func NewSanitizer() {
 		sanitizer.policy.AllowAttrs("type").Matching(regexp.MustCompile(`^checkbox$`)).OnElements("input")
 		sanitizer.policy.AllowAttrs("checked", "disabled").OnElements("input")
 
+		// Data URLs
+		sanitizer.policy.AllowURLSchemes("data")
+
 		// Custom URL-Schemes
 		sanitizer.policy.AllowURLSchemes(setting.Markdown.CustomURLSchemes...)
 	})