ref: 3882e7ceaf818e295fdc652377af914bb60faf7f
parent: be534a865ddceb8f95ba20e072f136c842176623
author: Juan B. Rodriguez <[email protected]>
date: Thu May 14 11:06:36 EDT 2015
Add Lastmod field Create new field in Node Update Page to look for lastmod field in the front matter. If not present, then assign Date to Lastmod Update Site, to assign a value to Lastmod (based on the same logic used for Date) Fixes #733
--- a/hugolib/node.go
+++ b/hugolib/node.go
@@ -30,6 +30,7 @@
Keywords []string
Params map[string]interface{}
Date time.Time
+ Lastmod time.Time
Sitemap Sitemap
URLPath
paginator *Pager
--- a/hugolib/page.go
+++ b/hugolib/page.go
@@ -473,6 +473,11 @@
if err != nil {
jww.ERROR.Printf("Failed to parse date '%v' in page %s", v, p.File.Path())
}
+ case "lastmod":
+ p.Lastmod, err = cast.ToTimeE(v)
+ if err != nil {
+ jww.ERROR.Printf("Failed to parse lastmod '%v' in page %s", v, p.File.Path())
+ }
case "publishdate", "pubdate":
p.PublishDate, err = cast.ToTimeE(v)
if err != nil {
@@ -524,6 +529,11 @@
}
}
}
+
+ if p.Lastmod.IsZero() {
+ p.Lastmod = p.Date
+ }
+
return nil
}
--- a/hugolib/site.go
+++ b/hugolib/site.go
@@ -1065,6 +1065,7 @@
s.setURLs(n, base)
if len(t.pages) > 0 {
n.Date = t.pages[0].Page.Date
+ n.Lastmod = t.pages[0].Page.Lastmod
}
n.Data[t.singular] = t.pages
n.Data["Singular"] = t.singular
@@ -1110,6 +1111,7 @@
taxonomyPagerNode.paginator = pager
if pager.TotalPages() > 0 {
taxonomyPagerNode.Date = pager.Pages()[0].Date
+ taxonomyPagerNode.Lastmod = pager.Pages()[0].Lastmod
}
pageNumber := i + 1
htmlBase := fmt.Sprintf("/%s/%s/%d", base, paginatePath, pageNumber)
@@ -1168,6 +1170,7 @@
}
s.setURLs(n, section)
n.Date = data[0].Page.Date
+ n.Lastmod = data[0].Page.Lastmod
n.Data["Pages"] = data.Pages()
return n
@@ -1205,6 +1208,7 @@
sectionPagerNode.paginator = pager
if pager.TotalPages() > 0 {
sectionPagerNode.Date = pager.Pages()[0].Date
+ sectionPagerNode.Lastmod = pager.Pages()[0].Lastmod
}
pageNumber := i + 1
htmlBase := fmt.Sprintf("/%s/%s/%d", section, paginatePath, pageNumber)
@@ -1262,6 +1266,7 @@
homePagerNode.paginator = pager
if pager.TotalPages() > 0 {
homePagerNode.Date = pager.Pages()[0].Date
+ homePagerNode.Lastmod = pager.Pages()[0].Lastmod
}
pageNumber := i + 1
htmlBase := fmt.Sprintf("/%s/%d", paginatePath, pageNumber)
@@ -1282,6 +1287,7 @@
n.Data["Pages"] = s.Pages[:high]
if len(s.Pages) > 0 {
n.Date = s.Pages[0].Date
+ n.Lastmod = s.Pages[0].Lastmod
}
rssLayouts := []string{"rss.xml", "_default/rss.xml", "_internal/_default/rss.xml"}
@@ -1317,6 +1323,7 @@
page := &Page{}
page.Date = s.Info.LastChange
+ page.Lastmod = s.Info.LastChange
page.Site = &s.Info
page.URL = "/"