URI: 
       Make sure Date and PublishDate is always set to a value if one is available - hugo - [fork] hugo port for 9front
  HTML git clone git@git.drkhsh.at/hugo.git
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
   DIR README
   DIR LICENSE
       ---
   DIR commit 6a30874f19610a38e846e120aac03c68e12f9b7b
   DIR parent 15ec031d9818d239bfbff525c00cd99cc3118a96
  HTML Author: Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
       Date:   Fri, 13 Oct 2017 10:21:28 +0200
       
       Make sure Date and PublishDate is always set to a value if one is available
       
       Fixes #3854
       
       Diffstat:
         M hugolib/page.go                     |       8 ++++++++
         M hugolib/page_test.go                |      36 +++++++++++++++++++++++++++++++
         M hugolib/site_test.go                |       9 ---------
       
       3 files changed, 44 insertions(+), 9 deletions(-)
       ---
   DIR diff --git a/hugolib/page.go b/hugolib/page.go
       @@ -1147,6 +1147,14 @@ func (p *Page) update(f interface{}) error {
                }
                p.Params["draft"] = p.Draft
        
       +        if p.Date.IsZero() {
       +                p.Date = p.PublishDate
       +        }
       +
       +        if p.PublishDate.IsZero() {
       +                p.PublishDate = p.Date
       +        }
       +
                if p.Date.IsZero() && p.s.Cfg.GetBool("useModTimeAsFallback") {
                        fi, err := p.s.Fs.Source.Stat(filepath.Join(p.s.PathSpec.AbsPathify(p.s.Cfg.GetString("contentDir")), p.File.Path()))
                        if err == nil {
   DIR diff --git a/hugolib/page_test.go b/hugolib/page_test.go
       @@ -714,6 +714,42 @@ func TestPageWithDelimiterForMarkdownThatCrossesBorder(t *testing.T) {
                }
        }
        
       +// Issue #3854
       +func TestPageWithDateFields(t *testing.T) {
       +        assert := require.New(t)
       +        pageWithDate := `---
       +title: P%d
       +weight: %d
       +%s: 2017-10-13
       +---
       +Simple Page With Some Date`
       +
       +        hasBothDates := func(p *Page) bool {
       +                return p.Date.Year() == 2017 && p.PublishDate.Year() == 2017
       +        }
       +
       +        datePage := func(field string, weight int) string {
       +                return fmt.Sprintf(pageWithDate, weight, weight, field)
       +        }
       +
       +        t.Parallel()
       +        assertFunc := func(t *testing.T, ext string, pages Pages) {
       +                assert.True(len(pages) > 0)
       +                for _, p := range pages {
       +                        assert.True(hasBothDates(p))
       +                }
       +
       +        }
       +
       +        fields := []string{"date", "publishdate", "pubdate", "published"}
       +        pageContents := make([]string, len(fields))
       +        for i, field := range fields {
       +                pageContents[i] = datePage(field, i+1)
       +        }
       +
       +        testAllMarkdownEnginesForPages(t, assertFunc, nil, pageContents...)
       +}
       +
        // Issue #2601
        func TestPageRawContent(t *testing.T) {
                t.Parallel()
   DIR diff --git a/hugolib/site_test.go b/hugolib/site_test.go
       @@ -750,15 +750,6 @@ func TestGroupedPages(t *testing.T) {
                if bydate[1].Key != "2012-01" {
                        t.Errorf("PageGroup array in unexpected order. Second group key should be '%s', got '%s'", "2012-01", bydate[1].Key)
                }
       -        if bydate[2].Key != "2012-04" {
       -                t.Errorf("PageGroup array in unexpected order. Third group key should be '%s', got '%s'", "2012-04", bydate[2].Key)
       -        }
       -        if bydate[2].Pages[0].Title != "Three" {
       -                t.Errorf("PageGroup has an unexpected page. Third group's pages should have '%s', got '%s'", "Three", bydate[2].Pages[0].Title)
       -        }
       -        if len(bydate[0].Pages) != 2 {
       -                t.Errorf("PageGroup has unexpected number of pages. First group should have '%d' pages, got '%d' pages", 2, len(bydate[2].Pages))
       -        }
        
                bypubdate, err := s.RegularPages.GroupByPublishDate("2006")
                if err != nil {