本页导航
code
Hugo常用参数和变量指南
AI摘要
本文详细讲解了Hugo模板中常用的参数、变量和函数,重点介绍了.Site、.Page、.Params等核心对象的属性和方法,并通过代码示例展示了如何在项目中应用这些功能。文章还总结了参数命名、默认值设置、安全性和性能优化等最佳实践,提供了调试技巧和常见问题解决方案。总体上,本文帮助读者掌握Hugo模板系统的强大功能,提升网站开发效率和质量。
核心对象概述
Hugo模板系统提供了几个核心对象,用于访问网站的各种信息和配置:
.Site- 网站全局信息和配置.Page- 当前页面的信息和属性.Params- 页面或网站的参数.File- 当前文件的信息.Scratch- 临时数据存储
.Site 对象
基本属性
<!-- 网站基本信息 -->
{{ .Site.Title }} <!-- 网站标题 -->
{{ .Site.BaseURL }} <!-- 网站基础URL -->
{{ .Site.LanguageCode }} <!-- 网站语言代码 -->
{{ .Site.Language.Lang }} <!-- 当前语言 -->
{{ .Site.LanguagePrefix }} <!-- 语言前缀 -->
{{ .Site.Copyright }} <!-- 版权信息 -->
{{ .Site.LastChange }} <!-- 最后修改时间 -->
{{ .Site.BuildDrafts }} <!-- 是否构建草稿 -->
{{ .Site.IsMultiLingual }} <!-- 是否多语言网站 -->
<!-- 网站配置信息 -->
{{ .Site.Params }} <!-- 网站级参数 -->
{{ .Site.Menus }} <!-- 网站菜单 -->
{{ .Site.Taxonomies }} <!-- 分类法 -->
{{ .Site.Data }} <!-- 数据文件内容 -->
常用方法
<!-- 获取页面 -->
{{ .Site.GetPage "section" "posts" }} <!-- 获取特定分区 -->
{{ .Site.GetPage "home" }} <!-- 获取首页 -->
{{ .Site.GetPage "/about/" }} <!-- 获取特定路径页面 -->
<!-- 获取资源 -->
{{ $resource := .Site.Resources.GetMatch "*.css" }} <!-- 匹配资源 -->
{{ $images := .Site.Resources.ByType "image" }} <!-- 按类型获取资源 -->
<!-- 获取菜单 -->
{{ $menu := .Site.Menus.main }} <!-- 获取主菜单 -->
{{ $menuItem := .Site.Menus.main 0 }} <!-- 获取菜单项 -->
项目中的应用示例
<!-- 获取网站配置的作者信息 -->
{{ $author := .Site.Params.author }}
{{ $authorName := $author.name }}
{{ $authorEmail := $author.email }}
<!-- 获取网站社交媒体链接 -->
{{ range $key, $value := .Site.Params.social }}
<a href="{{ $value }}" class="social-link">{{ $key }}</a>
{{ end }}
<!-- 获取网站多语言信息 -->
{{ range .Site.Languages }}
<a href="{{ .Lang | relLangURL }}">{{ .LanguageName }}</a>
{{ end }}
.Page 对象
基本属性
<!-- 页面基本信息 -->
{{ .Page.Title }} <!-- 页面标题 -->
{{ .Page.Content }} <!-- 页面内容 -->
{{ .Page.Summary }} <!-- 页面摘要 -->
{{ .Page.Description }} <!-- 页面描述 -->
{{ .Page.Date }} <!-- 页面日期 -->
{{ .Page.Lastmod }} <!-- 最后修改时间 -->
{{ .Page.ExpiryDate }} <!-- 过期时间 -->
{{ .Page.PublishDate }} <!-- 发布日期 -->
{{ .Page.Weight }} <!-- 权重 -->
{{ .Page.Type }} <!-- 类型 -->
{{ .Page.Kind }} <!-- 种类 -->
{{ .Page.Section }} <!-- 分区 -->
{{ .Page.Slug }} <!-- URL别名 -->
{{ .Page.URL }} <!-- 页面URL -->
{{ .Page.RelPermalink }} <!-- 相对永久链接 -->
{{ .Page.RelRef }} <!-- 相对引用 -->
<!-- 页面状态 -->
{{ .Page.Draft }} <!-- 是否为草稿 -->
{{ .Page.IsHome }} <!-- 是否为首页 -->
{{ .Page.IsPage }} <!-- 是否为普通页面 -->
{{ .Page.IsSection }} <!-- 是否为分区页面 -->
{{ .Page.IsNode }} <!-- 是否为节点 -->
{{ .Page.IsMenu }} <!-- 是否在菜单中 -->
内容相关属性
<!-- 字数统计 -->
{{ .Page.WordCount }} <!-- 字数 -->
{{ .Page.ReadingTime }} <!-- 预计阅读时间(分钟) -->
{{ .Page.FuzzyWordCount }} <!-- 模糊字数 -->
{{ .Page.Len }} <!-- 内容长度 -->
<!-- 目录和导航 -->
{{ .Page.TableOfContents }} <!-- 目录 -->
{{ .Page.Next }} <!-- 下一页 -->
{{ .Page.Prev }} <!-- 上一页 -->
{{ .Page.First }} <!-- 第一页 -->
{{ .Page.Last }} <!-- 最后一页 -->
{{ .Page.NextInSection }} <!-- 分区内下一页 -->
{{ .Page.PrevInSection }} <!-- 分区内上一页 -->
页面参数
<!-- 获取页面参数 -->
{{ .Page.Params.author }} <!-- 页面作者 -->
{{ .Page.Params.tags }} <!-- 页面标签 -->
{{ .Page.Params.categories }} <!-- 页面分类 -->
{{ .Page.Params.featuredImage }} <!-- 特色图片 -->
{{ .Page.Params.showToc }} <!-- 是否显示目录 -->
<!-- 检查参数是否存在 -->
{{ if .Page.Params.showAuthor }}
<div class="author">{{ .Page.Params.author }}</div>
{{ end }}
<!-- 使用默认值 -->
{{ $author := .Page.Params.author | default .Site.Params.author }}
.Params 对象
参数层级
Hugo中的参数有层级结构,优先级从高到低:
加载中...
最后更新于 2025-12-20 17:30