Hugo框架中文文档 模板 区块页模板
Contents
为区块模板添加内容和前言设定
为有效使用区块页模板, 建议您先理解hugo的内容组织, 特别的,理解
_index.md
文件在给section和其他list页面添加内容和前言设定时的作用。
区块模板查询顺序
参考模板查询顺序 Template Lookup.
页面类型 Page Kinds
Hugo中每个Page
具有.Kind
属性
类型 Kind | 描述 Description | 例子 Example |
---|---|---|
home | 首页的登陆页 | /index.html |
page | 指定页面的登陆页 | my-post page (/posts/my-post/index.html ) |
section | 指定区块的登陆页 | posts section (/posts/index.html ) |
taxonomy | 标签列表的登陆页 | tags taxonomy (/tags/index.html ) |
term | 标签条目列表的登录页 | term awesome in tags taxonomy (/tags/awesome/index.html ) |
在区块内使用.Site.GetPage
kind
类型可以在模板内很容易的和where
函数配合创建类型特定的内容列表。 对于创建list这个方法很理想, 不过有时您可能想通过区块的路径获取仅仅一个单独区块的index页面。
函数 .GetPage
查询指定Kind
和path
的索引页。
可以使用两个参数kind
类型 (上表的有效值中选一个) 和 kind value
类型值调用.Site.GetPage
函数
举例:
{{ .Site.GetPage "section" "posts" }}
{{ .Site.GetPage "page" "search" }}
例子: 创建默认的区块模板
layouts/_default/section.html
|
|
例子: 使用 .Site.GetPage
下面的 .Site.GetPage
例子假设项目具有如下的目录结构:
|
|
如果没找到 _index.md
页面, .Site.GetPage
会返回nil
. 因此,如果content/blog/_index.md
不存在, 模板会输出区块名称.
|
|
由于blog
区块具有索引页面content/blog/_index.md
并且有前言设定,上面例子会输出如下结果:
|
|
如果对events
区块应用同样代码,由于没有 content/events/_index.md
,无法读取内容和前言设定,Hugo会使用区块标题的默认值:
|
|
这个代码会返回如下输出:
|
|