文档章节

模板

用模板把内容、资源与数据渲染为发布页面,并概述本章主题与阅读顺序。

本章导读

模板(template)决定内容、资源与数据最终以什么样子发布。Hugo 使用 Go 标准库的 text/template 与 html/template 包,渲染 HTML 时默认用后者,输出天然对代码注入做了防护;你也可以为 CSV、JSON、RSS、纯文本等输出格式编写模板。

模板由上下文(context)、动作、变量、函数与方法组成。其中上下文最关键:传入模板的数据就是上下文,在模板里用点(.)表示。页面模板收到的是 Page 对象,通过它的方法取得标题、日期与自定义参数。新手最常见的模板错误大多与上下文有关,建议先弄清这个概念。

阅读顺序建议

  1. 简介:上下文、动作、变量、函数与方法的基本用法,是后面各页的共同基础。
  2. 新版模板系统概览:layouts 目录在 v0.146.0 之后的组织方式与迁移要点。
  3. 模板查找顺序:Hugo 如何在页面种类、布局、输出格式与语言之间取舍。
  4. 局部模板装饰器:用 partial 组合可复用的包裹式组件。
  5. 短代码模板:把模板能力带到内容写作中。

刚开始接触 Hugo 的话,建议先完成快速开始,对项目目录结构与构建流程有个整体印象,再回到本章。内容写作中常见的短代码调用语法,参见短代码。

本章内容

  • 404 页面 创建 404 模板,为未找到的地址渲染错误页面。 (今天)
  • robots.txt 用模板生成自定义 robots.txt,控制搜索引擎的抓取范围。 (今天)
  • 站点地图 使用内建模板生成 sitemap.xml,并按页面或全站调整配置。 (今天)
  • RSS 订阅 控制订阅源的生成范围与条数,或编写自定义 RSS 模板。 (今天)
  • 菜单模板 在模板中遍历菜单项,渲染平铺或嵌套的导航结构。 (今天)
  • 分页 把列表页拆分为多个分页,并生成页码导航。 (今天)
  • 内建模板 Hugo 自带的内建模板清单,以及覆盖它们的通用做法。 (今天)
  • 简介 介绍 Hugo 的模板语法:上下文、动作、变量、函数与方法。 (今天)
  • 模板查找顺序 Hugo 为给定页面挑选模板的查找规则,以及新版目录约定。 (今天)
  • 新版模板系统概览 Hugo v0.146.0 重写模板系统后的目录变化、查找顺序与迁移对照。 (今天)
  • 局部模板装饰器 用局部模板装饰器编写可复用的包裹式组件,并用 templates.Inner 注入内容。 (今天)
  • 短代码模板 创建自定义短代码模板:位置与命名、参数读取、返回值处理与嵌套。 (今天)
  • 内容类型 内容类型的来源与作用:如何决定模板查找、如何复用模板。 (今天)