a042b67b5 Update installation instructions for Fedora, CentOS, Red Hat e99dcb0b5 Document `:sections` placeholder for permalinks f33c88a27 Fix and clarify documentation about Blackfriday extensions (mask) 5cab109c2 Add .Page.File documentation 62df7bb80 Add .Page.CurrentSection and .Page.Sections documentation 60b4414de Add .Page.Dir documentation 22038d1a8 shortcode-templates.md: Update year example 850d5ca41 Add note about theme versions in hosting-on-netlify.md 0509b8055 Update permalink example URL c68d61d3a Mention the available 'width' argument in 'figure' shortcode ed83b483a Update Nanobox deployment tutorial a7422f35d shortcode-templates.md: Remove stray period af2905fe4 Fix order of releases in news section 19d3ea064 Bump to 0.30.2 bbfa10343 Merge branch 'next' 36ed7cbe4 releaser: Prepare repository for 0.31-DEV f689770f6 releaser: Add release notes to /docs for release of 0.30.2 0045e712a releaser: Bump versions for release of 0.30.2 a9efc3bbd Add slug to 0.30.1 relnotes 9cf47a4a1 Release 0.30.1 1fa0bb23d releaser: Prepare repository for 0.31-DEV 5582208b6 releaser: Add release notes to /docs for release of 0.30.1 09693d155 releaser: Bump versions for release of 0.30.1 58adf5d0d Merge commit '325009c3fd4ac90021897b7e3e025c14e70ce162' 4ef5dcb9b releaser: Prepare repository for 0.31-DEV 02938a788 releaser: Add release notes to /docs for release of 0.30.1 7cfd01fc6 releaser: Bump versions for release of 0.30.1 db3a68e24 Fix typo 95a5d8b46 Fix format of summaryLength in TOML example config 2ad649a92 Make terms in taxonomy examples more coherent 1fac1e662 Make a link specifically point to Pygments HTML Formatter docs 11ae6be03 Fix minor typos in v0.30 release notes git-subtree-dir: docs git-subtree-split: a042b67b5b8834ee8292849708cba724f5d6644e
9.9 KiB
title | linktitle | description | date | publishdate | lastmod | categories | keywords | draft | menu | weight | sections_weight | aliases | toc | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Page Variables | Page-level variables are defined in a content file's front matter, derived from the content's file location, or extracted from the content body itself. | 2017-02-01 | 2017-02-01 | 2017-02-01 |
|
|
false |
|
20 | 20 |
|
true |
The following is a list of page-level variables. Many of these will be defined in the front matter, derived from file location, or extracted from the content itself.
{{% note ".Scratch
" %}}
See .Scratch
for page-scoped, writable variables.
{{% /note %}}
Page Variables
.AlternativeOutputFormats
- contains all alternative formats for a given page; this variable is especially useful
link rel
list in your site's<head>
. (See Output Formats.) .Content
- the content itself, defined below the front matter.
.CurrentSection
- the page's current section. The value can be the page itself if it is a section or the homepage.
.Data
- the data specific to this type of page.
.Date
- the date associated with the page;
.Date
pulls from thedate
field in a content's front matter. See also.ExpiryDate
,.PublishDate
, and.Lastmod
. .Description
- the description for the page.
.Dir
- the path of the folder containing this content file. The path is relative to the
content
folder. .Draft
- a boolean,
true
if the content is marked as a draft in the front matter. .ExpiryDate
- the date on which the content is scheduled to expire;
.ExpiryDate
pulls from theexpirydate
field in a content's front matter. See also.PublishDate
,.Date
, and.Lastmod
. .File
- filesystem-related data for this content file. See also File Variables.
.FuzzyWordCount
- the approximate number of words in the content.
.Hugo
- see Hugo Variables.
.IsHome
true
in the context of the homepage..IsNode
- always
false
for regular content pages. .IsPage
- always
true
for regular content pages. .IsTranslated
true
if there are translations to display..Keywords
- the meta keywords for the content.
.Kind
- the page's kind. Possible return values are
page
,home
,section
,taxonomy
, ortaxonomyTerm
. Note that there are alsoRSS
,sitemap
,robotsTXT
, and404
kinds, but these are only available during the rendering of each of these respective page's kind and therefore not available in any of thePages
collections. .Lang
- language taken from the language extension notation.
.Language
- a language object that points to the language's definition in the site
config
. .Lastmod
- the date the content was last modified.
.Lastmod
pulls from thelastmod
field in a content's front matter.
- If
lastmod
is not set, and.GitInfo
feature is disabled, the front matterdate
field will be used. - If
lastmod
is not set, and.GitInfo
feature is enabled,.GitInfo.AuthorDate
will be used instead.
See also .ExpiryDate
, .Date
, .PublishDate
, and .GitInfo
.
.LinkTitle
- access when creating links to the content. If set, Hugo will use the
linktitle
from the front matter beforetitle
. .Next
- pointer to the following content (based on the
publishdate
field in front matter). .NextInSection
- pointer to the following content within the same section (based on
publishdate
field in front matter). .OutputFormats
- contains all formats, including the current format, for a given page. Can be combined the with
.Get
function to grab a specific format. (See Output Formats.) .Pages
- a collection of associated pages. This value will be
nil
for regular content pages..Pages
is an alias for.Data.Pages
. .Permalink
- the Permanent link for this page; see Permalinks
.Plain
- the Page content stripped of HTML tags and presented as a string.
.PlainWords
- the Page content stripped of HTML as a
[]string
using Go'sstrings.Fields
to split.Plain
into a slice. .Prev
- Pointer to the previous content (based on
publishdate
in front matter). .PrevInSection
- Pointer to the previous content within the same section (based on
publishdate
in front matter). For example,{{if .PrevInSection}}{{.PrevInSection.Permalink}}{{end}}
. .PublishDate
- the date on which the content was or will be published;
.Publishdate
pulls from thepublishdate
field in a content's front matter. See also.ExpiryDate
,.Date
, and.Lastmod
. .RSSLink
- link to the taxonomies' RSS link.
.RawContent
- raw markdown content without the front matter. Useful with remarkjs.com
.ReadingTime
- the estimated time, in minutes, it takes to read the content.
.Ref
- returns the permalink for a given reference (e.g.,
.Ref "sample.md"
)..Ref
does not handle in-page fragments correctly. See Cross References. .RelPermalink
- the relative permanent link for this page.
.RelRef
- returns the relative permalink for a given reference (e.g.,
RelRef "sample.md"
)..RelRef
does not handle in-page fragments correctly. See Cross References. .Section
- the section this content belongs to.
.Sections
- the sections below this content.
.Site
- see Site Variables.
.Summary
- a generated summary of the content for easily showing a snippet in a summary view. The breakpoint can be set manually by inserting
<!--more-->
at the appropriate place in the content page. See Content Summaries for more details. .TableOfContents
- the rendered table of contents for the page.
.Title
- the title for this page.
.Translations
- a list of translated versions of the current page. See Multilingual Mode for more information.
.Truncated
- a boolean,
true
if the.Summary
is truncated. Useful for showing a "Read more..." link only when necessary. See Summaries for more information. .Type
- the content type of the content (e.g.,
post
). .URL
- the URL for the page relative to the web root. Note that a
url
set directly in front matter overrides the default relative URL for the rendered page. .UniqueID
- the MD5-checksum of the content file's path.
.Weight
- assigned weight (in the front matter) to this content, used in sorting.
.WordCount
- the number of words in the content.
Page-level Params
Any other value defined in the front matter in a content file, including taxonomies, will be made available as part of the .Params
variable.
---
title: My First Post
date: date: 2017-02-20T15:26:23-06:00
categories: [one]
tags: [two,three,four]
With the above front matter, the tags
and categories
taxonomies are accessible via the following:
.Params.tags
.Params.categories
{{% note "Casing of Params" %}}
Page-level .Params
are only accessible in lowercase.
{{% /note %}}
The .Params
variable is particularly useful for the introduction of user-defined front matter fields in content files. For example, a Hugo website on book reviews could have the following front matter in /content/review/book01.md
:
---
...
affiliatelink: "http://www.my-book-link.here"
recommendedby: "My Mother"
...
---
These fields would then be accessible to the /themes/yourtheme/layouts/review/single.html
template through .Params.affiliatelink
and .Params.recommendedby
, respectively.
Two common situations where this type of front matter field could be introduced is as a value of a certain attribute like href=""
or by itself to be displayed as text to the website's visitors.
{{< code file="/themes/yourtheme/layouts/review/single.html" >}}
Buy this book
It was recommended by {{ .Params.recommendedby }}.
{{< /code >}}This template would render as follows, assuming you've set uglyURLs
to false
in your site config
:
{{< output file="yourbaseurl/review/book01/index.html" >}}
Buy this book
It was recommended by my Mother.
{{< /output >}}{{% note %}}
See Archetypes for consistency of Params
across pieces of content.
{{% /note %}}
The .Param
Method
In Hugo, you can declare params in individual pages and globally for your entire website. A common use case is to have a general value for the site param and a more specific value for some of the pages (i.e., a header image):
{{ $.Param "header_image" }}
The .Param
method provides a way to resolve a single value according to it's definition in a page parameter (i.e. in the content's front matter) or a site parameter (i.e., in your config
).
Access Nested Fields in Front Matter
When front matter contains nested fields like the following:
---
author:
given_name: John
family_name: Feminella
display_name: John Feminella
---
.Param
can access these fields by concatenating the field names together with a dot:
{{ $.Param "author.display_name" }}
If your front matter contains a top-level key that is ambiguous with a nested key, as in the following case:
---
favorites.flavor: vanilla
favorites:
flavor: chocolate
---
The top-level key will be preferred. Therefore, the following method, when applied to the previous example, will print vanilla
and not chocolate
:
{{ $.Param "favorites.flavor" }}
=> vanilla