Introduction #
A home page template is used to render your site’s home page, and is the only template required for a single-page website. For example, the home page template below inherits the site’s shell from the base template and renders the home page content, such as a list of other pages.
layouts/_default/home.html
{{ define "main" }}
{{ .Content }}
{{ range site.RegularPages }}
<h2><a href="{{ .RelPermalink }}">{{ .LinkTitle }}</a></h2>
{{ end }}
{{ end }}
Lookup order #
Hugo’s [template lookup order] determines the template path, allowing you to create unique templates for any page.
Content and front matter #
The home page template uses content and front matter from an _index.md
file located in the root of your content directory.
content/_index.md
---
date: "2025-01-30T03:36:57-08:00"
draft: false
params:
subtitle: The Subtitle
title: The Home Page
---
+++
date = '2025-01-30T03:36:57-08:00'
draft = false
title = 'The Home Page'
[params]
subtitle = 'The Subtitle'
+++
{
"date": "2025-01-30T03:36:57-08:00",
"draft": false,
"params": {
"subtitle": "The Subtitle"
},
"title": "The Home Page"
}
The home page template below inherits the site’s shell from the base template, renders the subtitle and content as defined in the _index.md
file, then renders of list of the site’s [regular pages].
layouts/_default/home.html
{{ define "main" }}
<h3>{{ .Params.Subtitle }}</h3>
{{ .Content }}
{{ range site.RegularPages }}
<h2><a href="{{ .RelPermalink }}">{{ .LinkTitle }}</a></h2>
{{ end }}
{{ end }}