HUGO
Menu
GitHub 89803 stars Mastodon

transform.Remarshal

Returns a string of serialized data in the specified format, marshaled from a string of serialized data or a map.
Syntax
transform.Remarshal FORMAT INPUT
Returns
string

Usage

The format must be one of json, toml, yaml, or xml. If the input is a string of serialized data, it must be valid JSON, TOML, YAML, or XML.

This function is primarily a helper for Hugo’s documentation, used to convert configuration and front matter examples to JSON, TOML, and YAML.

This is not a general purpose converter, and may change without notice if required for Hugo’s documentation site.

Examples

The following examples convert data from one serialized format to another.

TOML to JSON

This example converts a string of TOML to JSON:

{{ $s := `
  baseURL = 'https://example.org/'
  locale = 'en-US'
  title = 'ABC Widgets'
`}}
<pre>{{ transform.Remarshal "json" $s }}</pre>

Resulting HTML:

<pre>{
   &#34;baseURL&#34;: &#34;https://example.org/&#34;,
   &#34;locale&#34;: &#34;en-US&#34;,
   &#34;title&#34;: &#34;ABC Widgets&#34;
}
</pre>

Rendered in browser:

{
   "baseURL": "https://example.org/",
   "locale": "en-US",
   "title": "ABC Widgets"
}

Map to YAML

This example converts a map to YAML:

{{ $m := dict
  "a" "Hugo rocks!"
  "b" (dict "question" "What is 6x7?" "answer" 42)
  "c" (slice "foo" "bar")
}}
<pre>{{ transform.Remarshal "yaml" $m }}</pre>

Resulting HTML:

<pre>a: Hugo rocks!
b:
  answer: 42
  question: What is 6x7?
c:
- foo
- bar
</pre>

Rendered in browser:

a: Hugo rocks!
b:
  answer: 42
  question: What is 6x7?
c:
- foo
- bar