3068989b9 Merge commit '7ae9cf2ccb3eecc1ff50f686925249d01cf37c6c' 7ae9cf2cc Squashed 'themes/gohugoioTheme/' changes from d7a475e7..a1768ebb b55157fae Revert "Anchorify headings up to h4" b63dd5566 Anchorify headings up to h4 edfe36a19 Test out trac as highlighter style 98dc8d269 Update multilingual.md a6e4d92c0 Update multilingual.md 86a90edf9 Fix typo 'If will' to 'It will' line 41 6b626fac6 Add a tip for testing custom 404.html on hugo server 6bfc17cfc Update few links to now point to gohugoio organization repos f66bad971 Remove unintended alias 3bc56e9ec Fix shortcode name in example: image -> img 251142388 Fix broken link 27245af6a Fix the minimum required git version for GH Pages flow aefc87b4d Fix link in Forestry showcase 489ec5ea0 Squashed 'themes/gohugoioTheme/' changes from 6f3a8bf5..d7a475e7 308a616fd Merge commit '489ec5ea03799fa092d891838c1655e60b34f337' a80859814 Adjust showcase description git-subtree-dir: docs git-subtree-split: 3068989b9c601146e8e6be8c4e8e2b2c679e5230
3.3 KiB
title | linktitle | description | godocref | date | publishdate | lastmod | categories | keywords | menu | weight | sections_weight | draft | aliases | toc | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Hugo's Lookup Order | Template Lookup Order | Hugo searches for the layout to use for a given page in a well defined order, starting from the most specific. | 2017-02-01 | 2017-02-01 | 2017-05-25 |
|
|
|
15 | 15 | false |
|
true |
Hugo Layouts Lookup Rules
Hugo takes the parameters listed below into consideration when choosing a layout for a given page. They are listed in a priority order. This should feel natural, but look at the table below for concrete examples of the different parameter variations.
- Kind
- The page
Kind
(the home page is one). See the example tables below per kind. This also determines if it is a single page (i.e. a regular content page. We then look for a template in_default/single.html
for HTML) or a list page (section listings, home page, taxonomy lists, taxonomy terms. We then look for a template in_default/list.html
for HTML). - Output Format
- See Custom Output Formats. An output format has both a
name
(e.g.rss
,amp
,html
) and asuffix
(e.g.xml
,html
). We prefer matches with both (e.g.index.amp.html
, but look for less specific templates. - Language
- We will consider a language code in the template name. If the site language is
fr
,index.fr.amp.html
will win overindex.amp.html
, but we willindex.amp.html
will be chosen beforeindex.fr.html
. - Layout
- Can be set in page front matter.
- Type
- Is value of
type
if set in front matter, else it is the name of the root section (e.g. "blog"). It will always have a value, so if not set, the value is "page". - Section
- Is relevant for
section
,taxonomy
andtaxonomyTerm
types.
{{% note %}} Tip: The examples below looks long and complex. That is the flexibility talking. Most Hugo sites contain just a handful of templates:
├── _default
│ ├── baseof.html
│ ├── list.html
│ └── single.html
└── index.html
{{% /note %}}
Hugo Layouts Lookup Rules With Theme
In Hugo, layouts can live in either the project's or theme's layout folder, and the most specific layout will be chosen. Hugo will interleave the lookups:
- layouts/page/index.html
- demoTheme/layouts/page/index.html
- layouts/...
This way it is possible to override specific templates from the theme.
Examples: Layout Lookup for Regular Pages
{{< datatable-filtered "output" "layouts" "Kind == page" "Example" "OutputFormat" "Suffix" "Template Lookup Order" >}}
Examples: Layout Lookup for Home Page
{{< datatable-filtered "output" "layouts" "Kind == home" "Example" "OutputFormat" "Suffix" "Template Lookup Order" >}}
Examples: Layout Lookup for Section Pages
{{< datatable-filtered "output" "layouts" "Kind == section" "Example" "OutputFormat" "Suffix" "Template Lookup Order" >}}
Examples: Layout Lookup for Taxonomy List Pages
{{< datatable-filtered "output" "layouts" "Kind == taxonomy" "Example" "OutputFormat" "Suffix" "Template Lookup Order" >}}
Examples: Layout Lookup for Taxonomy Terms Pages
{{< datatable-filtered "output" "layouts" "Kind == taxonomyTerm" "Example" "OutputFormat" "Suffix" "Template Lookup Order" >}}