2019-10-21 10:22:28 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								---
							 
						 
					
						
							
								
									
										
										
										
											2023-07-29 11:15:54 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								title: Section page templates
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								linkTitle: Section templates
							 
						 
					
						
							
								
									
										
										
										
											2019-10-21 10:22:28 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								description: Templates used for section pages are **lists **  and therefore have all the variables and methods available to list pages.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								categories: [templates]
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								keywords: [lists,sections,templates]
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								menu:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  docs:
							 
						 
					
						
							
								
									
										
										
										
											2023-05-22 16:43:12 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    parent: templates
							 
						 
					
						
							
								
									
										
										
										
											2023-07-29 11:15:54 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    weight: 80
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								weight: 80
							 
						 
					
						
							
								
									
										
										
										
											2019-10-21 10:22:28 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								toc: true
							 
						 
					
						
							
								
									
										
										
										
											2023-12-04 15:14:18 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								aliases: [/templates/sections/]
							 
						 
					
						
							
								
									
										
										
										
											2019-10-21 10:22:28 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								---
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-07-29 11:15:54 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								## Add content and front matter to section templates
 
							 
						 
					
						
							
								
									
										
										
										
											2019-10-21 10:22:28 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								To effectively leverage section page templates, you should first understand Hugo's [content organization ](/content-management/organization/ ) and, specifically, the purpose of `_index.md`  for adding content and front matter to section and other list pages.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-07-29 11:15:54 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								## Section template lookup order
 
							 
						 
					
						
							
								
									
										
										
										
											2019-10-21 10:22:28 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								See [Template Lookup ](/templates/lookup-order/ ).
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-07-29 11:15:54 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								## Page kinds
 
							 
						 
					
						
							
								
									
										
										
										
											2019-10-21 10:22:28 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								Every `Page`  in Hugo has a `.Kind`  attribute.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-12-04 15:14:18 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								{{% include "content-management/_common/page-kinds.md" %}}
							 
						 
					
						
							
								
									
										
										
										
											2019-10-21 10:22:28 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-07-29 11:15:54 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								## `.Site.GetPage` with sections
 
							 
						 
					
						
							
								
									
										
										
										
											2019-10-21 10:22:28 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-10-20 09:42:39 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								`Kind`  can easily be combined with the [`where` ] function in your templates to create kind-specific lists of content. This method is ideal for creating lists, but there are times where you may want to fetch just the index page of a single section via the section's path.
							 
						 
					
						
							
								
									
										
										
										
											2019-10-21 10:22:28 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								The [`.GetPage`  function][getpage] looks up an index page of a given `Kind`  and `path` .
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								You can call `.Site.GetPage`  with two arguments: `kind`  (one of the valid values
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								of `Kind`  from above) and `kind value` .
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								Examples:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								-  `{{ .Site.GetPage "section" "posts" }}` 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								-  `{{ .Site.GetPage "page" "search" }}` 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-07-29 11:15:54 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								## Example: creating a default section template
 
							 
						 
					
						
							
								
									
										
										
										
											2019-10-21 10:22:28 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-12-04 15:14:18 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								{{< code file=layouts/_default/section.html >}}
							 
						 
					
						
							
								
									
										
										
										
											2019-10-21 10:22:28 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								{{ define "main" }}
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  <main>
							 
						 
					
						
							
								
									
										
										
										
											2023-08-07 10:35:12 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    {{ .Content }}
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      <ul class="contents">
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        {{ range .Paginator.Pages }}
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								          <li>{{ .Title }}
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            <div>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								              {{ partial "summary.html" . }}
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            </div>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								          </li>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        {{ end }}
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      </ul>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    {{ partial "pagination.html" . }}
							 
						 
					
						
							
								
									
										
										
										
											2019-10-21 10:22:28 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								  </main>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								{{ end }}
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								{{< /code >}}
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-07-29 11:15:54 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								### Example: using `.Site.GetPage`
 
							 
						 
					
						
							
								
									
										
										
										
											2019-10-21 10:22:28 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								The `.Site.GetPage`  example that follows assumes the following project directory structure:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-11-17 16:14:29 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								```txt
							 
						 
					
						
							
								
									
										
										
										
											2019-10-21 10:22:28 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								└── content
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    ├── blog
							 
						 
					
						
							
								
									
										
										
										
											2023-12-04 15:14:18 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    │   ├── _index.md # "title: My Hugo Blog" in the front matter
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    │   ├── post-1.md
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    │   ├── post-2.md
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    │   └── post-3.md
							 
						 
					
						
							
								
									
										
										
										
											2019-10-21 10:22:28 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								    └── events #Note  there is no _index.md file in "events"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        ├── event-1.md
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        └── event-2.md
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								`.Site.GetPage`  will return `nil`  if no `_index.md`  page is found. Therefore, if `content/blog/_index.md`  does not exist, the template will output the section name:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-11-17 16:14:29 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								```go-html-template
							 
						 
					
						
							
								
									
										
										
										
											2019-10-21 10:22:28 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								<h1>{{ with .Site.GetPage "section" "blog" }}{{ .Title }}{{ end }}</h1>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								Since `blog`  has a section index page with front matter at `content/blog/_index.md` , the above code will return the following result:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-11-17 16:14:29 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								```html
							 
						 
					
						
							
								
									
										
										
										
											2019-10-21 10:22:28 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								<h1>My Hugo Blog</h1>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								If we try the same code with the `events`  section, however, Hugo will default to the section title because there is no `content/events/_index.md`  from which to pull content and front matter:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-11-17 16:14:29 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								```go-html-template
							 
						 
					
						
							
								
									
										
										
										
											2019-10-21 10:22:28 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								<h1>{{ with .Site.GetPage "section" "events" }}{{ .Title }}{{ end }}</h1>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								Which then returns the following:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-11-17 16:14:29 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								```html
							 
						 
					
						
							
								
									
										
										
										
											2019-10-21 10:22:28 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								<h1>Events</h1>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								[contentorg]: /content-management/organization/
							 
						 
					
						
							
								
									
										
										
										
											2023-12-04 15:14:18 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								[getpage]: /methods/page/getpage
							 
						 
					
						
							
								
									
										
										
										
											2019-10-21 10:22:28 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								[lists]: /templates/lists/
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								[lookup]: /templates/lookup-order/
							 
						 
					
						
							
								
									
										
										
										
											2023-10-20 09:42:39 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								[`where` ]: /functions/collections/where
							 
						 
					
						
							
								
									
										
										
										
											2019-10-21 10:22:28 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								[sections]: /content-management/sections/