hugo

Unnamed repository; edit this file 'description' to name the repository.

git clone git://git.shimmy1996.com/hugo.git
commit c067f34558b82455b63b9ce8f5983b4b4849c7cf
parent 72903be587e9c4e3644f60b11e26238ec03da2db
Author: Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Date:   Fri, 29 Dec 2017 09:52:43 +0100

tpl/transform: Do not unescape input to highlight

Fixes #4179

Diffstat:
Mtpl/transform/transform.go | 2+-
Mtpl/transform/transform_test.go | 4+++-
2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/tpl/transform/transform.go b/tpl/transform/transform.go
@@ -55,7 +55,7 @@ func (ns *Namespace) Highlight(s interface{}, lang, opts string) (template.HTML,
 		return "", err
 	}
 
-	highlighted, _ := ns.deps.ContentSpec.Highlight(html.UnescapeString(ss), lang, opts)
+	highlighted, _ := ns.deps.ContentSpec.Highlight(ss, lang, opts)
 	return template.HTML(highlighted), nil
 }
 
diff --git a/tpl/transform/transform_test.go b/tpl/transform/transform_test.go
@@ -69,6 +69,8 @@ func TestHighlight(t *testing.T) {
 		expect interface{}
 	}{
 		{"func boo() {}", "go", "", "boo"},
+		// Issue #4179
+		{`<Foo attr=" &lt; "></Foo>`, "xml", "", `&amp;lt;`},
 		{tstNoStringer{}, "go", "", false},
 	} {
 		errMsg := fmt.Sprintf("[%d]", i)
@@ -81,7 +83,7 @@ func TestHighlight(t *testing.T) {
 		}
 
 		require.NoError(t, err, errMsg)
-		assert.Contains(t, result, "boo", errMsg)
+		assert.Contains(t, result, test.expect.(string), errMsg)
 	}
 }