mirror of
https://github.com/gohugoio/hugo.git
synced 2025-03-22 08:32:47 +00:00
Remove URL param from exported AbsURL methods
This is to make it clear that there is only one URL in play, the BaseURL.
This commit is contained in:
parent
e7099cfa26
commit
658cfb287e
3 changed files with 29 additions and 15 deletions
|
@ -1363,7 +1363,7 @@ func (s *Site) renderAndWriteXML(name string, dest string, d interface{}, layout
|
||||||
|
|
||||||
err := s.render(name, d, renderBuffer, layouts...)
|
err := s.render(name, d, renderBuffer, layouts...)
|
||||||
|
|
||||||
absURLInXML, err := transform.AbsURLInXML(viper.GetString("BaseURL"))
|
absURLInXML, err := transform.AbsURLInXML()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
@ -1393,7 +1393,7 @@ func (s *Site) renderAndWritePage(name string, dest string, d interface{}, layou
|
||||||
transformLinks := transform.NewEmptyTransforms()
|
transformLinks := transform.NewEmptyTransforms()
|
||||||
|
|
||||||
if viper.GetBool("CanonifyURLs") {
|
if viper.GetBool("CanonifyURLs") {
|
||||||
absURL, err := transform.AbsURL(viper.GetString("BaseURL"))
|
absURL, err := transform.AbsURL()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,33 +1,47 @@
|
||||||
package transform
|
package transform
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"github.com/spf13/viper"
|
||||||
"sync"
|
"sync"
|
||||||
)
|
)
|
||||||
|
|
||||||
var absURLInit sync.Once
|
var absURLInit sync.Once
|
||||||
var ar *absURLReplacer
|
var ar *absURLReplacer
|
||||||
|
|
||||||
// for performance reasons, we reuse the first baseURL given
|
func AbsURL() (trs []link, err error) {
|
||||||
func initAbsURLReplacer(baseURL string) {
|
initAbsURLReplacer()
|
||||||
absURLInit.Do(func() {
|
return absURLFromReplacer(ar)
|
||||||
ar = newAbsURLReplacer(baseURL)
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func AbsURL(absURL string) (trs []link, err error) {
|
func absURLFromURL(URL string) (trs []link, err error) {
|
||||||
initAbsURLReplacer(absURL)
|
return absURLFromReplacer(newAbsURLReplacer(URL))
|
||||||
|
}
|
||||||
|
|
||||||
|
func absURLFromReplacer(ar *absURLReplacer) (trs []link, err error) {
|
||||||
trs = append(trs, func(rw contentRewriter) {
|
trs = append(trs, func(rw contentRewriter) {
|
||||||
ar.replaceInHTML(rw)
|
ar.replaceInHTML(rw)
|
||||||
})
|
})
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
func AbsURLInXML(absURL string) (trs []link, err error) {
|
func AbsURLInXML() (trs []link, err error) {
|
||||||
initAbsURLReplacer(absURL)
|
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) {
|
trs = append(trs, func(rw contentRewriter) {
|
||||||
ar.replaceInXML(rw)
|
ar.replaceInXML(rw)
|
||||||
})
|
})
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func initAbsURLReplacer() {
|
||||||
|
absURLInit.Do(func() {
|
||||||
|
ar = newAbsURLReplacer(viper.GetString("BaseURL"))
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
|
@ -85,7 +85,7 @@ func TestChaingMultipleTransformers(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func BenchmarkAbsURL(b *testing.B) {
|
func BenchmarkAbsURL(b *testing.B) {
|
||||||
absURL, _ := AbsURL("http://base")
|
absURL, _ := absURLFromURL("http://base")
|
||||||
tr := NewChain(absURL...)
|
tr := NewChain(absURL...)
|
||||||
|
|
||||||
b.ResetTimer()
|
b.ResetTimer()
|
||||||
|
@ -95,7 +95,7 @@ func BenchmarkAbsURL(b *testing.B) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestAbsURL(t *testing.T) {
|
func TestAbsURL(t *testing.T) {
|
||||||
absURL, _ := AbsURL("http://base")
|
absURL, _ := absURLFromURL("http://base")
|
||||||
tr := NewChain(absURL...)
|
tr := NewChain(absURL...)
|
||||||
|
|
||||||
apply(t.Errorf, tr, abs_url_tests)
|
apply(t.Errorf, tr, abs_url_tests)
|
||||||
|
@ -103,7 +103,7 @@ func TestAbsURL(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func BenchmarkXMLAbsURL(b *testing.B) {
|
func BenchmarkXMLAbsURL(b *testing.B) {
|
||||||
absURLInXML, _ := AbsURLInXML("http://base")
|
absURLInXML, _ := absURLInXMLFromURL("http://base")
|
||||||
tr := NewChain(absURLInXML...)
|
tr := NewChain(absURLInXML...)
|
||||||
|
|
||||||
b.ResetTimer()
|
b.ResetTimer()
|
||||||
|
@ -113,7 +113,7 @@ func BenchmarkXMLAbsURL(b *testing.B) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestXMLAbsURL(t *testing.T) {
|
func TestXMLAbsURL(t *testing.T) {
|
||||||
absURLInXML, _ := AbsURLInXML("http://base")
|
absURLInXML, _ := absURLInXMLFromURL("http://base")
|
||||||
tr := NewChain(absURLInXML...)
|
tr := NewChain(absURLInXML...)
|
||||||
apply(t.Errorf, tr, xml_abs_url_tests)
|
apply(t.Errorf, tr, xml_abs_url_tests)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue