Add non-string support in markdownify

This commit is contained in:
Bjørn Erik Pedersen 2016-05-06 10:11:17 +02:00
parent 7cbafa4ec5
commit 273a68400f
2 changed files with 14 additions and 7 deletions

View file

@ -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)

View file

@ -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) {