shithub: hugo

Download patch

ref: bbfebdea433f7b08dbd9d49c2df863c7a24b9665
parent: 93717aac5cba7407e016ab993d7d277d9bad9956
author: Bjørn Erik Pedersen <[email protected]>
date: Thu Aug 11 14:26:45 EDT 2016

Fix Data in multisites

Updates #2309

--- a/hugolib/hugo_sites.go
+++ b/hugolib/hugo_sites.go
@@ -373,9 +373,12 @@
 			}
 		}
 
-		for i := 1; i < len(h.Sites); i++ {
-			h.Sites[i].AllPages = h.Sites[0].AllPages
-		}
+	}
+
+	// Pull over the collections from the master site
+	for i := 1; i < len(h.Sites); i++ {
+		h.Sites[i].AllPages = h.Sites[0].AllPages
+		h.Sites[i].Data = h.Sites[0].Data
 	}
 
 	if len(h.Sites) > 1 {
--- a/hugolib/hugo_sites_test.go
+++ b/hugolib/hugo_sites_test.go
@@ -254,6 +254,10 @@
 	languageRedirect := readDestination(t, "public/index.html")
 	require.True(t, strings.Contains(languageRedirect, "0; url=http://example.com/blog/fr"), languageRedirect)
 
+	// check home page content (including data files rendering)
+	assertFileContent(t, "public/en/index.html", true, "Home Page 1", "Hello", "Hugo Rocks!")
+	assertFileContent(t, "public/fr/index.html", true, "Home Page 1", "Bonjour", "Hugo Rocks!")
+
 	// Check node translations
 	homeEn := enSite.getNode("home-0")
 	require.NotNil(t, homeEn)
@@ -729,7 +733,7 @@
 
 	if err := afero.WriteFile(hugofs.Source(),
 		filepath.Join("layouts", "index.html"),
-		[]byte("{{ $p := .Paginator }}Home Page {{ $p.PageNumber }}: {{ .Title }}|{{ .IsHome }}|{{ i18n \"hello\" }}|{{ .Permalink }}"),
+		[]byte("{{ $p := .Paginator }}Home Page {{ $p.PageNumber }}: {{ .Title }}|{{ .IsHome }}|{{ i18n \"hello\" }}|{{ .Permalink }}|{{  .Site.Data.hugo.slogan }}"),
 		0755); err != nil {
 		t.Fatalf("Failed to write layout file: %s", err)
 	}
@@ -885,11 +889,9 @@
 			t.Fatalf("Failed to write file: %s", err)
 		}
 	}
-	_, err := hugofs.Source().Open("content/other/doc5.fr.md")
 
-	if err != nil {
-		t.Fatalf("Unable to locate file")
-	}
+	// Add some data
+	writeSource(t, "data/hugo.toml", "slogan = \"Hugo Rocks!\"")
 
 	sites, err := NewHugoSitesFromConfiguration()