docs: Add sections on node now being a page

Updates #2297
This commit is contained in:
Bjørn Erik Pedersen 2016-11-21 13:02:02 +01:00
parent 0eb5f54d30
commit e29f6fe527
7 changed files with 59 additions and 2 deletions

View file

@ -36,6 +36,8 @@ Hugo will automatically create pages for each section root that list all
of the content in that section. See [List Templates](/templates/list/) of the content in that section. See [List Templates](/templates/list/)
for details on customizing the way they appear. for details on customizing the way they appear.
Section pages can also have a content file and frontmatter, see [Source Organization]({{< relref "overview/source-directory.md#content-for-home-page-and-other-list-pages" >}}).
## Sections and Types ## Sections and Types
By default everything created within a section will use the content type By default everything created within a section will use the content type

View file

@ -95,3 +95,32 @@ This directory structure tells us a lot about this site:
1. The website intends to have two different types of content: *posts* and *quotes*. 1. The website intends to have two different types of content: *posts* and *quotes*.
2. It will also apply two different taxonomies to that content: *categories* and *tags*. 2. It will also apply two different taxonomies to that content: *categories* and *tags*.
3. It will be displaying content in 3 different views: a list, a summary and a full page view. 3. It will be displaying content in 3 different views: a list, a summary and a full page view.
## Content for home page and other list pages
Since Hugo 0.18, "everything" is a `Page` that can have content and metadata, like `.Params`, attached to it -- and share the same set of [page variables](/templates/variables/).
To add content and frontmatter to the home page, a section, a taxonomy or a taxonomy terms listing, add a markdown file with the base name `_index` on the relevant place on the file system.
For the default Markdown content, the filename will be `_index.html`.
Se the example directory tree below.
**Note that you don't have to create `_index` file for every section, taxonomy and similar, a default page will be created if not present, but with no content an default values for `.Title` etc.**
```bash
└── content
├── _index.md
├── categories
│   ├── _index.md
│   └── photo
│   └── _index.md
├── post
│   ├── _index.md
│   └── firstpost.md
└── tags
├── _index.md
└── hugo
└── _index.md
```

View file

@ -2,6 +2,7 @@
lastmod: 2015-12-23 lastmod: 2015-12-23
date: 2014-05-26 date: 2014-05-26
linktitle: Usage linktitle: Usage
toc: true
menu: menu:
main: main:
parent: taxonomy parent: taxonomy
@ -68,7 +69,7 @@ but will still titleize the values for titles and normalize them in URLs.
Note that if you use `preserveTaxonomyNames` and intend to manually construct URLs to the archive pages, Note that if you use `preserveTaxonomyNames` and intend to manually construct URLs to the archive pages,
you will need to pass the taxonomy values through the `urlize` template function. you will need to pass the taxonomy values through the `urlize` template function.
### Front Matter Example (in TOML) ## Front Matter Example (in TOML)
```toml ```toml
+++ +++
@ -81,7 +82,7 @@ project_url = "https://github.com/spf13/hugo"
+++ +++
``` ```
### Front Matter Example (in JSON) ## Front Matter Example (in JSON)
```json ```json
{ {
@ -102,3 +103,7 @@ project_url = "https://github.com/spf13/hugo"
"project_url": "https://github.com/spf13/hugo" "project_url": "https://github.com/spf13/hugo"
} }
``` ```
## Add content file with frontmatter
See [Source Organization]({{< relref "overview/source-directory.md#content-for-home-page-and-other-list-pages" >}}).

View file

@ -989,3 +989,17 @@ responses of APIs.
{{ $resp.content | base64Decode | markdownify }} {{ $resp.content | base64Decode | markdownify }}
The response of the GitHub API contains the base64-encoded version of the [README.md](https://github.com/spf13/hugo/blob/master/README.md) in the Hugo repository. Now we can decode it and parse the Markdown. The final output will look similar to the rendered version on GitHub. The response of the GitHub API contains the base64-encoded version of the [README.md](https://github.com/spf13/hugo/blob/master/README.md) in the Hugo repository. Now we can decode it and parse the Markdown. The final output will look similar to the rendered version on GitHub.
## .Site.GetPage
Every `Page` as a `Kind` attribute that shows what kind of page it is. While this attribute can be used to list pages of a certain `kind` using `where`, often it can be useful to fetch a single page by its path.
GetPage looks up an index page of a given `Kind` and `path`. This method may support regular pages in the future, but currently it is a convenient way of getting the index pages such as the home page or a section from a template:
```
{{ with .Site.GetPage "section" "blog" }}{{ .Title }}{{ end }}
```
This method wil return `nil` when no page could be found, so the above will not print anything if the blog section isn't found.
The valid page kinds are: *home, section, taxonomy and taxonomyTerm.*

View file

@ -28,6 +28,8 @@ In addition to the standard page variables, the homepage has access to
all site content accessible from `.Data.Pages`. Details on how to use the all site content accessible from `.Data.Pages`. Details on how to use the
list of pages can be found in the [Lists Template](/templates/list/). list of pages can be found in the [Lists Template](/templates/list/).
Note that a home page can also have a content file with frontmatter, see [Source Organization]({{< relref "overview/source-directory.md#content-for-home-page-and-other-list-pages" >}}).
## Which Template will be rendered? ## Which Template will be rendered?
Hugo uses a set of rules to figure out which template to use when Hugo uses a set of rules to figure out which template to use when
rendering a specific page. rendering a specific page.

View file

@ -46,6 +46,7 @@ A Section will be rendered at /`SECTION`/ (e.g.&nbsp;http://spf13.com/project/)
* /themes/`THEME`/layouts/\_default/section.html * /themes/`THEME`/layouts/\_default/section.html
* /themes/`THEME`/layouts/\_default/list.html * /themes/`THEME`/layouts/\_default/list.html
Note that a sections list page can also have a content file with frontmatter, see [Source Organization]({{< relref "overview/source-directory.md#content-for-home-page-and-other-list-pages" >}}).
### Taxonomy Lists ### Taxonomy Lists
@ -58,6 +59,8 @@ A Taxonomy will be rendered at /`PLURAL`/`TERM`/ (e.g.&nbsp;http://spf13.com/top
* /themes/`THEME`/layouts/\_default/taxonomy.html * /themes/`THEME`/layouts/\_default/taxonomy.html
* /themes/`THEME`/layouts/\_default/list.html * /themes/`THEME`/layouts/\_default/list.html
Note that a taxonomy list page can also have a content file with frontmatter, see [Source Organization]({{< relref "overview/source-directory.md#content-for-home-page-and-other-list-pages" >}}).
### Section RSS ### Section RSS
A Sections RSS will be rendered at /`SECTION`/index.xml (e.g.&nbsp;http://spf13.com/project/index.xml) A Sections RSS will be rendered at /`SECTION`/index.xml (e.g.&nbsp;http://spf13.com/project/index.xml)

View file

@ -20,6 +20,8 @@ A unique template is needed to create a list of the terms for a given
taxonomy. This is different from the [list template](/templates/list/) taxonomy. This is different from the [list template](/templates/list/)
as that template is a list of content, whereas this is a list of meta data. as that template is a list of content, whereas this is a list of meta data.
Note that a taxonomy terms page can also have a content file with frontmatter, see [Source Organization]({{< relref "overview/source-directory.md#content-for-home-page-and-other-list-pages" >}}).
## Which Template will be rendered? ## Which Template will be rendered?
Hugo uses a set of rules to figure out which template to use when Hugo uses a set of rules to figure out which template to use when
rendering a specific page. rendering a specific page.