github.com/rabbouni145/gg@v0.47.1/docs/content/en/functions/base64.md (about) 1 --- 2 title: base64 3 description: "`base64Encode` and `base64Decode` let you easily decode content with a base64 encoding and vice versa through pipes." 4 godocref: 5 date: 2017-02-01 6 publishdate: 2017-02-01 7 lastmod: 2017-02-01 8 categories: [functions] 9 menu: 10 docs: 11 parent: "functions" 12 keywords: [] 13 relatedfuncs: [] 14 signature: ["base64Decode INPUT", "base64Encode INPUT"] 15 workson: [] 16 hugoversion: 17 deprecated: false 18 draft: false 19 aliases: [] 20 --- 21 22 An example: 23 24 {{< code file="base64-input.html" >}} 25 <p>Hello world = {{ "Hello world" | base64Encode }}</p> 26 <p>SGVsbG8gd29ybGQ = {{ "SGVsbG8gd29ybGQ=" | base64Decode }}</p> 27 {{< /code >}} 28 29 {{< output file="base-64-output.html" >}} 30 <p>Hello world = SGVsbG8gd29ybGQ=</p> 31 <p>SGVsbG8gd29ybGQ = Hello world</p> 32 {{< /output >}} 33 34 You can also pass other data types as arguments to the template function which tries to convert them. The following will convert *42* from an integer to a string because both `base64Encode` and `base64Decode` always return a string. 35 36 ``` 37 {{ 42 | base64Encode | base64Decode }} 38 => "42" rather than 42 39 ``` 40 41 ## `base64` with APIs 42 43 Using base64 to decode and encode becomes really powerful if we have to handle 44 responses from APIs. 45 46 ``` 47 {{ $resp := getJSON "https://api.github.com/repos/gohugoio/hugo/readme" }} 48 {{ $resp.content | base64Decode | markdownify }} 49 ``` 50 51 The response of the GitHub API contains the base64-encoded version of the [README.md](https://github.com/gohugoio/hugo/blob/master/README.md) in the Hugo repository. Now we can decode it and parse the Markdown. The final output will look similar to the rendered version on GitHub.