diff options
Diffstat (limited to 'modules')
-rw-r--r-- | modules/markup/markdown/markdown.go | 17 | ||||
-rw-r--r-- | modules/markup/sanitizer.go | 5 |
2 files changed, 9 insertions, 13 deletions
diff --git a/modules/markup/markdown/markdown.go b/modules/markup/markdown/markdown.go index 554ee0d4be..2574585573 100644 --- a/modules/markup/markdown/markdown.go +++ b/modules/markup/markdown/markdown.go @@ -107,25 +107,18 @@ func actualRender(ctx *markup.RenderContext, input io.Reader, output io.Writer) languageStr := string(language) - preClasses := []string{} + preClasses := []string{"code-block"} if languageStr == "mermaid" { preClasses = append(preClasses, "is-loading") } - if len(preClasses) > 0 { - _, err := w.WriteString(`<pre class="` + strings.Join(preClasses, " ") + `">`) - if err != nil { - return - } - } else { - _, err := w.WriteString(`<pre>`) - if err != nil { - return - } + _, err := w.WriteString(`<pre class="` + strings.Join(preClasses, " ") + `">`) + if err != nil { + return } // include language-x class as part of commonmark spec - _, err := w.WriteString(`<code class="chroma language-` + string(language) + `">`) + _, err = w.WriteString(`<code class="chroma language-` + string(language) + `">`) if err != nil { return } diff --git a/modules/markup/sanitizer.go b/modules/markup/sanitizer.go index c8f9de33b5..5ff26a3109 100644 --- a/modules/markup/sanitizer.go +++ b/modules/markup/sanitizer.go @@ -52,8 +52,11 @@ func InitializeSanitizer() { func createDefaultPolicy() *bluemonday.Policy { policy := bluemonday.UGCPolicy() + + // For JS code copy and Mermaid loading state + policy.AllowAttrs("class").Matching(regexp.MustCompile(`^code-block( is-loading)?$`)).OnElements("pre") + // For Chroma markdown plugin - policy.AllowAttrs("class").Matching(regexp.MustCompile(`^is-loading$`)).OnElements("pre") policy.AllowAttrs("class").Matching(regexp.MustCompile(`^(chroma )?language-[\w-]+$`)).OnElements("code") // Checkboxes |