hugo

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

git clone git://git.shimmy1996.com/hugo.git
commit 273a68400ff081d05508afbcb6d158711b865307
parent 7cbafa4ec58abc7e338e33bef16a84ef1d8a5ff2
Author: Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Date:   Fri,  6 May 2016 10:11:17 +0200

Add non-string support in markdownify

Diffstat:
Mtpl/template_funcs.go | 3++-
Mtpl/template_funcs_test.go | 18++++++++++++------
2 files changed, 14 insertions(+), 7 deletions(-)
diff --git a/tpl/template_funcs.go b/tpl/template_funcs.go
@@ -1203,7 +1203,8 @@ var markdownTrimPrefix = []byte("<p>")
 var markdownTrimSuffix = []byte("</p>\n")
 
 // markdownify renders a given string from Markdown to HTML.
-func markdownify(text string) template.HTML {
+func markdownify(in interface{}) template.HTML {
+	text := cast.ToString(in)
 	m := helpers.RenderBytes(&helpers.RenderingContext{Content: []byte(text), PageFmt: "markdown"})
 	m = bytes.TrimPrefix(m, markdownTrimPrefix)
 	m = bytes.TrimSuffix(m, markdownTrimSuffix)
diff --git a/tpl/template_funcs_test.go b/tpl/template_funcs_test.go
@@ -1699,13 +1699,19 @@ func TestReturnWhenSet(t *testing.T) {
 }
 
 func TestMarkdownify(t *testing.T) {
-	result := markdownify("Hello **World!**")
-
-	expect := template.HTML("Hello <strong>World!</strong>")
-
-	if result != expect {
-		t.Errorf("Markdownify: got '%s', expected '%s'", result, expect)
+	for i, this := range []struct {
+		in     interface{}
+		expect interface{}
+	}{
+		{"Hello **World!**", template.HTML("Hello <strong>World!</strong>")},
+		{[]byte("Hello Bytes **World!**"), template.HTML("Hello Bytes <strong>World!</strong>")},
+	} {
+		result := markdownify(this.in)
+		if !reflect.DeepEqual(result, this.expect) {
+			t.Errorf("[%d] markdownify got %v (type %v) but expected %v (type %v)", i, result, reflect.TypeOf(result), this.expect, reflect.TypeOf(this.expect))
+		}
 	}
+
 }
 
 func TestApply(t *testing.T) {