aboutsummaryrefslogtreecommitdiffstats
path: root/modules
diff options
context:
space:
mode:
Diffstat (limited to 'modules')
-rw-r--r--modules/markup/markdown/markdown.go17
-rw-r--r--modules/markup/sanitizer.go5
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