Skip to content
Choose a tag to compare


@bep bep released this
· 48 commits to master since this release
Choose a tag to compare

$page.RenderString (see #6703) finally supports shortcodes, and shortcode improvements is the main theme in Hugo 0.100.0.

Indentation fixes for shortcode blocks: We now record the indentation before the opening shortcode tag when parsing the source. This allow us to fix a couple of annoying issues in Hugo:

  1. We have added a new .InnerIndent method to the shortcode context to prevent the highlight shortcode from including in the indentation as part of the code block. See #4717.
  2. Hugo now preserves the indentation for shortcode blocks. See more below.

A shortcode block is when the shortcode is included as the first non-whitespace content on a line. Note that this does not touch shortcodes with inner content, where the user is in control of the indentation. See issue #9946 for more information. An example, say that I have this in layouts/shortcodes/

* Culpa enim incididunt fugiat id dolore velit laboris veniam minim.
* Tempor ex nisi labore ad elit laborum ex ullamco aute labore eu occaecat. 
* Deserunt mollit aliqua est laboris et irure eu non. 
* Consectetur nulla minim non reprehenderit Lorem elit dolore quis.

And then use that shortcode in a content file:

* My List
  {{% mylist %}}

In earlier versions of Hugo the above would render as:


Now it renders as:


Note that in the example above we use the md file suffix for the shortcode. In this release we also added Markdown as a built-in output format in Hugo, defined as a plain text format, meaning you get more lenient parsing compared to HTML. Using this if your shortcode produces Markdown has fewer quirks. See #9821.

Also noteworthy is the new template function resources.Copy which allows you to copy almost any Hugo Resource (the one exception is the Page), possibly most useful for renaming things:

{{ $resized := $image.Resize "400x400" |  resources.Copy "images/mynewname.jpg" } }}
<img src="{{ $resized.RelPermalink }}">

This release represents 32 contributions by 4 contributors to the main Hugo code base.@bep leads the Hugo development with a significant amount of contributions, but also a big shoutout to @dependabot[bot], @satotake, and @moorereason for their ongoing contributions.

Many have also been busy writing and fixing the documentation in hugoDocs,
which has received 1 contributions by 1 contributors.

Hugo now has:


  • The methods on Page IsDescendant and IsAncestor now returns true for itself, which is obviously the correct behaviour. We have fixed this before, but reverted it because it broke some theme's logic. Looking back, that reversion was a mistake. If you want the old logic you can get that by doing somethiong ala {{ if or (eq $p1 $p2) ($p1.IsAncestor $p2) }}{{ end }} #9925
  • We have removed Blackfriday as a Markdown option. It has been deprecated for a long time, its v1 version is not maintained anymore, and there are many known issues. Goldmark should be a mature replacement by now. #9944