You have href="{{safeurl .href}}",
Shouldn't that be "safejs"? Using "safehref" is causing the string to be hex encoded as a URL. Which means most special chars will be converted to hex representation. On Mon, Sep 9, 2019 at 4:53 AM Jens-Uwe Mager <juma...@gmail.com> wrote: > I am having a problem to properly escape javascript urls in my templates. > I do have the situation where I build a template that is having javascript > urls that are from variables in the go program (read from yaml files). The > go program generates static html, but the html is supposed to use > moustache.js to expand some further variables at render time. I am just not > able to preserve my javascript from the html/template escaping. Any ideas > what I am doing wrong? > > The output is: > > <a href="javascript:doSlide%28%27%7b%7barea%7d%7d%27%29;">{{test}}</a> > > > But I would like it to be: > > <a href="javascript:doSlide('{{area}}');">{{test}}</a> > > > package main > > import ( > "html/template" > "os" > ) > > var t = template.Must(template.New("test").Funcs(template.FuncMap{ > "safeattr": func(value string) template.HTMLAttr { > return template.HTMLAttr(value) > }, > "safehtml": func(value string) template.HTML { > return template.HTML(value) > }, > "safejs": func(value string) template.JS { > return template.JS(value) > }, > "safecss": func(value string) template.CSS { > return template.CSS(value) > }, > "safeurl": func(value string) template.URL { > return template.URL(value) > }, > }).Parse(` > <a href="{{safeurl .href}}">{{safehtml .content}}</a> > `)) > > func main() { > data := map[string]string{ > "href": "javascript:doSlide('{{area}}');", > "content": "{{test}}", > } > err := t.Execute(os.Stdout, data) > if err != nil { > panic(err) > } > } > > > > https://play.golang.org/p/F2EiuECCZWo > > > -- > You received this message because you are subscribed to the Google Groups > "golang-nuts" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to golang-nuts+unsubscr...@googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msgid/golang-nuts/0c93e49c-1e8b-4617-baef-0848b57fde93%40googlegroups.com > <https://groups.google.com/d/msgid/golang-nuts/0c93e49c-1e8b-4617-baef-0848b57fde93%40googlegroups.com?utm_medium=email&utm_source=footer> > . > -- Kurtis Rader Caretaker of the exceptional canines Junior and Hank -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/CABx2%3DD8g6n9WomHSzt7d%2BFF%2BvjJEUquT2uHXyr1Kz4m0Nv3E7Q%40mail.gmail.com.