mirror of
https://github.com/gohugoio/hugo.git
synced 2024-11-14 20:37:55 -05:00
45e6fdb315
4eb10c1a9 Set a sensible maxAge on the image cache 2c37f4f89 Update lists.md 8690c018f Update introduction.md 0458c3d88 Update index.md 150982f5e Update index.md 50dc0b6b9 Update multilingual.md 648598090 Configure image cache to use :cacheDir/images 4dfb523c3 Update introduction.md b94d42e6f Add text to social images d3253d2aa Add resources/_gen/images/ to .gitignore 8a56e1dfd Delete resources/_gen/images 1521e79b6 Update introduction.md c7110a597 Update introduction.md f7c4d220f Update introduction.md c14ecf1ff Update introduction.md c4b388c20 Fix shortcode in hugo-pipes/introduction (#1605) d9876bd68 Update introduction.md a39a532d5 Update introduction.md fa8758122 netlify: Hugo 0.90.1 50cc40570 Update Contribute to Hugo Development fc98fc82c Add .vscode dir to .gitignore (#1602) 8f8bcdefc Add frontmatter param to code-toggle shortcode (#1601) f3b432c7c Add markdownlint configuration file (#1597) 7ea3aea92 netlify: Bump to 0.90.0 e2b6f990b docs: Regenerate docs helper c02259e33 Merge commit '8d9511a08f14260cbfb73119e4afae50e5a9966d' 2e3573899 Add custom font support to images.Text 3186e6458 images: Text filter that draws text with the given options (#9239) 424f219eb tpl/transform: Optional options for highlight func 7993f17d0 Implement XML data support 1eb9d34cf Make resources.Get use a file cache for remote resources 8a0fffd56 Add remote support to resources.Get git-subtree-dir: docs git-subtree-split: 4eb10c1a9689aebf652011a6260a14bf8a3dcef4
76 lines
2.2 KiB
Markdown
76 lines
2.2 KiB
Markdown
---
|
|
title: "transform.Unmarshal"
|
|
description: "`transform.Unmarshal` (alias `unmarshal`) parses the input and converts it into a map or an array. Supported formats are JSON, TOML, YAML, XML and CSV."
|
|
date: 2018-12-23
|
|
categories: [functions]
|
|
menu:
|
|
docs:
|
|
parent: "functions"
|
|
keywords: []
|
|
signature: ["RESOURCE or STRING | transform.Unmarshal [OPTIONS]"]
|
|
hugoversion: "0.53"
|
|
aliases: []
|
|
---
|
|
|
|
The function accepts either a `Resource` created in [Hugo Pipes](/hugo-pipes/) or via [Page Bundles](/content-management/page-bundles/), or simply a string. The two examples below will produce the same map:
|
|
|
|
```go-html-template
|
|
{{ $greetings := "hello = \"Hello Hugo\"" | transform.Unmarshal }}`
|
|
```
|
|
|
|
```go-html-template
|
|
{{ $greetings := "hello = \"Hello Hugo\"" | resources.FromString "data/greetings.toml" | transform.Unmarshal }}
|
|
```
|
|
|
|
In both the above examples, you get a map you can work with:
|
|
|
|
```go-html-template
|
|
{{ $greetings.hello }}
|
|
```
|
|
|
|
The above prints `Hello Hugo`.
|
|
|
|
## CSV Options
|
|
|
|
Unmarshal with CSV as input has some options you can set:
|
|
|
|
delimiter
|
|
: The delimiter used, default is `,`.
|
|
|
|
comment
|
|
: The comment character used in the CSV. If set, lines beginning with the comment character without preceding whitespace are ignored.:
|
|
|
|
Example:
|
|
|
|
```go-html-template
|
|
{{ $csv := "a;b;c" | transform.Unmarshal (dict "delimiter" ";") }}
|
|
```
|
|
|
|
## XML data
|
|
|
|
As a convenience, Hugo allows you to access XML data in the same way that you access JSON, TOML, and YAML: you do not need to specify the root node when accessing the data.
|
|
|
|
To get the contents of `<title>` in the document below, you use `{{ .message.title }}`:
|
|
|
|
```
|
|
<root>
|
|
<message>
|
|
<title>Hugo rocks!</title>
|
|
<description>Thanks for using Hugo</description>
|
|
</message>
|
|
</root>
|
|
```
|
|
|
|
The following example lists the items of an RSS feed:
|
|
|
|
```
|
|
{{ with resources.Get "https://example.com/rss.xml" | transform.Unmarshal }}
|
|
{{ range .channel.item }}
|
|
<strong>{{ .title | plainify | htmlUnescape }}</strong><br />
|
|
<p>{{ .description | plainify | htmlUnescape }}</p>
|
|
{{ $link := .link | plainify | htmlUnescape }}
|
|
<a href="{{ $link }}">{{ $link }}</a><br />
|
|
<hr>
|
|
{{ end }}
|
|
{{ end }}
|
|
```
|