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