From fcc7cdab112e64c2b158c594c7d46746ff6c46f8 Mon Sep 17 00:00:00 2001
From: Morlinest <Morlinest@users.noreply.github.com>
Date: Mon, 24 Apr 2017 06:18:36 +0200
Subject: [PATCH] Fix markdown rendering (#1530)

---
 modules/markdown/markdown.go | 19 ++++++++++---------
 1 file changed, 10 insertions(+), 9 deletions(-)

diff --git a/modules/markdown/markdown.go b/modules/markdown/markdown.go
index 183804a9e..85be5d61d 100644
--- a/modules/markdown/markdown.go
+++ b/modules/markdown/markdown.go
@@ -145,11 +145,14 @@ func (r *Renderer) ListItem(out *bytes.Buffer, text []byte, flags int) {
 	switch {
 	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):]...)
+		if prefix != "" {
+			text = bytes.Replace(text, []byte(prefix), []byte{}, 1)
+		}
 	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):]...)
-	}
-	if prefix != "" {
-		text = bytes.Replace(text, []byte("</p>"), []byte{}, 1)
+		if prefix != "" {
+			text = bytes.Replace(text, []byte(prefix), []byte{}, 1)
+		}
 	}
 	r.Renderer.ListItem(out, text, flags)
 }
@@ -627,10 +630,8 @@ OUTER_LOOP:
 					// Copy the token to the output verbatim
 					buf.Write(RenderShortLinks([]byte(token.String()), urlPrefix, true, isWikiMarkdown))
 
-					if token.Type == html.StartTagToken {
-						if !com.IsSliceContainsStr(noEndTags, token.Data) {
-							stackNum++
-						}
+					if token.Type == html.StartTagToken && !com.IsSliceContainsStr(noEndTags, token.Data) {
+						stackNum++
 					}
 
 					// If this is the close tag to the outer-most, we are done
@@ -645,8 +646,8 @@ OUTER_LOOP:
 				continue OUTER_LOOP
 			}
 
-			if !com.IsSliceContainsStr(noEndTags, token.Data) {
-				startTags = append(startTags, token.Data)
+			if !com.IsSliceContainsStr(noEndTags, tagName) {
+				startTags = append(startTags, tagName)
 			}
 
 		case html.EndTagToken: