tpl: Make chomp return template.HTML
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Thu, 3 Mar 2016 18:45:23 +0000 (19:45 +0100)
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Thu, 3 Mar 2016 18:45:23 +0000 (19:45 +0100)
tpl/template_funcs.go
tpl/template_funcs_test.go

index ba6349298c67fee413b7415a4338fd7e082d0f34..e74fc7d265a11c170f9f733de95cee2858a141a7 100644 (file)
@@ -1196,13 +1196,13 @@ func relRef(page interface{}, ref string) template.HTML {
 }
 
 // chomp removes trailing newline characters from a string.
-func chomp(text interface{}) (string, error) {
+func chomp(text interface{}) (template.HTML, error) {
        s, err := cast.ToStringE(text)
        if err != nil {
                return "", err
        }
 
-       return strings.TrimRight(s, "\r\n"), nil
+       return template.HTML(strings.TrimRight(s, "\r\n")), nil
 }
 
 // trim leading/trailing characters defined by b from a
index 4f277bedbaaf10774318e8c8849e5f0124c0d720..433d23b5f76231d3a1119f824bb6cdbad0c91ae4 100644 (file)
@@ -63,10 +63,9 @@ func TestFuncsInTemplate(t *testing.T) {
        defer viper.Reset()
 
        // Add the examples from the docs: As a smoke test and to make sure the examples work.
-       // TODO(bep): Look at the use of safeHTML below; these should maybe return template.HTML
        // TODO(bep): docs: fix title example
        in :=
-               `chomp: {{chomp "<p>Blockhead</p>\n" | safeHTML }}
+               `chomp: {{chomp "<p>Blockhead</p>\n" }}
 dateFormat: {{ dateFormat "Monday, Jan 2, 2006" "2015-01-21" }}
 lower: {{lower "BatMan"}}
 markdownify: {{ .Title | markdownify}}
@@ -1643,7 +1642,8 @@ func TestChomp(t *testing.T) {
                "\r", "\r\r",
                "\r\n", "\r\n\r\n",
        } {
-               chomped, _ := chomp(base + item)
+               c, _ := chomp(base + item)
+               chomped := string(c)
 
                if chomped != base {
                        t.Errorf("[%d] Chomp failed, got '%v'", i, chomped)