My understanding is that shortcodes only accept strings:
Shortcode parameters mimic HTTP parameters; i.e. all strings and the datatype is contextual.
Given this shortcode:
{{with .Params }}{{printf "%#v " .}}{{end}}
{{< get-parameters-test-01 42 "foo bar" >}}
we get:
[]string{"42", "foo bar"}
all fine.
But with
{{< get-parameters-test-01 arg1=42 arg2="foo bar" >}}
=>
map[string]string{"arg1":"foo bar"}
the 42 is dropped and “foo bar” is assigned to arg1. arg2 gets dropped as well.
With
{{< get-parameters-test-01 arg1="42" arg2="foo bar" >}}
we get as expected:
map[string]string{"arg1":"42", "arg2":"foo bar"}
Maybe the above is kind of special as
{{< get-parameters-test-01 arg1=42 arg2=24 >}}
throws a hugo error:
unterminated quoted string in shortcode parameter-argument: '42 arg2=24 >}}
So “best practice” would be to always quote using " the values for named parameters?