My question may be naive, but I am looking to turn https://example.com
into https%3A%2F%2Fexample.com
, and specifically with this type of variable: {{ .Permalink }}
. htmlEscape seems to be the solution, but I get no difference between {{ .Permalink | htmlEscape }}
and {{ .Permalink }}
. Am I missing something?
HTML-escape escapes characters not allowed inside of HTML. What you want is URL-escaping, which escapes all characters that have a meaning in URLs. Urlize should do the trick:
1 Like
If you need to include a URL in a query string:
{{ $base := "https://foo.com" }}
{{ $queryString := querify "url" "https://example.com" }}
{{ printf "%s?%s" $base $queryString }}
Produces:
https://foo.com?url=https%3A%2F%2Fexample.com
1 Like
Many thanks @davidsneighbour and @jmooring! But I just need to convert https://example.com
into https%3A%2F%2Fexample.com
:
- urlize does not work (I have the same result with or without urlize β¦)
- querify itβs interesting but I just need to convert the URL, is there a simpliest way?
No functions that I am aware of. Options:
{{ $url := "https://example.com" }}
{{ $urlEncoded := index (split (querify "" $url) "=" ) 1 }}
{{/* or */}}
{{ $url := "https://example.com" }}
{{ $urlEncoded := replace $url ":" "%3A" -}}
{{ $urlEncoded = replace $urlEncoded "/" "%2F" -}}
@schnerring identified an undocumented function:
{{ urlquery "https://example.com" }} --> https%3A%2F%2Fexample.com
The function takes one or more args, producing a single string.
{{ urlquery "https:/" "/example.com" }} --> https%3A%2F%2Fexample.com
1 Like
Interesting function, thank you for following up on my questions!
This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.