mirror of
https://github.com/gohugoio/hugo.git
synced 2024-11-14 20:37:55 -05:00
41bc6f702a
2c0125b52 Remove .Site.Author 2cf8841b3 Update partialCached.md (#1924) 385487191 Update data-templates.md (#1926) ce207e141 Remove redundant markdown and fix a few typos (#1936) 3687c2953 Make heading id linkable, take 2 45c79bea7 Make heading id linkable b22079344 Delete duplicates the lines 557-569 and 570-582. (#1934) 0a90dc122 Rework the taxonomy variables page (#1935) 7f8979c50 Update theme 26e682a3a Update multilingual.md d40e7693f Update postcss.md 375d75c01 Update postcss npm instructions (#1931) 63020094a Emphasize Window shell selection (#1930) 56824be2c Update configuration.md b7b8f16b3 Docu 'Theme components': minor fix (#1929) 09dc81a05 Remove Docker from BSD page (#1927) 205fea204 netlify: Hugo 0.108.0 6abe49c28 Merge commit 'da670c38ee63a7fef25e2b9f42519232055b60dc' 12b59a4c5 docs: Add basic doc for wrapStandAloneImageWithinParagraph etc. ba07bd970 dartsass: Add sourceMapIncludeSources option git-subtree-dir: docs git-subtree-split: 2c0125b5290494d49334606c451446ebd9df3c21
71 lines
2.6 KiB
Markdown
71 lines
2.6 KiB
Markdown
---
|
|
title: Homepage Template
|
|
linktitle: Homepage Template
|
|
description: The homepage of a website is often formatted differently than the other pages. For this reason, Hugo makes it easy for you to define your new site's homepage as a unique template.
|
|
date: 2017-02-01
|
|
publishdate: 2017-02-01
|
|
lastmod: 2017-02-01
|
|
categories: [templates]
|
|
keywords: [homepage]
|
|
menu:
|
|
docs:
|
|
parent: "templates"
|
|
weight: 30
|
|
weight: 30
|
|
sections_weight: 30
|
|
draft: false
|
|
aliases: [/layout/homepage/,/templates/homepage-template/]
|
|
toc: true
|
|
---
|
|
|
|
Homepage is a `Page` and therefore has all the [page variables][pagevars] and [site variables][sitevars] available for use.
|
|
|
|
{{% note "The Only Required Template" %}}
|
|
The homepage template is the *only* required template for building a site and therefore useful when bootstrapping a new site and template. It is also the only required template if you are developing a single-page website.
|
|
{{% /note %}}
|
|
|
|
{{< youtube ut1xtRZ1QOA >}}
|
|
|
|
## Homepage Template Lookup Order
|
|
|
|
See [Template Lookup](/templates/lookup-order/).
|
|
|
|
## Add Content and Front Matter to the Homepage
|
|
|
|
The homepage, similar to other [list pages in Hugo][lists], accepts content and front matter from an `_index.md` file. This file should live at the root of your `content` folder (i.e., `content/_index.md`). You can then add body copy and metadata to your homepage the way you would any other content file.
|
|
|
|
See the homepage template below or [Content Organization][contentorg] for more information on the role of `_index.md` in adding content and front matter to list pages.
|
|
|
|
## Example Homepage Template
|
|
|
|
The following is an example of a homepage template that uses [partial][partials], [base] templates, and a content file at `content/_index.md` to populate the `{{.Title}}` and `{{.Content}}` [page variables][pagevars].
|
|
|
|
{{< code file="layouts/index.html" download="index.html" >}}
|
|
{{ define "main" }}
|
|
<main aria-role="main">
|
|
<header class="homepage-header">
|
|
<h1>{{.Title}}</h1>
|
|
{{ with .Params.subtitle }}
|
|
<span class="subtitle">{{.}}</span>
|
|
{{ end }}
|
|
</header>
|
|
<div class="homepage-content">
|
|
<!-- Note that the content for index.html, as a sort of list page, will pull from content/_index.md -->
|
|
{{.Content}}
|
|
</div>
|
|
<div>
|
|
{{ range first 10 .Site.RegularPages }}
|
|
{{ .Render "summary"}}
|
|
{{ end }}
|
|
</div>
|
|
</main>
|
|
{{ end }}
|
|
{{< /code >}}
|
|
|
|
[base]: /templates/base/
|
|
[contentorg]: /content-management/organization/
|
|
[lists]: /templates/lists/
|
|
[lookup]: /templates/lookup-order/
|
|
[pagevars]: /variables/page/
|
|
[partials]: /templates/partials/
|
|
[sitevars]: /variables/site/
|