From eae7d1f7a7b67d822615921dd69c4b35471733df Mon Sep 17 00:00:00 2001 From: Nikeron <6773262+Nikeron@users.noreply.github.com> Date: Mon, 27 Aug 2018 01:48:18 +0400 Subject: [PATCH] Add data urls support for markdown images --- pkg/markup/markup.go | 6 ++++++ pkg/markup/sanitizer.go | 3 +++ 2 files changed, 9 insertions(+) diff --git a/pkg/markup/markup.go b/pkg/markup/markup.go index 2d571489a..ee91b7b19 100644 --- a/pkg/markup/markup.go +++ b/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 { diff --git a/pkg/markup/sanitizer.go b/pkg/markup/sanitizer.go index 371f5b3f6..3f1e41b7e 100644 --- a/pkg/markup/sanitizer.go +++ b/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...) })