summaryrefslogtreecommitdiffstats
path: root/docs/content/en/functions/base64.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/content/en/functions/base64.md')
-rw-r--r--docs/content/en/functions/base64.md51
1 files changed, 51 insertions, 0 deletions
diff --git a/docs/content/en/functions/base64.md b/docs/content/en/functions/base64.md
new file mode 100644
index 000000000..2f0729b85
--- /dev/null
+++ b/docs/content/en/functions/base64.md
@@ -0,0 +1,51 @@
+---
+title: base64
+description: "`base64Encode` and `base64Decode` let you easily decode content with a base64 encoding and vice versa through pipes."
+godocref:
+date: 2017-02-01
+publishdate: 2017-02-01
+lastmod: 2017-02-01
+categories: [functions]
+menu:
+ docs:
+ parent: "functions"
+keywords: []
+relatedfuncs: []
+signature: ["base64Decode INPUT", "base64Encode INPUT"]
+workson: []
+hugoversion:
+deprecated: false
+draft: false
+aliases: []
+---
+
+An example:
+
+{{< code file="base64-input.html" >}}
+<p>Hello world = {{ "Hello world" | base64Encode }}</p>
+<p>SGVsbG8gd29ybGQ = {{ "SGVsbG8gd29ybGQ=" | base64Decode }}</p>
+{{< /code >}}
+
+{{< output file="base-64-output.html" >}}
+<p>Hello world = SGVsbG8gd29ybGQ=</p>
+<p>SGVsbG8gd29ybGQ = Hello world</p>
+{{< /output >}}
+
+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.
+
+```
+{{ 42 | base64Encode | base64Decode }}
+=> "42" rather than 42
+```
+
+## `base64` with APIs
+
+Using base64 to decode and encode becomes really powerful if we have to handle
+responses from APIs.
+
+```
+{{ $resp := getJSON "https://api.github.com/repos/gohugoio/hugo/readme" }}
+{{ $resp.content | base64Decode | markdownify }}
+```
+
+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.