diff --git a/hugolib/site_url_test.go b/hugolib/site_url_test.go index 3353e4a84..e506ee66b 100644 --- a/hugolib/site_url_test.go +++ b/hugolib/site_url_test.go @@ -49,8 +49,6 @@ func TestPageCount(t *testing.T) { s := &Site{Target: target} s.prepTemplates() must(s.addTemplate("indexes/blue.html", INDEX_TEMPLATE)) - //s.Files = append(s.Files, "blue/doc1.md") - //s.Files = append(s.Files, "blue/doc2.md") s.Pages = append(s.Pages, mustReturn(ReadFrom(strings.NewReader(SLUG_DOC_1), filepath.FromSlash("content/blue/doc1.md")))) s.Pages = append(s.Pages, mustReturn(ReadFrom(strings.NewReader(SLUG_DOC_2), filepath.FromSlash("content/blue/doc2.md")))) diff --git a/target/file.go b/target/file.go index 29c019f4e..f5ae62db3 100644 --- a/target/file.go +++ b/target/file.go @@ -56,6 +56,9 @@ func (fs *Filesystem) Publish(path string, r io.Reader) (err error) { func (fs *Filesystem) Translate(src string) (dest string, err error) { if src == "/" { + if fs.PublishDir != "" { + return path.Join(fs.PublishDir, "index.html"), nil + } return "index.html", nil } diff --git a/target/file_test.go b/target/file_test.go index 14e47ee6f..ee474c1c4 100644 --- a/target/file_test.go +++ b/target/file_test.go @@ -32,6 +32,31 @@ func TestFileTranslator(t *testing.T) { } } +func TestFileTranslatorBase(t *testing.T) { + tests := []struct { + content string + expected string + }{ + {"/", "a/base/index.html"}, + } + + for _, test := range tests { + f := &Filesystem{PublishDir: "a/base"} + fts := &Filesystem{PublishDir: "a/base/"} + + for _, fs := range []*Filesystem{f, fts} { + dest, err := fs.Translate(test.content) + if err != nil { + t.Fatalf("Translated returned and err: %s", err) + } + + if dest != test.expected { + t.Errorf("Translate expected: %s, got: %s", test.expected, dest) + } + } + } +} + func TestTranslateUglyUrls(t *testing.T) { tests := []struct { content string