aboutsummaryrefslogtreecommitdiffhomepage
path: root/content/en/variables/site.md
diff options
context:
space:
mode:
Diffstat (limited to 'content/en/variables/site.md')
-rw-r--r--content/en/variables/site.md124
1 files changed, 31 insertions, 93 deletions
diff --git a/content/en/variables/site.md b/content/en/variables/site.md
index 482bd520b..532357785 100644
--- a/content/en/variables/site.md
+++ b/content/en/variables/site.md
@@ -1,117 +1,55 @@
---
title: Site variables
-description: Many, but not all, site-wide variables are defined in your site's configuration. However, Hugo provides a number of built-in variables for convenient access to global values in your templates.
-categories: [variables and parameters]
-keywords: [global,site]
+description: Use these methods with Site objects. A multilingual project will have two or more sites, one for each language.
+categories: [variables]
+keywords: []
menu:
docs:
parent: variables
- weight: 10
-weight: 10
-aliases: [/variables/site-variables/]
+ weight: 80
+weight: 80
toc: true
+aliases: [/variables/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][config], 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`](/functions/site/) function, e.g. `site.RegularPages`, which can be handy in partials where the `Page` object isn't easily available.
-
-## Site variables
-
-.Site.AllPages
-: array of all pages, regardless of their translation.
-
-.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](/templates/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](/variables/page/)
-
-.Site.IsMultiLingual
-: whether there are more than one language in this site. See [Multilingual](/content-management/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`](/commands/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 there is only one defined language. See also the functions [absLangURL](/functions/urls/abslangurl) and [relLangURL](/functions/urls/rellangurl).
-
-.Site.Languages
-: an ordered list (ordered by defined weight) of languages.
+{{% include "variables/_common/consistent-terminology.md" %}}
-.Site.LastChange
-: a [time.Time](https://godoc.org/time#Time) value representing the date/time of the most recent change to your site.
+## All methods
-.Site.Menus
-: all the menus in the site.
+Use any of these methods in your templates.
-.Site.Pages
-: array of all content ordered by Date with the newest first. This array contains only the pages in the current language.
+{{< list-pages-in-section path=/methods/site titlePrefix=.Site. >}}
-.Site.RegularPages
-: a shortcut to the *regular* page collection. `.Site.RegularPages` is equivalent to `where .Site.Pages "Kind" "page"`.
+## Multilingual
-.Site.Sections
-: top-level directories of the site.
+Use these methods with your multilingual projects.
-.Site.Taxonomies
-: the [taxonomies](/content-management/taxonomies/) for the entire site. Also see section [Access taxonomy data from any template](/variables/taxonomy/#access-taxonomy-data-from-any-template).
+{{< list-pages-in-section path=/methods/site filter=methods_site_multilingual filterType=include titlePrefix=.Site. omitElementIDs=true >}}
-.Site.Title
-: a string representing the title of the site.
+[`site`]: /functions/global/site
+[context]: /getting-started/glossary/#context
+[configuration file]: /getting-started/configuration
-## Site parameters
+## Page collections
-`.Site.Params` is a container holding the values from the `params` section of your site configuration.
+Range through these collections when rendering lists on any page.
-### Example: `.Site.Params`
+{{< list-pages-in-section path=/methods/site filter=methods_site_page_collections filterType=include titlePrefix=.Site. omitElementIDs=true >}}
-The following `config.[yaml|toml|json]` defines a site-wide parameter for `description`:
+## Global site function
-{{< code-toggle file="hugo" >}}
-baseURL = "https://yoursite.example.com/"
+Within a partial template, if you did not pass a `Page` or `Site` object in [context], you cannot use this syntax:
-[params]
- description = "Tesla's Awesome Hugo Site"
- author = "Nikola Tesla"
-{{</ code-toggle >}}
+```go-html-template
+{{ .Site.SomeMethod }}
+```
-You can use `.Site.Params` in a [partial template](/templates/partials/) to call the default site description:
+Instead, use the global [`site`] function:
-{{< code file="layouts/partials/head.html" >}}
-<meta name="description" content="{{ if .IsHome }}{{ $.Site.Params.description }}{{ else }}{{ .Description }}{{ end }}" />
-{{< /code >}}
+```go-html-template
+{{ site.SomeMethod }}
+```
-[config]: /getting-started/configuration/
+{{% note %}}
+You can use the global site function in all templates to avoid context problems. Its usage is not limited to partial templates.
+{{% /note %}}