Browse Source

Merge pull request #2396 from bkcsoft/feature/markdown-checklist

[Feature] Markdown Checklist-rendering
tags/v1.2.0-rc1
Unknwon 9 years ago
parent
commit
fe297c59fc
2 changed files with 20 additions and 1 deletions
  1. +10
    -0
      modules/base/markdown.go
  2. +10
    -1
      modules/base/tool.go

+ 10
- 0
modules/base/markdown.go View File

@@ -142,6 +142,16 @@ func (r *CustomRender) AutoLink(out *bytes.Buffer, link []byte, kind int) {
r.Renderer.AutoLink(out, link, kind)
}

func (options *CustomRender) ListItem(out *bytes.Buffer, text []byte, flags int) {
switch {
case bytes.HasPrefix(text, []byte("[ ] ")):
text = append([]byte(`<input type="checkbox" disabled="" />`), text[3:]...)
case bytes.HasPrefix(text, []byte("[x] ")):
text = append([]byte(`<input type="checkbox" disabled="" checked="" />`), text[3:]...)
}
options.Renderer.ListItem(out, text, flags)
}

var (
svgSuffix = []byte(".svg")
svgSuffixWithMark = []byte(".svg?")


+ 10
- 1
modules/base/tool.go View File

@@ -31,7 +31,16 @@ import (
"github.com/gogits/gogs/modules/setting"
)

var Sanitizer = bluemonday.UGCPolicy().AllowAttrs("class").Matching(regexp.MustCompile(`[\p{L}\p{N}\s\-_',:\[\]!\./\\\(\)&]*`)).OnElements("code")
func BuildSanitizer() (p *bluemonday.Policy) {
p = bluemonday.UGCPolicy()
p.AllowAttrs("class").Matching(regexp.MustCompile(`[\p{L}\p{N}\s\-_',:\[\]!\./\\\(\)&]*`)).OnElements("code")

p.AllowAttrs("type").Matching(regexp.MustCompile(`^checkbox$`)).OnElements("input")
p.AllowAttrs("checked", "disabled").OnElements("input")
return p
}

var Sanitizer = BuildSanitizer()

// EncodeMD5 encodes string to md5 hex value.
func EncodeMD5(str string) string {


Loading…
Cancel
Save