shithub: hugo

Download patch

ref: 51e309854821a5e943e8e64eea218bc82c8f2dc6
parent: e76c3feb52381efaf8add59857d6940aaec7c0a8
author: spf13 <[email protected]>
date: Tue Jul 9 20:14:02 EDT 2013

Writing relative links to absolute so they work in feeds

--- a/hugolib/site.go
+++ b/hugolib/site.go
@@ -83,6 +83,8 @@
 	site.timer.Step("render and write lists")
 	site.ProcessShortcodes()
 	site.timer.Step("render shortcodes")
+	site.AbsUrlify()
+	site.timer.Step("absolute URLify")
 	site.RenderPages()
 	site.timer.Step("render pages")
 	site.RenderHomePage()
@@ -179,6 +181,17 @@
 func (s *Site) ProcessShortcodes() {
 	for i, _ := range s.Pages {
 		s.Pages[i].Content = template.HTML(ShortcodesHandle(string(s.Pages[i].Content), s.Pages[i], s.Tmpl))
+	}
+}
+
+func (s *Site) AbsUrlify() {
+	for i, _ := range s.Pages {
+		content := string(s.Pages[i].Content)
+		content = strings.Replace(content, " src=\"/", " src=\""+s.c.BaseUrl+"/", -1)
+		content = strings.Replace(content, " src='/", " src='"+s.c.BaseUrl+"/", -1)
+		content = strings.Replace(content, " href='/", " href='"+s.c.BaseUrl+"/", -1)
+		content = strings.Replace(content, " href=\"/", " href=\""+s.c.BaseUrl+"/", -1)
+		s.Pages[i].Content = template.HTML(content)
 	}
 }
 
--- a/main.go
+++ b/main.go
@@ -64,7 +64,9 @@
 
 	if *baseUrl != "" {
 		config.BaseUrl = *baseUrl
-	}
+	} else if *server {
+        config.BaseUrl = "http://localhost:" + *port
+    }
 
 	if *version {
 		fmt.Println("Hugo Static Site Generator v0.8")