summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoe Mooring <joe.mooring@veriphor.com>2023-09-29 07:51:33 -0700
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2023-10-29 18:12:24 +0100
commita349aafb7fa2e013926b75154b48dec79416eef7 (patch)
treef57ef3da29f329809325a5f8dd7ebb0633864d75
parentb8fbd4a57818b60358a2473f48ef94a528ad58c5 (diff)
tpl/urls: Return strings from URL functions
Closes #11511
-rw-r--r--tpl/urls/urls.go29
1 files changed, 14 insertions, 15 deletions
diff --git a/tpl/urls/urls.go b/tpl/urls/urls.go
index 6ae447ca2..b06b562a7 100644
--- a/tpl/urls/urls.go
+++ b/tpl/urls/urls.go
@@ -17,7 +17,6 @@ package urls
import (
"errors"
"fmt"
- "html/template"
"net/url"
"github.com/gohugoio/hugo/common/urls"
@@ -40,13 +39,13 @@ type Namespace struct {
}
// AbsURL takes the string s and converts it to an absolute URL.
-func (ns *Namespace) AbsURL(s any) (template.HTML, error) {
+func (ns *Namespace) AbsURL(s any) (string, error) {
ss, err := cast.ToStringE(s)
if err != nil {
return "", nil
}
- return template.HTML(ns.deps.PathSpec.AbsURL(ss, false)), nil
+ return ns.deps.PathSpec.AbsURL(ss, false), nil
}
// Parse parses rawurl into a URL structure. The rawurl may be relative or
@@ -54,7 +53,7 @@ func (ns *Namespace) AbsURL(s any) (template.HTML, error) {
func (ns *Namespace) Parse(rawurl any) (*url.URL, error) {
s, err := cast.ToStringE(rawurl)
if err != nil {
- return nil, fmt.Errorf("Error in Parse: %w", err)
+ return nil, fmt.Errorf("error in Parse: %w", err)
}
return url.Parse(s)
@@ -62,13 +61,13 @@ func (ns *Namespace) Parse(rawurl any) (*url.URL, error) {
// RelURL takes the string s and prepends the relative path according to a
// page's position in the project directory structure.
-func (ns *Namespace) RelURL(s any) (template.HTML, error) {
+func (ns *Namespace) RelURL(s any) (string, error) {
ss, err := cast.ToStringE(s)
if err != nil {
return "", nil
}
- return template.HTML(ns.deps.PathSpec.RelURL(ss, false)), nil
+ return ns.deps.PathSpec.RelURL(ss, false), nil
}
// URLize returns the the strings s formatted as an URL.
@@ -91,7 +90,7 @@ func (ns *Namespace) Anchorize(s any) (string, error) {
}
// Ref returns the absolute URL path to a given content item from Page p.
-func (ns *Namespace) Ref(p any, args any) (template.HTML, error) {
+func (ns *Namespace) Ref(p any, args any) (string, error) {
pp, ok := p.(urls.RefLinker)
if !ok {
return "", errors.New("invalid Page received in Ref")
@@ -101,11 +100,11 @@ func (ns *Namespace) Ref(p any, args any) (template.HTML, error) {
return "", err
}
s, err := pp.Ref(argsm)
- return template.HTML(s), err
+ return s, err
}
// RelRef returns the relative URL path to a given content item from Page p.
-func (ns *Namespace) RelRef(p any, args any) (template.HTML, error) {
+func (ns *Namespace) RelRef(p any, args any) (string, error) {
pp, ok := p.(urls.RefLinker)
if !ok {
return "", errors.New("invalid Page received in RelRef")
@@ -116,7 +115,7 @@ func (ns *Namespace) RelRef(p any, args any) (template.HTML, error) {
}
s, err := pp.RelRef(argsm)
- return template.HTML(s), err
+ return s, err
}
func (ns *Namespace) refArgsToMap(args any) (map[string]any, error) {
@@ -143,7 +142,7 @@ func (ns *Namespace) refArgsToMap(args any) (map[string]any, error) {
if len(v) == 0 || len(v) > 2 {
return nil, fmt.Errorf("invalid number of arguments to ref")
}
- // These where the options before we introduced the map type:
+ // These were the options before we introduced the map type:
s = v[0]
if len(v) == 2 {
of = v[1]
@@ -165,25 +164,25 @@ func (ns *Namespace) refArgsToMap(args any) (map[string]any, error) {
// RelLangURL takes the string s and prepends the relative path according to a
// page's position in the project directory structure and the current language.
-func (ns *Namespace) RelLangURL(s any) (template.HTML, error) {
+func (ns *Namespace) RelLangURL(s any) (string, error) {
ss, err := cast.ToStringE(s)
if err != nil {
return "", err
}
- return template.HTML(ns.deps.PathSpec.RelURL(ss, !ns.multihost)), nil
+ return ns.deps.PathSpec.RelURL(ss, !ns.multihost), nil
}
// AbsLangURL the string s and converts it to an absolute URL according
// to a page's position in the project directory structure and the current
// language.
-func (ns *Namespace) AbsLangURL(s any) (template.HTML, error) {
+func (ns *Namespace) AbsLangURL(s any) (string, error) {
ss, err := cast.ToStringE(s)
if err != nil {
return "", err
}
- return template.HTML(ns.deps.PathSpec.AbsURL(ss, !ns.multihost)), nil
+ return ns.deps.PathSpec.AbsURL(ss, !ns.multihost), nil
}
// JoinPath joins the provided elements into a URL string and cleans the result