I’m still not fluent in HTML/JS/Go etc.
Would someone kindly tell me, is it possible to place a variable in the front matter of a page, such as:
codeB = true
So that in the partial sidebar.html I can place something like:
IF codeB = true
THEN { the HTML code version B to be rendered }
ELSE { the HTML code version A to be rendered }
?
I would like some pages to have a slightly modified sidebar. [If I’ve got it right first time - I’ll post it as a tip!]
Yes. Go templates support if/else logic.
{{ if eq .Params.codeb "blog" }}blah{{ else }}bleh{{ end }}
Please look at http://gohugo.io/templates/functions/ for some examples. You’ll want to review the “isset” function if you don’t plan on setting the variable on every page. In face, if you’re treating codeB
as a boolean, the isset is much better than the “eq”.
Thank you @michael.henderson. It worked like a dream using eq and values “yes” or “no” for codeB.
I tried isset but got into a mess over whether boolean values were “true” or true and “false” or false. But it’s been a long day and I decided not to fight it.
Bonus: using the same technique in the footer I’ve been able to stop Disqus rendering in pages where it’s inappropriate.
2 Likes