ref: 273a68400ff081d05508afbcb6d158711b865307
parent: 7cbafa4ec58abc7e338e33bef16a84ef1d8a5ff2
author: Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
date: Fri May 6 06:11:17 EDT 2016
Add non-string support in markdownify
--- a/tpl/template_funcs.go
+++ b/tpl/template_funcs.go
@@ -1203,7 +1203,8 @@
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)
--- a/tpl/template_funcs_test.go
+++ b/tpl/template_funcs_test.go
@@ -1699,13 +1699,19 @@
}
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) {--
⑨