ref: 96f71141bd4b9e0264bce725f6fec0555c46b1c3
parent: 487b210fb8a31b3636030ea960f6565b9e6b3c54
author: Bjørn Erik Pedersen <[email protected]>
date: Sat Nov 12 12:30:21 EST 2016
node to page: Export GetPage to the templates Updates #2297
--- a/hugolib/node_as_page_test.go
+++ b/hugolib/node_as_page_test.go
@@ -70,6 +70,7 @@
"# Pages: 9",
"Date: 2009-01-02",
"Lastmod: 2009-01-03",
+ "GetPage: Section1 ",
)
assertFileContent(t, filepath.Join("public", "sect1", "regular1", "index.html"), false, "Single Title: Page 01", "Content Page 01")
@@ -543,6 +544,7 @@
{{ end }}
Date: {{ .Date.Format "2006-01-02" }}
Lastmod: {{ .Lastmod.Format "2006-01-02" }}
+GetPage: {{ with .Site.GetPage "section" "sect1" }}{{ .Title }}{{ end }}
`)
writeSource(t, filepath.Join("layouts", "_default", "single.html"), `
--- a/hugolib/page_collections.go
+++ b/hugolib/page_collections.go
@@ -65,8 +65,8 @@
return c.findPagesByNodeTypeIn(n, c.Pages)
}
-func (c *PageCollections) getPage(n PageType, path ...string) *Page {
- pages := c.findPagesByNodeTypeIn(n, c.Pages)
+func (c *PageCollections) getPage(typ PageType, path ...string) *Page {
+ pages := c.findPagesByNodeTypeIn(typ, c.Pages)
if len(pages) == 0 {
return nil
--- a/hugolib/site.go
+++ b/hugolib/site.go
@@ -1653,6 +1653,19 @@
}
+// GetPage looks up a index page of a given type in the path given.
+// This method may support regular pages in the future, but currently it is a
+// convenient way of getting the home page or
+// a section from a template:
+// {{ with .Site.GetPage "section" "blog" }}{{ .Title }}{{ end }}
+//
+// This will return nil when no page could be found.
+//
+// The valid page types are: home, section, taxonomy and taxonomyTerm
+func (s *SiteInfo) GetPage(typ PageType, path ...string) *Page {
+ return s.getPage(typ, path...)
+}
+
func (s *SiteInfo) permalink(plink string) string {
return s.permalinkStr(plink)
}