渲染
语法
PAGE.Render NAME
返回值
template.HTML
通常在遍历页面集合时使用,Page
对象上的 Render
方法会渲染给定的模板,并将给定的页面作为上下文传递。
{{ 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 <-- used for other content types
│ ├── list.html
│ ├── single.html
│ └── summary.html
└── books/
├── li.html <-- used when content type is "books"
└── summary.html
以及此模板
<ul>
{{ range site.RegularPages.ByDate }}
{{ .Render "li" }}
{{ end }}
</ul>
当渲染类型为“books”的内容时,Render
方法会调用
layouts/books/li.html
对于所有其他内容类型,Render
方法会调用
layouts/_default/li.html
有关更多示例,请参阅内容视图。