mirror of
https://github.com/gohugoio/hugo.git
synced 2025-08-29 22:29:56 +02:00
tpl: Sync go_templates for Go 1.18
Using Go tag go1.18 4aa1efed4853ea067d665a952eee77c52faac774 Updates #9677
This commit is contained in:
@@ -32,7 +32,7 @@ import (
|
||||
// To allow URLs containing other schemes to bypass this filter, developers must
|
||||
// explicitly indicate that such a URL is expected and safe by encapsulating it
|
||||
// in a template.URL value.
|
||||
func urlFilter(args ...interface{}) string {
|
||||
func urlFilter(args ...any) string {
|
||||
s, t := stringify(args...)
|
||||
if t == contentTypeURL {
|
||||
return s
|
||||
@@ -46,9 +46,7 @@ func urlFilter(args ...interface{}) string {
|
||||
// isSafeURL is true if s is a relative URL or if URL has a protocol in
|
||||
// (http, https, mailto).
|
||||
func isSafeURL(s string) bool {
|
||||
if i := strings.IndexRune(s, ':'); i >= 0 && !strings.ContainsRune(s[:i], '/') {
|
||||
|
||||
protocol := s[:i]
|
||||
if protocol, _, ok := strings.Cut(s, ":"); ok && !strings.Contains(protocol, "/") {
|
||||
if !strings.EqualFold(protocol, "http") && !strings.EqualFold(protocol, "https") && !strings.EqualFold(protocol, "mailto") {
|
||||
return false
|
||||
}
|
||||
@@ -58,7 +56,7 @@ func isSafeURL(s string) bool {
|
||||
|
||||
// urlEscaper produces an output that can be embedded in a URL query.
|
||||
// The output can be embedded in an HTML attribute without further escaping.
|
||||
func urlEscaper(args ...interface{}) string {
|
||||
func urlEscaper(args ...any) string {
|
||||
return urlProcessor(false, args...)
|
||||
}
|
||||
|
||||
@@ -67,13 +65,13 @@ func urlEscaper(args ...interface{}) string {
|
||||
// The normalizer does not encode all HTML specials. Specifically, it does not
|
||||
// encode '&' so correct embedding in an HTML attribute requires escaping of
|
||||
// '&' to '&'.
|
||||
func urlNormalizer(args ...interface{}) string {
|
||||
func urlNormalizer(args ...any) string {
|
||||
return urlProcessor(true, args...)
|
||||
}
|
||||
|
||||
// urlProcessor normalizes (when norm is true) or escapes its input to produce
|
||||
// a valid hierarchical or opaque URL part.
|
||||
func urlProcessor(norm bool, args ...interface{}) string {
|
||||
func urlProcessor(norm bool, args ...any) string {
|
||||
s, t := stringify(args...)
|
||||
if t == contentTypeURL {
|
||||
norm = true
|
||||
@@ -143,7 +141,7 @@ func processURLOnto(s string, norm bool, b *bytes.Buffer) bool {
|
||||
|
||||
// Filters and normalizes srcset values which are comma separated
|
||||
// URLs followed by metadata.
|
||||
func srcsetFilterAndEscaper(args ...interface{}) string {
|
||||
func srcsetFilterAndEscaper(args ...any) string {
|
||||
s, t := stringify(args...)
|
||||
switch t {
|
||||
case contentTypeSrcset:
|
||||
|
Reference in New Issue
Block a user