ref: 88dcbc6efa419c97e95b7a05991d431d9c6b87a7
parent: 26725515c816506cdcaef7f35a934e492d9508e1
author: Stephan Kulla <stephan.kulla@kulla>
date: Fri Aug 12 20:31:50 EDT 2016
tpl: Make absURL and relURL accept anything
--- a/tpl/template_funcs.go
+++ b/tpl/template_funcs.go
@@ -1803,7 +1803,7 @@
func init() {
funcMap = template.FuncMap{
- "absURL": func(a string) template.HTML { return template.HTML(helpers.AbsURL(a)) },
+ "absURL": func(a interface{}) template.HTML { return template.HTML(helpers.AbsURL(cast.ToString(a))) },
"add": func(a, b interface{}) (interface{}, error) { return helpers.DoArithmetic(a, b, '+') },
"after": after,
"apply": apply,
@@ -1856,7 +1856,7 @@
"readDir": readDirFromWorkingDir,
"readFile": readFileFromWorkingDir,
"ref": ref,
- "relURL": func(a string) template.HTML { return template.HTML(helpers.RelURL(a)) },
+ "relURL": func(a interface{}) template.HTML { return template.HTML(helpers.RelURL(cast.ToString(a))) },
"relref": relRef,
"replace": replace,
"replaceRE": replaceRE,
--- a/tpl/template_funcs_test.go
+++ b/tpl/template_funcs_test.go
@@ -82,6 +82,7 @@
in :=
`absURL: {{ "http://gohugo.io/" | absURL }}
absURL: {{ "mystyle.css" | absURL }}
+absURL: {{ 42 | absURL }}
add: {{add 1 2}}
base64Decode 1: {{ "SGVsbG8gd29ybGQ=" | base64Decode }}
base64Decode 2: {{ 42 | base64Encode | base64Decode }}
@@ -121,6 +122,7 @@
readFile: {{ readFile "README.txt" }}
relURL 1: {{ "http://gohugo.io/" | relURL }}
relURL 2: {{ "mystyle.css" | relURL }}
+relURL 2: {{ mul 2 21 | relURL }}
replace: {{ replace "Batman and Robin" "Robin" "Catwoman" }}
replaceRE: {{ "http://gohugo.io/docs" | replaceRE "^https?://([^/]+).*" "$1" }}
safeCSS: {{ "Bat&Man" | safeCSS | safeCSS }}
@@ -146,6 +148,7 @@
expected := `absURL: http://gohugo.io/
absURL: http://mysite.com/hugo/mystyle.css
+absURL: http://mysite.com/hugo/42
add: 3
base64Decode 1: Hello world
base64Decode 2: 42
@@ -185,6 +188,7 @@
readFile: Hugo Rocks!
relURL 1: http://gohugo.io/
relURL 2: /hugo/mystyle.css
+relURL 2: /hugo/42
replace: Batman and Catwoman
replaceRE: gohugo.io
safeCSS: Bat&Man