support for futre/draft summary info output

This commit is contained in:
Joel Scoble 2014-08-20 10:09:35 -05:00 committed by spf13
parent 946ad9c2c3
commit c750a95e22
2 changed files with 62 additions and 1 deletions

View file

@ -304,6 +304,17 @@ func (page *Page) ShouldBuild() bool {
return false 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) { func (p *Page) Permalink() (string, error) {
link, err := p.permalink() link, err := p.permalink()
if err != nil { if err != nil {

View file

@ -70,6 +70,8 @@ type Site struct {
Completed chan bool Completed chan bool
RunMode runmode RunMode runmode
params map[string]interface{} params map[string]interface{}
draftCount int
futureCount int
} }
type SiteInfo struct { type SiteInfo struct {
@ -348,6 +350,14 @@ func (s *Site) CreatePages() (err error) {
s.Pages = append(s.Pages, page) s.Pages = append(s.Pages, page)
} }
if page.IsDraft() {
s.draftCount += 1
}
if page.IsFuture() {
s.futureCount += 1
}
return return
}(fi) }(fi)
} }
@ -806,7 +816,9 @@ func (s *Site) RenderSitemap() error {
} }
func (s *Site) Stats() { 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") taxonomies := viper.GetStringMapString("Taxonomies")
@ -951,3 +963,41 @@ func (s *Site) WriteAlias(path string, permalink template.HTML) (err error) {
return s.Alias.Publish(path, permalink) 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
}