Homepage "/" respects PublishDir

It wasn't taking the value of PublishDir into consideration for the
special case of the homepage "/".

Fixes #75
This commit is contained in:
Noah Campbell 2013-09-05 09:57:25 -07:00
parent 610c06e658
commit 6274aa0a64
3 changed files with 28 additions and 2 deletions

View file

@ -49,8 +49,6 @@ func TestPageCount(t *testing.T) {
s := &Site{Target: target} s := &Site{Target: target}
s.prepTemplates() s.prepTemplates()
must(s.addTemplate("indexes/blue.html", INDEX_TEMPLATE)) 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_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")))) s.Pages = append(s.Pages, mustReturn(ReadFrom(strings.NewReader(SLUG_DOC_2), filepath.FromSlash("content/blue/doc2.md"))))

View file

@ -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) { func (fs *Filesystem) Translate(src string) (dest string, err error) {
if src == "/" { if src == "/" {
if fs.PublishDir != "" {
return path.Join(fs.PublishDir, "index.html"), nil
}
return "index.html", nil return "index.html", nil
} }

View file

@ -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) { func TestTranslateUglyUrls(t *testing.T) {
tests := []struct { tests := []struct {
content string content string