shithub: hugo

Download patch

ref: 658cfb287ec8af3c97633e19a2b584d5a9b0ecc2
parent: e7099cfa26d31cc7544e6db37899678ef8bd65ff
author: bep <[email protected]>
date: Wed Mar 18 15:42:46 EDT 2015

Remove URL param from exported AbsURL methods

This is to make it clear that there is only one URL in play,
the BaseURL.

--- a/hugolib/site.go
+++ b/hugolib/site.go
@@ -1363,7 +1363,7 @@
 
 	err := s.render(name, d, renderBuffer, layouts...)
 
-	absURLInXML, err := transform.AbsURLInXML(viper.GetString("BaseURL"))
+	absURLInXML, err := transform.AbsURLInXML()
 	if err != nil {
 		return err
 	}
@@ -1393,7 +1393,7 @@
 	transformLinks := transform.NewEmptyTransforms()
 
 	if viper.GetBool("CanonifyURLs") {
-		absURL, err := transform.AbsURL(viper.GetString("BaseURL"))
+		absURL, err := transform.AbsURL()
 		if err != nil {
 			return err
 		}
--- a/transform/absurl.go
+++ b/transform/absurl.go
@@ -1,6 +1,7 @@
 package transform
 
 import (
+	"github.com/spf13/viper"
 	"sync"
 )
 
@@ -7,16 +8,16 @@
 var absURLInit sync.Once
 var ar *absURLReplacer
 
-// for performance reasons, we reuse the first baseURL given
-func initAbsURLReplacer(baseURL string) {
-	absURLInit.Do(func() {
-		ar = newAbsURLReplacer(baseURL)
-	})
+func AbsURL() (trs []link, err error) {
+	initAbsURLReplacer()
+	return absURLFromReplacer(ar)
 }
 
-func AbsURL(absURL string) (trs []link, err error) {
-	initAbsURLReplacer(absURL)
+func absURLFromURL(URL string) (trs []link, err error) {
+	return absURLFromReplacer(newAbsURLReplacer(URL))
+}
 
+func absURLFromReplacer(ar *absURLReplacer) (trs []link, err error) {
 	trs = append(trs, func(rw contentRewriter) {
 		ar.replaceInHTML(rw)
 	})
@@ -23,11 +24,24 @@
 	return
 }
 
-func AbsURLInXML(absURL string) (trs []link, err error) {
-	initAbsURLReplacer(absURL)
+func AbsURLInXML() (trs []link, err error) {
+	initAbsURLReplacer()
+	return absURLInXMLFromReplacer(ar)
+}
 
+func absURLInXMLFromURL(URL string) (trs []link, err error) {
+	return absURLInXMLFromReplacer(newAbsURLReplacer(URL))
+}
+
+func absURLInXMLFromReplacer(ar *absURLReplacer) (trs []link, err error) {
 	trs = append(trs, func(rw contentRewriter) {
 		ar.replaceInXML(rw)
 	})
 	return
+}
+
+func initAbsURLReplacer() {
+	absURLInit.Do(func() {
+		ar = newAbsURLReplacer(viper.GetString("BaseURL"))
+	})
 }
--- a/transform/chain_test.go
+++ b/transform/chain_test.go
@@ -85,7 +85,7 @@
 }
 
 func BenchmarkAbsURL(b *testing.B) {
-	absURL, _ := AbsURL("http://base")
+	absURL, _ := absURLFromURL("http://base")
 	tr := NewChain(absURL...)
 
 	b.ResetTimer()
@@ -95,7 +95,7 @@
 }
 
 func TestAbsURL(t *testing.T) {
-	absURL, _ := AbsURL("http://base")
+	absURL, _ := absURLFromURL("http://base")
 	tr := NewChain(absURL...)
 
 	apply(t.Errorf, tr, abs_url_tests)
@@ -103,7 +103,7 @@
 }
 
 func BenchmarkXMLAbsURL(b *testing.B) {
-	absURLInXML, _ := AbsURLInXML("http://base")
+	absURLInXML, _ := absURLInXMLFromURL("http://base")
 	tr := NewChain(absURLInXML...)
 
 	b.ResetTimer()
@@ -113,7 +113,7 @@
 }
 
 func TestXMLAbsURL(t *testing.T) {
-	absURLInXML, _ := AbsURLInXML("http://base")
+	absURLInXML, _ := absURLInXMLFromURL("http://base")
 	tr := NewChain(absURLInXML...)
 	apply(t.Errorf, tr, xml_abs_url_tests)
 }