站点变量

Site Variables - 站点变量

https://gohugo.io/variables/site/

​ 许多站点范围的变量在站点配置中定义,但是,Hugo提供了许多内置变量,以方便在模板中访问全局值。

​ 以下是站点级别(也称为"全局")变量列表。其中许多变量在站点配置文件中定义,而其他变量则内置于Hugo的核心中,以便在模板中方便使用。

从局部获取Site对象

​ 下面的所有方法,例如.Site.RegularPages也可以通过全局site函数(例如site.RegularPages)访问,这在局部文件中 Page 对象不容易获取时可能会很方便。

站点变量列表

.Site.AllPages

​ 所有页面的数组,不考虑它们的翻译。

.Site.BaseURL

​ 站点配置中定义的站点基本URL。

.Site.BuildDrafts

​ 一个布尔值(默认值为false),用于指示是否按照站点配置构建草稿。

​ 表示您的站点版权的字符串,即在站点配置中所定义的。

.Site.Data

​ 自定义数据,请参阅数据模板

.Site.DisqusShortname

​ 表示Disqus简码的字符串,即在站点配置文件中所定义的。

.Site.GoogleAnalytics

​ 表示Google Analytics追踪代码的字符串,即在站点配置文件中所定义的。

.Site.Home

​ 指向主页页面对象的引用。

.Site.IsMultiLingual

​ 是否在该站点中存在多种语言。有关更多信息,请参见多语言

.Site.IsServer

​ 一个布尔值,指示是否使用Hugo的内置服务器提供站点。有关更多信息,请参见hugo server

.Site.Language.Lang

​ 当前区域设置的语言代码(例如,en)。

.Site.Language.LanguageName

​ 完整的语言名称(例如,English)。

.Site.Language.Weight

​ 定义.Site.Languages列表顺序的权重。

.Site.Language

​ 指示当前用于渲染站点的语言。该对象的属性在站点配置语言定义中设置。

.Site.LanguageCode

​ 表示在站点配置中定义的语言tag的字符串。

.Site.LanguagePrefix

​ 可以用于为URL添加前缀以指向正确的语言。即使只定义了一种语言,它也会起作用。另请参见absLangURLrelLangURL函数。

.Site.Languages

​ 一个按照定义的权重排序的语言列表。

.Site.LastChange

​ 一个表示站点最近更改的日期/时间的字符串。此字符串基于内容页面前置元数据中的date变量。

​ 站点中的所有菜单。

.Site.Pages

​ 按日期排序的所有内容的数组,最新的在前面。此数组仅包含当前语言的页面。请参阅.Site.Pages

.Site.RegularPages

​ 一个常规页面集合的快捷方式。.Site.RegularPages等效于where .Site.Pages "Kind" "page"。请参阅.Site.Pages

.Site.Sections

​ 站点的顶级目录。

.Site.Taxonomies

​ 整个站点的分类法。另请参阅从任何模板访问分类法数据的章节。

.Site.Title

​ 一个表示站点标题的字符串。

.Site.Params变量

.Site.Params是一个容器,它保存了来自站点配置params 部分的值。

示例: .Site.Params

​ 以下config.[yaml|toml|json]定义了一个站点范围的description参数:

config.

=== “yaml”

``` yaml
baseURL: https://yoursite.example.com/
params:
  author: Nikola Tesla
  description: Tesla's Awesome Hugo Site
```

=== “toml”

``` toml
baseURL = 'https://yoursite.example.com/'
[params]
  author = 'Nikola Tesla'
  description = "Tesla's Awesome Hugo Site"
```

=== “json”

``` json
{
   "baseURL": "https://yoursite.example.com/",
   "params": {
      "author": "Nikola Tesla",
      "description": "Tesla's Awesome Hugo Site"
   }
}
```

​ 您可以在局部模板中使用.Site.Params调用默认站点描述:

layouts/partials/head.html

1
<meta name="description" content="{{ if .IsHome }}{{ $.Site.Params.description }}{{ else }}{{ .Description }}{{ end }}" />

.Site.Pages变量

.Site.Pages.Pages比较

  • 常规页面是"post"页面或"content"页面。

    • 叶子bundle是常规页面。
  • 列表页面可以列出常规页面和其他列表页面。一些示例是:主页、章节页面、分类法(/tags/)和条目(/tags/foo/)页面。

    • 分支bundle是列表页面。
  • .Site.Pages

    站点所有页面的集合:常规页面、章节页面、分类法页面等——Superset of everything!

  • .Site.RegularPages

    仅包含常规页面的集合。

​ 上述.Site. ..页面集合可以从模板的任何作用域中访问。

​ 以下变量仅从当前列表页的作用域返回页面集合:

  • .Pages

    Collection of regular pages and only first-level section pages under the current list page.

    在当前列表页面下,包含所有常规页面和只有一级章节页面的集合。

  • .RegularPages

    仅包含当前列表页面下的普通页面的集合。这排除嵌套章节/列表页面中的常规页面(那些是带有 _index.md 文件的子目录)。

  • .RegularPagesRecursive

    包含一个列表页面下的所有普通页面的集合。这包括嵌套章节/列表页面中的常规页面。

    注意

    常规页面的作用域来看,.Pages.RegularPages 返回一个空的 slice。

最后修改 May 22, 2023: 第一次提交 (9f24e27)