I'm trying to use a variable within the content of a Hugo statically generated site. For example, the content looks like the following:
{{ .Site.BaseURL }}
)When this gets rendered, the {{ .... }}
part doesn't get processed...it stays the same as I put above. I've tried it with a $
in front as well. Variables within templates seem to work just fine. Do I need to create a shortcode to use within content pages?
This is an attempt to slightly improve @minitauros answer with a simplistic example to lookup a (site) parameter sub-key (aka walk the YAML tree, infer an element, etc.).
I would like Hugo to have a JSONPath or jq syntax and, obviously, this example is far from competing with either solutions.
config.yml
params:
mode: one
support:
mailing: [email protected]
layouts/shortcodes/param.html
{{ $v := .Site.Params }}
{{ range (split (.Get 0) ".") }}{{ $v = index $v (.) }}{{ end }}
{{ $v }}
content/_index.md
We are in mode {{< param "mode" >}}.
In case of turbulence, [reach the support](mailto:{{< param "support.mailing" >}}) for help.
So it looks like a shortcode is the way to do this. For what it's worth, I changed the document to look like the following:
In layouts/shortcodes
, I created the file siteurl.html
. It looks like the following:
{{ .Page.Site.BaseURL }}
I needed to add .Page in there to get access to the Site variables. See this Issue Report for more details.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With