shithub: hugo

Download patch

ref: c750a95e22e4342ffd181c742bb61a3ff53aaa28
parent: 946ad9c2c33a0906e4ed77a1abd7786017db9f05
author: Joel Scoble <[email protected]>
date: Wed Aug 20 06:09:35 EDT 2014

support for futre/draft summary info output

--- a/hugolib/page.go
+++ b/hugolib/page.go
@@ -304,6 +304,17 @@
 	return false
 }
 
+func (page *Page) IsDraft() bool {
+	return page.Draft
+}
+
+func (page *Page) IsFuture() bool {
+	if page.PublishDate.Before(time.Now()) {
+		return false
+	}
+	return true
+}
+
 func (p *Page) Permalink() (string, error) {
 	link, err := p.permalink()
 	if err != nil {
--- a/hugolib/site.go
+++ b/hugolib/site.go
@@ -70,6 +70,8 @@
 	Completed  chan bool
 	RunMode    runmode
 	params     map[string]interface{}
+	draftCount int
+	futureCount int
 }
 
 type SiteInfo struct {
@@ -348,6 +350,14 @@
 				s.Pages = append(s.Pages, page)
 			}
 
+			if page.IsDraft() {
+				s.draftCount += 1
+			}
+		
+			if page.IsFuture() {
+				s.futureCount += 1
+			}
+
 			return
 		}(fi)
 	}
@@ -806,7 +816,9 @@
 }
 
 func (s *Site) Stats() {
-	jww.FEEDBACK.Printf("%d pages created \n", len(s.Pages))
+	jww.FEEDBACK.Println(s.draftStats())
+	jww.FEEDBACK.Println(s.futureStats())
+        jww.FEEDBACK.Printf("%d pages created \n", len(s.Pages))
 
 	taxonomies := viper.GetStringMapString("Taxonomies")
 
@@ -950,4 +962,42 @@
 	jww.DEBUG.Println("alias created at", path)
 
 	return s.Alias.Publish(path, permalink)
+}
+
+func (s *Site) draftStats() string {
+	var msg string
+
+	switch s.draftCount {
+	case 0:
+		return "0 draft content "
+	case 1:
+		msg = "1 draft rendered "
+	default:
+		msg = fmt.Sprintf("%d drafts rendered", s.draftCount)
+	}
+
+	if viper.GetBool("BuildDrafts") {
+		return fmt.Sprintf("%d of ", s.draftCount) + msg
+	} 
+
+	return "0 of " + msg
+}
+
+func (s *Site) futureStats() string {
+        var msg string
+
+        switch s.futureCount {
+        case 0:
+                return "0 future content "
+        case 1:
+                msg = "1 future rendered "
+        default:
+                msg = fmt.Sprintf("%d future rendered", s.draftCount)
+        }
+
+        if viper.GetBool("BuildFuture") {
+                return fmt.Sprintf("%d of ", s.futureCount) + msg
+        }
+
+        return "0 of " + msg
 }