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.
- Shortcodes with raw string parameters ` `
- Shortcodes with Markdown
% %
- Shortcodes without Markdown
< >
See detail shortcodes/#use-shortcodes
figure
Example figure
input:
|
|
The rendered output looks like this:

Lighthouse (figure)
The HTML looks like this:
|
|
gist
Example gist
input:
|
|
The rendered output looks like this:
<!-- image --> | |
<figure {{ if isset .Params "class" }}class="{{ index .Params "class" }}"{{ end }}> | |
{{ if isset .Params "link"}}<a href="{{ index .Params "link"}}">{{ end }} | |
<img src="{{ index .Params "src" }}" {{ if or (isset .Params "alt") (isset .Params "caption") }}alt="{{ if isset .Params "alt"}}{{ index .Params "alt"}}{{else}}{{ index .Params "caption" }}{{ end }}"{{ end }} /> | |
{{ if isset .Params "link"}}</a>{{ end }} | |
{{ if or (or (isset .Params "title") (isset .Params "caption")) (isset .Params "attr")}} | |
<figcaption>{{ if isset .Params "title" }} | |
<h4>{{ index .Params "title" }}</h4>{{ end }} | |
{{ if or (isset .Params "caption") (isset .Params "attr")}}<p> | |
{{ index .Params "caption" }} | |
{{ if isset .Params "attrlink"}}<a href="{{ index .Params "attrlink"}}"> {{ end }} | |
{{ index .Params "attr" }} | |
{{ if isset .Params "attrlink"}}</a> {{ end }} | |
</p> {{ end }} | |
</figcaption> | |
{{ end }} | |
</figure> | |
<!-- image --> |
The HTML looks like this:
|
|
highlight
Example highlight
input:
|
|
The rendered output looks like this:
|
|
param
Example param
input:
|
|
The rendered output looks like this:
Hugo provides multiple built-in shortcodes for author convenience and to keep your markdown content clean.ref and relref
Documentation of ref
and relref
tweet
Example tweet
input:
|
|
The rendered output looks like this:
Owl bet you'll lose this staring contest 🦉 pic.twitter.com/eJh4f2zncC
— San Diego Zoo Wildlife Alliance (@sandiegozoo) October 26, 2021
vimeo
Example vimeo
input:
|
|
The rendered output looks like this:
youtube
Example youtube
input:
|
|
The rendered output looks like this: