Contents

Theme Documentation - Built-in Shortcodes


Hugo provides multiple built-in shortcodes for author convenience and to keep your markdown content clean.

Hugo uses Markdown for its simple content format. However, there are a lot of things that Markdown doesn’t support well. You could use pure HTML to expand possibilities.

But this happens to be a bad idea. Everyone uses Markdown because it’s pure and simple to read even non-rendered. You should avoid HTML to keep it as simple as possible.

To avoid this limitations, Hugo created shortcodes. A shortcode is a simple snippet that can generate reasonable HTML code and conforms to Markdown’s design philosophy.

Hugo ships with a set of predefined shortcodes that represent very common usage. These shortcodes are provided for author convenience and to keep your markdown content clean.

1 figure

Documentation of figure

Example figure input:

1
{{< figure src="/images/lighthouse.jpg" alt="/images/lighthouse.jpg" title="Lighthouse (figure)" >}}

The rendered output looks like this:

/images/lighthouse.jpg

Lighthouse (figure)

The HTML looks like this:

1
2
3
4
5
6
<figure>
    <img src="/images/lighthouse.jpg" alt="/images/lighthouse.jpg" />
    <figcaption>
        <h4>Lighthouse (figure)</h4>
    </figcaption>
</figure>

2 gist

Documentation of gist

Example gist input:

1
{{< gist spf13 7896402 >}}

The rendered output looks like this:

The HTML looks like this:

1
<script type="application/javascript" src="https://gist.github.com/spf13/7896402.js"></script>

3 highlight

Documentation of highlight

Example highlight input:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
{{< highlight html >}}
<section id="main">
    <div>
        <h1 id="title">{{ .Title }}</h1>
        {{ range .Pages }}
            {{ .Render "summary"}}
        {{ end }}
    </div>
</section>
{{< /highlight >}}

The rendered output looks like this:

1
2
3
4
5
6
7
8
<section id="main">
    <div>
        <h1 id="title">{{ .Title }}</h1>
        {{ range .Pages }}
            {{ .Render "summary"}}
        {{ end }}
    </div>
</section>

4 instagram

FeelIt CHANGED | 1.0.0

At the moment, Hugo using deprecated oEmbed-legacy linked API endpoint. Those deprecated API causes an error when Hugo retrieving the data. The newest API has been included in the extended shortcode.

5 param

Documentation of param

Example param input:

1
{{< param description >}}

The rendered output looks like this:

Hugo provides multiple built-in shortcodes for author convenience and to keep your markdown content clean.

6 ref and relref

Documentation of ref and relref

7 tweet

FeelIt CHANGED | 1.0.1

This method was moved with the newest API in the extended shortcode documentation.

8 vimeo

Documentation of vimeo

Example vimeo input:

1
{{< vimeo 146022717 >}}

The rendered output looks like this:

9 youtube

Documentation of youtube

Example youtube input:

1
{{< youtube w7Ft2ymGmfc >}}

The rendered output looks like this: