ref: 6274aa0a64b0cb229a556d71c1d34d4139446aaa
parent: 610c06e6589770d950d8fd4e01efd90b132fcff5
author: Noah Campbell <[email protected]>
date: Thu Sep 5 05:57:25 EDT 2013
Homepage "/" respects PublishDir It wasn't taking the value of PublishDir into consideration for the special case of the homepage "/". Fixes #75
--- a/hugolib/site_url_test.go
+++ b/hugolib/site_url_test.go
@@ -49,8 +49,6 @@
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"))))
--- a/target/file.go
+++ b/target/file.go
@@ -56,6 +56,9 @@
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
}
--- a/target/file_test.go
+++ b/target/file_test.go
@@ -32,6 +32,31 @@
}
}
+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