HUGO Docs

  • News
  • About
    • In this section
    • Introduction
    • Features
    • Privacy
    • Security
    • License
  • Installation
    • In this section
    • macOS
    • Linux
    • Windows
    • BSD
  • Getting started
    • In this section
    • Quick start
    • Basic usage
    • Directory structure
    • Configuration
    • Configure markup
    • Glossary of terms
    • External learning resources
  • Quick reference
    • In this section
    • Emojis
    • Functions
    • Methods
    • Page collections
  • Content management
    • In this section
    • Organization
    • Page bundles
    • Content formats
    • Front matter
    • Build options
    • Page resources
    • Image processing
    • Shortcodes
    • Related content
    • Sections
    • Content types
    • Archetypes
    • Taxonomies
    • Summaries
    • Links and cross references
    • URL management
    • Menus
    • Comments
    • Multilingual
    • Markdown attributes
    • Syntax highlighting
    • Diagrams
    • Mathematics
    • Data sources
    • Content adapters
  • Templates
    • In this section
    • Introduction
    • Template types
    • Lookup order
    • Base templates
    • Home templates
    • Single templates
    • Section templates
    • Taxonomy templates
    • Term templates
    • Partial templates
    • Content view templates
    • Shortcode templates
    • Sitemap templates
    • RSS templates
    • 404 templates
    • robots.txt templates
    • Menus
    • Pagination
    • Embedded templates
    • Custom output formats
  • Functions
    • In this section
    • cast
    • collections
    • compare
    • crypto
    • css
    • data
    • debug
    • diagrams
    • encoding
    • fmt
    • global
    • go template
    • hugo
    • images
    • inflect
    • js
    • lang
    • math
    • openapi3
    • os
    • partials
    • path
    • reflect
    • resources
    • safe
    • strings
    • templates
    • time
    • transform
    • urls
  • Methods
    • In this section
    • Duration
    • Menu
    • Menu entry
    • Page
    • Pager
    • Pages
    • Resource
    • Shortcode
    • Site
    • Taxonomy
    • Time
  • Render hooks
    • In this section
    • Introduction
    • Code blocks
    • Headings
    • Images
    • Links
  • Hugo Modules
    • In this section
    • Configure Hugo modules
    • Use Hugo Modules
    • Theme components
  • Hugo Pipes
    • In this section
    • Introduction
    • Transpile Sass to CSS
    • PostCSS
    • PostProcess
    • JavaScript building
    • Babel
    • Asset minification
    • Concatenating assets
    • Fingerprinting and SRI hashing
    • Resource from string
    • Resource from template
  • CLI
  • Troubleshooting
    • In this section
    • Audit
    • Logging
    • Inspection
    • Deprecation
    • Performance
    • FAQs
  • Developer tools
    • In this section
    • Editor plugins
    • Front-ends
    • Search
    • Migrations
    • Other projects
  • Hosting and deployment
    • In this section
    • Hugo Deploy
    • Deploy with Rclone
    • Deploy with Rsync
    • Host on 21YunBox
    • Host on AWS Amplify
    • Host on Azure Static Web Apps
    • Host on Cloudflare Pages
    • Host on Firebase
    • Host on GitHub Pages
    • Host on GitLab Pages
    • Host on KeyCDN
    • Host on Netlify
    • Host on Render
  • Contribute
    • In this section
    • Development
    • Documentation
    • Themes
  • Maintenance
CONTENT MANAGEMENT

Content formats

Create your content using Markdown, HTML, Emacs Org Mode, AsciiDoc, Pandoc, or reStructuredText.

Introduction

You may mix content formats throughout your site. For example:

content/
└── posts/
    ├── post-1.md
    ├── post-2.adoc
    ├── post-3.org
    ├── post-4.pandoc
    ├── post-5.rst
    └── post-6.html

Regardless of content format, all content must have front matter, preferably including both title and date.

Hugo selects the content renderer based on the markup identifier in front matter, falling back to the file extension. See the classification table below for a list of markup identifiers and recognized file extensions.

Formats

Markdown

Create your content in Markdown preceded by front matter.

Markdown is Hugo’s default content format. Hugo natively renders Markdown to HTML using Goldmark. Goldmark is fast and conforms to the CommonMark and GitHub Flavored Markdown specifications. You can configure Goldmark in your site configuration.

Hugo provides custom Markdown features including:

Attributes
Apply HTML attributes such as class and id to Markdown images and block elements including blockquotes, fenced code blocks, headings, horizontal rules, lists, paragraphs, and tables.
Extensions
Leverage the embedded Markdown extensions to create tables, definition lists, footnotes, task lists, inserted text, mark text, subscripts, superscripts, and more.
Mathematics
Include mathematical equations and expressions in Markdown using LaTeX or TeX typesetting syntax.
Render hooks
Override the conversion of Markdown to HTML when rendering fenced code blocks, headings, images, and links. For example, render every standalone image as an HTML figure element.

HTML

Create your content in HTML preceded by front matter. The content is typically what you would place within an HTML document’s body or main element.

Emacs Org Mode

Create your content in the Emacs Org Mode format preceded by front matter. You can use Org Mode keywords for front matter. See details).

AsciiDoc

Create your content in the AsciiDoc format preceded by front matter. Hugo renders AsciiDoc content to HTML using the Asciidoctor executable. You must install Asciidoctor and its dependencies (Ruby) to use the AsciiDoc content format.

You can configure the AsciiDoc renderer in your site configuration.

In its default configuration, Hugo passes these CLI flags when calling the Asciidoctor executable:

--no-header-footer

The CLI flags passed to the Asciidoctor executable depend on configuration. You may inspect the flags when building your site:

hugo --logLevel info

Pandoc

Create your content in the Pandoc format preceded by front matter. Hugo renders Pandoc content to HTML using the Pandoc executable. You must install Pandoc to use the Pandoc content format.

Hugo passes these CLI flags when calling the Pandoc executable:

--mathjax

reStructuredText

Create your content in the reStructuredText format preceded by front matter. Hugo renders reStructuredText content to HTML using Docutils, specifically rst2html. You must install Docutils and its dependencies (Python) to use the reStructuredText content format.

Hugo passes these CLI flags when calling the rst2html executable:

--leave-comments --initial-header-level=2

Classification

Content format Media type Identifier File extensions
Markdown text/markdown markdown markdown,md, mdown
HTML text/html html htm, html
Emacs Org Mode text/org org org
AsciiDoc text/asciidoc asciidoc ad, adoc, asciidoc
Pandoc text/pandoc pandoc pandoc, pdc
reStructuredText text/rst rst rst

When converting content to HTML, Hugo uses:

  • Native renderers for Markdown, HTML, and Emacs Org mode
  • External renderers for AsciiDoc, Pandoc, and reStructuredText

Native renderers are faster than external renderers.

See also

  • Configure markup
  • Documentation
  • Code block render hooks
  • Development
  • Front matter

On this page

  • Introduction
  • Formats
  • Classification
Last updated: July 5, 2024: hugo doc (a0ca0ab)
Improve this page
 

The Hugo logos are copyright © Steve Francia 2013–2024.

The Hugo Gopher is based on an original work by Renée French.

  • News
  • About
  • Installation
  • Getting started
  • Quick reference
  • Content management
  • Templates
  • Functions
  • Methods
  • Render hooks
  • Hugo Modules
  • Hugo Pipes
  • CLI
  • Troubleshooting
  • Developer tools
  • Hosting and deployment
  • Contribute
  • Maintenance