From 18114d4b4a31aba2d7d14f254ec25f318039df63 Mon Sep 17 00:00:00 2001 From: Kaushal Modi Date: Fri, 9 Mar 2018 17:07:48 -0500 Subject: [PATCH] Update Output Formats --- content/templates/output-formats.md | 40 +++++++++++++++++++++-------- 1 file changed, 30 insertions(+), 10 deletions(-) diff --git a/content/templates/output-formats.md b/content/templates/output-formats.md index 9af68f5e0..f51c0eb9b 100644 --- a/content/templates/output-formats.md +++ b/content/templates/output-formats.md @@ -1,7 +1,7 @@ --- title: Custom Output Formats linktitle: Custom Output Formats -description: Hugo can output content in multiple formats, including calendar events, e-book formats, Google AMP, and JSON search indexes, or any custom text format. +description: Hugo can output content in multiple formats, including calendar events, e-book formats, Google AMP, and JSON search indexes, or any custom text format. date: 2017-03-22 publishdate: 2017-03-22 lastmod: 2017-03-22 @@ -60,11 +60,11 @@ suffix = "htm" mediaType = "text/html" ``` -**Note** that for the above to work, you also need to add an`outputs` definition in your site config. +**Note** that for the above to work, you also need to add an `outputs` definition in your site config. -## Output Formats +## Output Format Definitions -Given a media type and some additional configuration, you get an `Output Format`: +Given a media type and some additional configuration, you get an **Output Format**. This is the full set of Hugo's built-in output formats: @@ -122,9 +122,26 @@ The following is the full list of configuration options for output formats and t ## Output Formats for Pages -A `Page` in Hugo can be rendered to multiple representations on the file system. By default, all pages will render as `HTML` with some of them also as `RSS` (homepage, sections, etc.). +A `Page` in Hugo can be rendered to multiple *output formats* on the file +system. -This can be changed by defining an `outputs` list of output formats in either the `Page` front matter or in the site configuration (either for all sites or per language). +### Default Output Formats +Every `Page` has a [`Kind`][page_kinds] attribute, and the default Output +Formats are set based on that. + +| Kind | Default Output Formats | +|--------------- |----------------------- | +| `page` | HTML | +| `home` | HTML, RSS | +| `section` | HTML, RSS | +| `taxonomyTerm` | HTML, RSS | +| `taxonomy` | HTML, RSS | + +### Customizing Output Formats + +This can be changed by defining an `outputs` list of output formats in either +the `Page` front matter or in the site configuration (either for all sites or +per language). Example from site `config.toml`: @@ -142,12 +159,14 @@ outputs: page: ["HTML"] ``` +Note that in the above examples, the *output formats* for `section`, +`taxonomyTerm` and `taxonomy` will stay at their default value `["HTML", +"RSS"]`. -* The output definition is per `Page` `Kind` (i.e, `page`, `home`, `section`, `taxonomy`, or `taxonomyTerm`). -* The names used must match the `Name` of a defined `Output Format`. -* Any `Kind` without a definition will default to `HTML`. +* The `outputs` definition is per [`Page` `Kind`][page_kinds] (`page`, `home`, `section`, `taxonomy`, or `taxonomyTerm`). +* The names (e.g. `HTML`, `AMP`) used must match the `Name` of a defined *Output Format*. + * These names are case insensitive. * These can be overridden per `Page` in the front matter of content files. -* Output formats are case insensitive. The following is an example of `YAML` front matter in a content file that defines output formats for the rendered `Page`: @@ -222,3 +241,4 @@ The partial below is a plain text template (Outpuf Format is `CSV`, and since th [lookup order]: /templates/lookup/ [media type]: https://en.wikipedia.org/wiki/Media_type [partials]: /templates/partials/ +[page_kinds]: /templates/section-templates/#page-kinds