GetPage

GetPage 方法也可以在 Page 物件上使用,允許您指定相對於當前頁面的路徑。請參閱 詳細資料

當在 Site 物件上使用 GetPage 方法時,請指定相對於內容目錄的路徑。

如果 Hugo 無法解析該路徑對應的頁面,方法將回傳 nil。

假設以下內容結構:

content/
├── works/
│   ├── paintings/
│   │   ├── _index.md
│   │   ├── starry-night.md
│   │   └── the-mona-lisa.md
│   ├── sculptures/
│   │   ├── _index.md
│   │   ├── david.md
│   │   └── the-thinker.md
│   └── _index.md
└── _index.md

這段首頁模板:

{{ with .Site.GetPage "/works/paintings" }}
  <ul>
    {{ range .Pages }}
      <li>{{ .Title }} by {{ .Params.artist }}</li>
    {{ end }}
  </ul>
{{ end }}

將渲染為:

<ul>
  <li>Starry Night by Vincent van Gogh</li>
  <li>The Mona Lisa by Leonardo da Vinci</li>
</ul>

若要獲取常規頁面而非區塊頁面:

{{ with .Site.GetPage "/works/paintings/starry-night" }}
  {{ .Title }} → Starry Night
  {{ .Params.artist }} → Vincent van Gogh
{{ end }}

多語言專案

對於多語言專案,Site 物件上的 GetPage 方法會解析指定的路徑並回傳當前語言的頁面。

若要獲取其他語言的頁面,請查詢 Sites 物件:

{{ with where .Site.Sites "Language.Lang" "eq" "de" }}
  {{ with index . 0 }}
    {{ with .GetPage "/works/paintings/starry-night" }}
      {{ .Title }} → Sternenklare Nacht
    {{ end }}
  {{ end }}
{{ end }}

頁面捆綁包

假設以下內容結構:

content/
├── headless/    
│   ├── a.jpg
│   ├── b.jpg
│   ├── c.jpg
│   └── index.md  <-- front matter: headless = true
└── _index.md

在首頁模板中,使用 Site 物件上的 GetPage 方法來渲染所有的圖像,來自無標頭 頁面捆綁包

{{ with .Site.GetPage "/headless" }}
  {{ range .Resources.ByType "image" }}
    <img src="{{ .RelPermalink }}" width="{{ .Width }}" height="{{ .Height }}" alt="">
  {{ end }}
{{ end }}