diff options
author | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2016-08-08 10:05:16 +0300 |
---|---|---|
committer | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2016-09-06 18:32:18 +0300 |
commit | 6b552db75f00cae14377e38327fd168f6398f22d (patch) | |
tree | 1a7ecfea92864ca34dc80e483371d6d9b8844dec /hugolib | |
parent | e56ecab1575f1b25552988b9efff2836f05f87f9 (diff) |
Make sure drafts etc. are not processed
See #2309
Diffstat (limited to 'hugolib')
-rw-r--r-- | hugolib/hugo_sites.go | 2 | ||||
-rw-r--r-- | hugolib/hugo_sites_test.go | 36 | ||||
-rw-r--r-- | hugolib/site.go | 12 |
3 files changed, 45 insertions, 5 deletions
diff --git a/hugolib/hugo_sites.go b/hugolib/hugo_sites.go index f0012d2af..addcdfc7d 100644 --- a/hugolib/hugo_sites.go +++ b/hugolib/hugo_sites.go @@ -242,7 +242,7 @@ func (h *HugoSites) Rebuild(config BuildCfg, events ...fsnotify.Event) error { s.resetBuildState() } - sourceChanged, err := firstSite.ReBuild(events) + sourceChanged, err := firstSite.reBuild(events) if err != nil { return err diff --git a/hugolib/hugo_sites_test.go b/hugolib/hugo_sites_test.go index e2a110d18..655feba0f 100644 --- a/hugolib/hugo_sites_test.go +++ b/hugolib/hugo_sites_test.go @@ -1,6 +1,7 @@ package hugolib import ( + "bytes" "fmt" "strings" "testing" @@ -141,6 +142,9 @@ func TestMultiSitesBuild(t *testing.T) { assert.False(t, strings.Contains(string(doc1en.Content), "«"), string(doc1en.Content)) assert.True(t, strings.Contains(string(doc1en.Content), "“"), string(doc1en.Content)) + // Check that the drafts etc. are not built/processed/rendered. + assertShouldNotBuild(t, sites) + } func TestMultiSitesRebuild(t *testing.T) { @@ -303,6 +307,30 @@ func TestMultiSitesRebuild(t *testing.T) { this.assertFunc(t) } + + // Check that the drafts etc. are not built/processed/rendered. + assertShouldNotBuild(t, sites) + +} + +func assertShouldNotBuild(t *testing.T, sites *HugoSites) { + s := sites.Sites[0] + + for _, p := range s.rawAllPages { + // No HTML when not processed + require.Equal(t, p.shouldBuild(), bytes.Contains(p.rawContent, []byte("</")), p.BaseFileName()+": "+string(p.rawContent)) + require.Equal(t, p.shouldBuild(), p.Content != "", p.BaseFileName()) + + require.Equal(t, p.shouldBuild(), p.Content != "", p.BaseFileName()) + + filename := filepath.Join("public", p.TargetPath()) + if strings.HasSuffix(filename, ".html") { + // TODO(bep) the end result is correct, but it is weird that we cannot use targetPath directly here. + filename = strings.Replace(filename, ".html", "/index.html", 1) + } + + require.Equal(t, p.shouldBuild(), destinationExists(filename), filename) + } } func TestAddNewLanguage(t *testing.T) { @@ -579,6 +607,14 @@ func readDestination(t *testing.T, filename string) string { return readFileFromFs(t, hugofs.Destination(), filename) } +func destinationExists(filename string) bool { + b, err := helpers.Exists(filename, hugofs.Destination()) + if err != nil { + panic(err) + } + return b +} + func readSource(t *testing.T, filename string) string { return readFileFromFs(t, hugofs.Source(), filename) } diff --git a/hugolib/site.go b/hugolib/site.go index 1029a38bf..00805f8f9 100644 --- a/hugolib/site.go +++ b/hugolib/site.go @@ -437,9 +437,9 @@ func (s *Site) timerStep(step string) { s.timer.Step(step) } -// ReBuild partially rebuilds a site given the filesystem events. +// reBuild partially rebuilds a site given the filesystem events. // It returns whetever the content source was changed. -func (s *Site) ReBuild(events []fsnotify.Event) (bool, error) { +func (s *Site) reBuild(events []fsnotify.Event) (bool, error) { jww.DEBUG.Printf("Rebuild for events %q", events) @@ -555,7 +555,9 @@ func (s *Site) ReBuild(events []fsnotify.Event) (bool, error) { // Do not need to read the files again, but they need conversion // for shortocde re-rendering. for _, p := range s.rawAllPages { - pageChan <- p + if p.shouldBuild() { + pageChan <- p + } } } @@ -1016,7 +1018,9 @@ func (s *Site) convertSource() chan error { go converterCollator(s, results, errs) for _, p := range s.rawAllPages { - pageChan <- p + if p.shouldBuild() { + pageChan <- p + } } for _, f := range s.Files { |