Render
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 <-- 用於其他內容類型
│ ├── 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
更多範例請參見 content views。