shithub: hugo

Download patch

ref: 92c31bbe10a68bb29c62535f5a7a6b4bfc80a21d
parent: d5f55430615265f18b8d50d215c536a14c21a7b4
author: spf13 <[email protected]>
date: Fri Jul 26 05:51:07 EDT 2013

permalink now respects pretty urls

--- a/hugolib/page.go
+++ b/hugolib/page.go
@@ -228,13 +228,22 @@
 
 func (p *Page) Permalink() template.HTML {
 	if len(strings.TrimSpace(p.Slug)) > 0 {
-		return template.HTML(MakePermalink(string(p.Site.BaseUrl), strings.TrimSpace(p.Section)+"/"+p.Slug))
+		if p.Site.Config.UglyUrls {
+			return template.HTML(MakePermalink(string(p.Site.BaseUrl), strings.TrimSpace(p.Section)+"/"+p.Slug+"."+p.Extension))
+		} else {
+			return template.HTML(MakePermalink(string(p.Site.BaseUrl), strings.TrimSpace(p.Section)+"/"+p.Slug))
+		}
 	} else if len(strings.TrimSpace(p.Url)) > 2 {
 		return template.HTML(MakePermalink(string(p.Site.BaseUrl), strings.TrimSpace(p.Url)))
 	} else {
 		_, t := filepath.Split(p.FileName)
-		x := replaceExtension(strings.TrimSpace(t), p.Extension)
-		return template.HTML(MakePermalink(string(p.Site.BaseUrl), strings.TrimSpace(p.Section)+"/"+x))
+		if p.Site.Config.UglyUrls {
+			x := replaceExtension(strings.TrimSpace(t), p.Extension)
+			return template.HTML(MakePermalink(string(p.Site.BaseUrl), strings.TrimSpace(p.Section)+"/"+x))
+		} else {
+			file, _ := fileExt(strings.TrimSpace(t))
+			return template.HTML(MakePermalink(string(p.Site.BaseUrl), strings.TrimSpace(p.Section)+"/"+file))
+		}
 	}
 }
 
--- a/hugolib/site.go
+++ b/hugolib/site.go
@@ -48,6 +48,7 @@
 	Recent     *Pages
 	LastChange time.Time
 	Title      string
+	Config     *Config
 }
 
 func (s *Site) getFromIndex(kind string, name string) Pages {
@@ -166,7 +167,7 @@
 
 	filepath.Walk(s.c.GetAbsPath(s.c.SourceDir), walker)
 
-	s.Info = SiteInfo{BaseUrl: template.URL(s.c.BaseUrl), Title: s.c.Title}
+	s.Info = SiteInfo{BaseUrl: template.URL(s.c.BaseUrl), Title: s.c.Title, Config: &s.c}
 
 	s.Shortcodes = make(map[string]ShortcodeFunc)
 }