Skip to content

Commit

Permalink
Merge pull request #36 from noahcampbell/master
Browse files Browse the repository at this point in the history
Use / for template names regardless of platform.
  • Loading branch information
spf13 committed Aug 12, 2013
2 parents ec1a3a8 + 8c03141 commit cb39f05
Show file tree
Hide file tree
Showing 4 changed files with 40 additions and 16 deletions.
2 changes: 1 addition & 1 deletion hugolib/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -148,7 +148,7 @@ func FindPath() (string, error) {
}

func (c *Config) GetAbsPath(name string) string {
if path.IsAbs(name) {
if filepath.IsAbs(name) {
return name
}

Expand Down
28 changes: 16 additions & 12 deletions hugolib/path_seperators_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,25 +23,29 @@ func TestDegenerateMissingFolderInPageFilename(t *testing.T) {
}

func TestNewPageWithFilePath(t *testing.T) {
toCheck := []map[string]string{
{"input": filepath.Join("sub", "foobar.html"), "expect": "sub"},
{"input": filepath.Join("content", "sub", "foobar.html"), "expect": "sub"},
{"input": filepath.Join("content", "dub", "sub", "foobar.html"), "expect": "sub"},
toCheck := []struct{
input string
section string
layout string
}{
{filepath.Join("sub", "foobar.html"), "sub", "sub/single.html"},
{filepath.Join("content", "sub", "foobar.html"), "sub", "sub/single.html"},
{filepath.Join("content", "dub", "sub", "foobar.html"), "sub", "sub/single.html"},
}

for _, el := range toCheck {
p, err := ReadFrom(strings.NewReader(SIMPLE_PAGE_YAML), el["input"])
p, err := ReadFrom(strings.NewReader(SIMPLE_PAGE_YAML), el.input)
if err != nil {
t.Fatalf("Reading from SIMPLE_PAGE_YAML resulted in an error: %s", err)
}
if p.Section != el["expect"] {
t.Fatalf("Section not set to %s for page %s. Got: %s", el["expect"], el["input"], p.Section)
if p.Section != el.section {
t.Fatalf("Section not set to %s for page %s. Got: %s", el.section, el.input, p.Section)
}

if p.Layout() != el.layout {
t.Fatalf("Layout incorrect. Expected: '%s', Got: '%s'", el.layout, p.Layout())
}
}
}

func TestSettingOutFileOnPageContainsCorrectSlashes(t *testing.T) {
s := &Site{Config: Config{}}
p := NewPage(filepath.Join("sub", "foobar"))
s.setOutFile(p)
}

16 changes: 16 additions & 0 deletions hugolib/path_seperators_windows_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package hugolib

import (
"testing"
)

func TestTemplatePathSeperator(t *testing.T) {
config := Config{
LayoutDir: "c:\\a\\windows\\path\\layout",
Path: "c:\\a\\windows\\path",
}
s := &Site{Config: config}
if name := s.generateTemplateNameFrom("c:\\a\\windows\\path\\layout\\sub1\\index.html"); name != "sub1/index.html" {
t.Fatalf("Template name incorrect. Expected: %s, Got: %s", "sub1/index.html", name)
}
}
10 changes: 7 additions & 3 deletions hugolib/site.go
Original file line number Diff line number Diff line change
Expand Up @@ -163,14 +163,18 @@ func (s *Site) loadTemplates() {
return err
}
text := string(filetext)
name := path[len(s.Config.GetAbsPath(s.Config.LayoutDir))+1:]
t := s.Tmpl.New(name)
t := s.Tmpl.New(s.generateTemplateNameFrom(path))
template.Must(t.Parse(text))
}
return nil
}

filepath.Walk(s.Config.GetAbsPath(s.Config.LayoutDir), walker)
filepath.Walk(s.absLayoutDir(), walker)
}

func (s *Site) generateTemplateNameFrom(path string) (name string) {
name = filepath.ToSlash(path[len(s.absLayoutDir())+1:])
return
}

func (s *Site) primeTemplates() {
Expand Down

0 comments on commit cb39f05

Please sign in to comment.