mirror of
https://github.com/gohugoio/hugo.git
synced 2024-11-21 20:46:30 -05:00
strip trailing baseurl slash. Added a new template function "sanitizeurl" which ensures no double slashes. Fixed #221
This commit is contained in:
parent
a6170154cf
commit
ad34be9d77
3 changed files with 32 additions and 19 deletions
|
@ -16,8 +16,18 @@ package helpers
|
|||
import (
|
||||
"net/url"
|
||||
"path"
|
||||
|
||||
"github.com/PuerkitoBio/purell"
|
||||
)
|
||||
|
||||
func SanitizeUrl(in string) string {
|
||||
url, err := purell.NormalizeURLString(in, purell.FlagsUsuallySafeGreedy|purell.FlagRemoveDuplicateSlashes|purell.FlagRemoveUnnecessaryHostDots|purell.FlagRemoveEmptyPortSeparator)
|
||||
if err != nil {
|
||||
return in
|
||||
}
|
||||
return url
|
||||
}
|
||||
|
||||
// Similar to MakePath, but with Unicode handling
|
||||
// Example:
|
||||
// uri: Vim (text editor)
|
||||
|
@ -55,6 +65,7 @@ func MakePermalink(host, plink string) *url.URL {
|
|||
}
|
||||
|
||||
func UrlPrep(ugly bool, in string) string {
|
||||
in = SanitizeUrl(in)
|
||||
if ugly {
|
||||
return Uglify(in)
|
||||
} else {
|
||||
|
|
|
@ -227,7 +227,7 @@ func (s *Site) initializeSiteInfo() {
|
|||
}
|
||||
|
||||
s.Info = SiteInfo{
|
||||
BaseUrl: template.URL(viper.GetString("BaseUrl")),
|
||||
BaseUrl: template.URL(helpers.SanitizeUrl(viper.GetString("BaseUrl"))),
|
||||
Title: viper.GetString("Title"),
|
||||
Recent: &s.Pages,
|
||||
Params: params,
|
||||
|
|
|
@ -2,8 +2,6 @@ package bundle
|
|||
|
||||
import (
|
||||
"errors"
|
||||
"github.com/eknkc/amber"
|
||||
"github.com/spf13/hugo/helpers"
|
||||
"html"
|
||||
"html/template"
|
||||
"io"
|
||||
|
@ -13,6 +11,9 @@ import (
|
|||
"reflect"
|
||||
"strconv"
|
||||
"strings"
|
||||
|
||||
"github.com/eknkc/amber"
|
||||
"github.com/spf13/hugo/helpers"
|
||||
)
|
||||
|
||||
func Gt(a interface{}, b interface{}) bool {
|
||||
|
@ -159,22 +160,23 @@ func NewTemplate() Template {
|
|||
}
|
||||
|
||||
funcMap := template.FuncMap{
|
||||
"urlize": helpers.Urlize,
|
||||
"gt": Gt,
|
||||
"isset": IsSet,
|
||||
"echoParam": ReturnWhenSet,
|
||||
"safeHtml": SafeHtml,
|
||||
"first": First,
|
||||
"highlight": Highlight,
|
||||
"add": func(a, b int) int { return a + b },
|
||||
"sub": func(a, b int) int { return a - b },
|
||||
"div": func(a, b int) int { return a / b },
|
||||
"mod": func(a, b int) int { return a % b },
|
||||
"mul": func(a, b int) int { return a * b },
|
||||
"modBool": func(a, b int) bool { return a%b == 0 },
|
||||
"lower": func(a string) string { return strings.ToLower(a) },
|
||||
"upper": func(a string) string { return strings.ToUpper(a) },
|
||||
"title": func(a string) string { return strings.Title(a) },
|
||||
"urlize": helpers.Urlize,
|
||||
"sanitizeurl": helpers.SanitizeUrl,
|
||||
"gt": Gt,
|
||||
"isset": IsSet,
|
||||
"echoParam": ReturnWhenSet,
|
||||
"safeHtml": SafeHtml,
|
||||
"first": First,
|
||||
"highlight": Highlight,
|
||||
"add": func(a, b int) int { return a + b },
|
||||
"sub": func(a, b int) int { return a - b },
|
||||
"div": func(a, b int) int { return a / b },
|
||||
"mod": func(a, b int) int { return a % b },
|
||||
"mul": func(a, b int) int { return a * b },
|
||||
"modBool": func(a, b int) bool { return a%b == 0 },
|
||||
"lower": func(a string) string { return strings.ToLower(a) },
|
||||
"upper": func(a string) string { return strings.ToUpper(a) },
|
||||
"title": func(a string) string { return strings.Title(a) },
|
||||
}
|
||||
|
||||
templates.Funcs(funcMap)
|
||||
|
|
Loading…
Reference in a new issue