From 06da609138475de317e7e5fbf3a0a8c3af3c64e4 Mon Sep 17 00:00:00 2001 From: Noah Campbell Date: Wed, 2 Oct 2013 19:33:51 -0400 Subject: [PATCH] Refactor Permalink to private function This will allow for reuse of this particular function. --- hugolib/page.go | 18 +++++++++++++----- hugolib/site.go | 4 ++-- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/hugolib/page.go b/hugolib/page.go index e9a7d6daf..f35b1a5e0 100644 --- a/hugolib/page.go +++ b/hugolib/page.go @@ -207,7 +207,7 @@ func (p *Page) analyzePage() { p.FuzzyWordCount = int((p.WordCount+100)/100) * 100 } -func (p *Page) Permalink() (string, error) { +func (p *Page) permalink() (*url.URL, error) { baseUrl := string(p.Site.BaseUrl) section := strings.TrimSpace(p.Section) pSlug := strings.TrimSpace(p.Slug) @@ -223,7 +223,7 @@ func (p *Page) Permalink() (string, error) { permalink = pUrl } else { _, t := path.Split(p.FileName) - if p.Site.Config.UglyUrls { + if p.Site.Config != nil && p.Site.Config.UglyUrls { x := replaceExtension(strings.TrimSpace(t), p.Extension) permalink = section + "/" + x } else { @@ -234,15 +234,23 @@ func (p *Page) Permalink() (string, error) { base, err := url.Parse(baseUrl) if err != nil { - return "", err + return nil, err } path, err := url.Parse(permalink) if err != nil { - return "", err + return nil, err } - return MakePermalink(base, path).String(), nil + return MakePermalink(base, path), nil +} + +func (p *Page) Permalink() (string, error) { + link, err := p.permalink() + if err != nil { + return "", err + } + return link.String(), nil } func (page *Page) handleTomlMetaData(datum []byte) (interface{}, error) { diff --git a/hugolib/site.go b/hugolib/site.go index 85f0e9d90..3f2f565a4 100644 --- a/hugolib/site.go +++ b/hugolib/site.go @@ -551,14 +551,14 @@ func (s *Site) render(d interface{}, out string, layouts ...string) (err error) section := "" page, ok := d.(*Page) if ok { - section = page.Section + section, _ = page.Permalink() } fmt.Println("Section is:", section) transformer := transform.NewChain( - &transform.NavActive{Section: section}, &transform.AbsURL{BaseURL: s.Config.BaseUrl}, + &transform.NavActive{Section: section}, ) renderReader, renderWriter := io.Pipe()