2 分钟阅读
https://gohugo.io/templates/views/
Hugo可以渲染内容的替代视图,这在列表和摘要视图中特别有用。
这些替代的内容视图在列表模板中特别有用。
以下是内容视图的常见用例:
要创建新视图,请在每个不同的内容类型目录中创建具有视图名称的模板。以下示例包含用于posts
和project
内容类型的"li"视图和"summary"视图。正如您所看到的,这些视图与单个内容视图模板single.html
并排。您甚至可以为给定类型提供特定的视图,并继续使用_default/single.html
作为主视图。
|
|
Hugo还支持使用默认内容模板,以在没有为该类型提供特定内容视图模板的情况下使用。内容视图也可以在_default
目录中定义,并且将像列表和单个模板一样工作,最终作为查找顺序的一部分向下传递到_default
目录中。
|
|
以下是内容视图的查找顺序:
/layouts/<TYPE>/<VIEW>.html
/layouts/_default/<VIEW>.html
/themes/<THEME>/layouts/<TYPE>/<VIEW>.html
/themes/<THEME>/layouts/_default/<VIEW>.html
以下示例演示了如何在列表模板中使用内容视图。
list.html
在此示例中,将.Render
被传递到模板中以调用render
函数。 .Render
是一种特殊的函数,它指示内容使用第一个参数提供的视图模板渲染自身。在本例中,该模板将渲染以下summary.html
视图:
layouts/_default/list.html
|
|
summary.html
Hugo将整个页面对象传递给以下summary.html
视图模板。(有关完整列表,请参见页面变量。)
layouts/_default/summary.html
|
|
li.html
继续上一个示例,我们可以通过更改调用 .Render
函数中的参数来使用较小的 li.html
视图(即 {{ .Render "li" }}
)。
layouts/_default/li.html
|
|