Site Variables
The following is a list of site-level (aka “global”) variables. Many of these variables are defined in your site’s configuration file, whereas others are built into Hugo’s core for convenient usage in your templates.
Get the Site object from a partial
All the methods below, e.g. .Site.RegularPages
can also be reached via the global site
function, e.g. site.RegularPages
, which can be handy in partials where the Page
object isn’t easily available.
Site Variables List
- .Site.AllPages
- array of all pages, regardless of their translation.
- .Site.Author
- a map of the authors as defined in the site configuration.
- .Site.BaseURL
- the base URL for the site as defined in the site configuration.
- .Site.BuildDrafts
- a boolean (default:
false
) to indicate whether to build drafts as defined in the site configuration. - .Site.Copyright
- a string representing the copyright of your website as defined in the site configuration.
- .Site.Data
- custom data, see Data Templates.
- .Site.DisqusShortname
- a string representing the shortname of the Disqus shortcode as defined in the site configuration.
- .Site.GoogleAnalytics
- a string representing your tracking code for Google Analytics as defined in the site configuration.
- .Site.Home
- reference to the homepage’s page object
- .Site.IsMultiLingual
- whether there are more than one language in this site. See Multilingual for more information.
- .Site.IsServer
- a boolean to indicate if the site is being served with Hugo’s built-in server. See
hugo server
for more information. - .Site.Language.Lang
- the language code of the current locale (e.g.,
en
). - .Site.Language.LanguageName
- the full language name (e.g.
English
). - .Site.Language.Weight
- the weight that defines the order in the
.Site.Languages
list. - .Site.Language
- indicates the language currently being used to render the website. This object’s attributes are set in site configurations’ language definition.
- .Site.LanguageCode
- a string representing the language tag as defined in the site configuration.
- .Site.LanguagePrefix
- this can be used to prefix URLs to point to the correct language. It will even work when only one defined language. See also the functions absLangURL and relLangURL.
- .Site.Languages
- an ordered list (ordered by defined weight) of languages.
- .Site.LastChange
- a string representing the date/time of the most recent change to your site. This string is based on the
date
variable in the front matter of your content pages. - .Site.Menus
- all the menus in the site.
- .Site.Pages
- array of all content ordered by Date with the newest first. This array contains only the pages in the current language. See
.Site.Pages
. - .Site.RegularPages
- a shortcut to the regular page collection.
.Site.RegularPages
is equivalent towhere .Site.Pages "Kind" "page"
. See.Site.Pages
. - .Site.Sections
- top-level directories of the site.
- .Site.Taxonomies
- the taxonomies for the entire site. Also see section Use
.Site.Taxonomies
Outside of Taxonomy Templates. - .Site.Title
- a string representing the title of the site.
The .Site.Params
Variable
.Site.Params
is a container holding the values from the params
section of your site configuration.
Example: .Site.Params
The following config.[yaml|toml|json]
defines a site-wide param for description
:
baseURL: https://yoursite.example.com/
params:
author: Nikola Tesla
description: Tesla's Awesome Hugo Site
baseURL = 'https://yoursite.example.com/'
[params]
author = 'Nikola Tesla'
description = "Tesla's Awesome Hugo Site"
{
"baseURL": "https://yoursite.example.com/",
"params": {
"author": "Nikola Tesla",
"description": "Tesla's Awesome Hugo Site"
}
}
You can use .Site.Params
in a partial template to call the default site description:
<meta name="description" content="{{if .IsHome}}{{ $.Site.Params.description }}{{else}}{{.Description}}{{end}}" />
The .Site.Pages
Variable
.Site.Pages
compared to .Pages
- A regular page is a “post” page or a “content” page.
- A leaf bundle is a regular page.
- A list page can list regular pages and other list pages. Some
examples are: homepage, section pages, taxonomy (
/tags/
) and term (/tags/foo/
) pages.- A branch bundle is a list page.
.Site.Pages
- Collection of all pages of the site: regular pages, sections, taxonomies, etc. – Superset of everything!
.Site.RegularPages
- Collection of only regular pages.
The above .Site. ..
page collections can be accessed from any scope in
the templates.
Below variables return a collection of pages only from the scope of the current list page:
.Pages
- Collection of regular pages and only first-level section pages under the current list page.
.RegularPages
- Collection of only regular pages under the
current list page. This excludes regular pages in nested sections/list pages (those are subdirectories with an
_index.md
file. .RegularPagesRecursive
- Collection of all regular pages under a list page. This includes regular pages in nested sections/list pages.
- Note
- From the scope of regular pages,
.Pages
and.RegularPages
return an empty slice.