渲染
Syntax
PAGE.Render NAME
Returns
template.HTML
通常在对页面集合进行遍历时,Render
方法用于 Page
对象,它使用给定的页面作为上下文来渲染给定的模板。
{{ range site.RegularPages }}
<h2><a href="{{ .RelPermalink }}">{{ .LinkTitle }}</a></h2>
{{ .Render "summary" }}
{{ end }}
在上面的示例中,请注意模板(“summary”)是根据文件名称而非目录或扩展名来标识的。
虽然与 partial
函数相似,但是有一些关键区别。
Render 方法 |
partial 函数 |
---|---|
Page 对象会自动传递给给定的模板。无法传递额外的上下文。 |
您必须指定上下文,允许您传递对象、切片、映射和标量的组合。 |
模板的路径由内容类型确定。 | 您必须指定模板的路径,相对于 layouts/partials 目录。 |
考虑以下布局结构:
layouts/
├── _default/
│ ├── baseof.html
│ ├── home.html
│ ├── li.html <-- 用于其他内容类型
│ ├── list.html
│ ├── single.html
│ └── summary.html
└── books/
├── li.html <-- 当内容类型为 "books" 时使用
└── summary.html
以及以下模板:
<ul>
{{ range site.RegularPages.ByDate }}
{{ .Render "li" }}
{{ end }}
</ul>
当渲染类型为 “books” 的内容时,Render
方法会调用:
layouts/books/li.html
对于其他所有内容类型,Render
方法会调用:
layouts/_default/li.html
请参阅内容视图获取更多示例。