You can put any file type into your /content directories, but Hugo uses the markup front matter value if set or the file extension (see Markup identifiers in the table below) to determine if the markup needs to be processed, e.g.:
To be treated as a content file, with layout, shortcodes etc., it must have front matter. If not, it will be copied as-is.
The markup identifier is fetched from either the markup variable in front matter or from the file extension. For markup-related configuration, see Configure Markup.
Some of the formats in the table above need external helpers installed on your PC. For example, for AsciiDoc files,
Hugo will try to call the asciidoctor command. This means that you will have to install the associated
tool on your machine to be able to use these formats.
Hugo passes reasonable default arguments to these external helpers by default:
AsciiDoc implementation EOLs in Jan 2020 and is no longer supported.
AsciiDoc development is being continued under Asciidoctor. The format AsciiDoc
remains of course. Please continue with the implementation Asciidoctor.
External Helper Asciidoctor
The Asciidoctor community offers a wide set of tools for the AsciiDoc format that can be installed additionally to Hugo.
See the Asciidoctor docs for installation instructions. Make sure that also all
optional extensions like asciidoctor-diagram or asciidoctor-html5s are installed if required.
Don’t change this unless you know what you are doing.
Currently, the only document type supported in Hugo is article.
Possible extensions are asciidoctor-html5s, asciidoctor-bibtex, asciidoctor-diagram, asciidoctor-interdoc-reftext, asciidoctor-katex, asciidoctor-latex, asciidoctor-mathematical, asciidoctor-question, asciidoctor-rouge.
Variables to be referenced in your AsciiDoc file. This is a list of variable name/value maps. See Asciidoctor’s attributes.
Output an embeddable document, which excludes the header, the footer, and everything outside the body of the document. Don’t change this unless you know what you are doing.
Safe mode level unsafe, safe, server or secure. Don’t change this unless you know what you are doing.
Auto-number section titles.
Verbosely print processing information and configuration file checks to stderr.
Include backtrace information on errors.
The minimum logging level that triggers a non-zero exit code (failure).
Hugo provides additional settings that don’t map directly to Asciidoctor’s CLI options:
Sets the working directory to be the same as that of the AsciiDoc file being processed, so that include will work with relative paths. This setting uses the asciidoctor cli parameter --base-dir and attribute outdir=. For rendering diagrams with asciidoctor-diagram, workingFolderCurrent must be set to true.
By default, Hugo removes the table of contents generated by Asciidoctor and provides it through the built-in variable .TableOfContents to enable further customization and better integration with the various Hugo themes. This option can be set to true to preserve Asciidoctor’s TOC in the generated page.
Below are all the AsciiDoc related settings in Hugo with their default values:
Notice that for security concerns only extensions that do not have path separators (either \, / or .) are allowed. That means that extensions can only be invoked if they are in one’s ruby’s $LOAD_PATH (ie. most likely, the extension has been installed by the user). Any extension declared relative to the website’s path will not be accepted.