Fix markdown rendering (#1530)

This commit is contained in:
Morlinest 2017-04-24 06:18:36 +02:00 committed by Bo-Yi Wu
parent 5b8fe1e181
commit fcc7cdab11

View file

@ -145,11 +145,14 @@ func (r *Renderer) ListItem(out *bytes.Buffer, text []byte, flags int) {
switch { switch {
case bytes.HasPrefix(text, []byte(prefix+"[ ] ")): case bytes.HasPrefix(text, []byte(prefix+"[ ] ")):
text = append([]byte(`<div class="ui fitted disabled checkbox"><input type="checkbox" disabled="disabled" /><label /></div>`), text[3+len(prefix):]...) text = append([]byte(`<div class="ui fitted disabled checkbox"><input type="checkbox" disabled="disabled" /><label /></div>`), text[3+len(prefix):]...)
if prefix != "" {
text = bytes.Replace(text, []byte(prefix), []byte{}, 1)
}
case bytes.HasPrefix(text, []byte(prefix+"[x] ")): case bytes.HasPrefix(text, []byte(prefix+"[x] ")):
text = append([]byte(`<div class="ui checked fitted disabled checkbox"><input type="checkbox" checked="" disabled="disabled" /><label /></div>`), text[3+len(prefix):]...) text = append([]byte(`<div class="ui checked fitted disabled checkbox"><input type="checkbox" checked="" disabled="disabled" /><label /></div>`), text[3+len(prefix):]...)
}
if prefix != "" { if prefix != "" {
text = bytes.Replace(text, []byte("</p>"), []byte{}, 1) text = bytes.Replace(text, []byte(prefix), []byte{}, 1)
}
} }
r.Renderer.ListItem(out, text, flags) r.Renderer.ListItem(out, text, flags)
} }
@ -627,11 +630,9 @@ OUTER_LOOP:
// Copy the token to the output verbatim // Copy the token to the output verbatim
buf.Write(RenderShortLinks([]byte(token.String()), urlPrefix, true, isWikiMarkdown)) buf.Write(RenderShortLinks([]byte(token.String()), urlPrefix, true, isWikiMarkdown))
if token.Type == html.StartTagToken { if token.Type == html.StartTagToken && !com.IsSliceContainsStr(noEndTags, token.Data) {
if !com.IsSliceContainsStr(noEndTags, token.Data) {
stackNum++ stackNum++
} }
}
// If this is the close tag to the outer-most, we are done // If this is the close tag to the outer-most, we are done
if token.Type == html.EndTagToken { if token.Type == html.EndTagToken {
@ -645,8 +646,8 @@ OUTER_LOOP:
continue OUTER_LOOP continue OUTER_LOOP
} }
if !com.IsSliceContainsStr(noEndTags, token.Data) { if !com.IsSliceContainsStr(noEndTags, tagName) {
startTags = append(startTags, token.Data) startTags = append(startTags, tagName)
} }
case html.EndTagToken: case html.EndTagToken: