strip trailing baseurl slash. Added a new template function "sanitizeurl" which ensures no double slashes. Fixed #221

This commit is contained in:
spf13 2014-04-07 22:02:08 -04:00
parent a6170154cf
commit ad34be9d77
3 changed files with 32 additions and 19 deletions

View file

@ -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 {

View file

@ -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,

View file

@ -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 {
@ -160,6 +161,7 @@ func NewTemplate() Template {
funcMap := template.FuncMap{
"urlize": helpers.Urlize,
"sanitizeurl": helpers.SanitizeUrl,
"gt": Gt,
"isset": IsSet,
"echoParam": ReturnWhenSet,