mirror of
https://github.com/gohugoio/hugo.git
synced 2024-11-21 20:46:30 -05:00
tpl: Use xxHash instead of MD5 to hash the deferred templates
Motivation is performance. These templates are typically very small, so the win is minor, I guess.
This commit is contained in:
parent
f0ed91caba
commit
4d8bfa7f1c
2 changed files with 10 additions and 1 deletions
|
@ -27,6 +27,7 @@ import (
|
||||||
"unicode"
|
"unicode"
|
||||||
"unicode/utf8"
|
"unicode/utf8"
|
||||||
|
|
||||||
|
"github.com/cespare/xxhash/v2"
|
||||||
"github.com/spf13/afero"
|
"github.com/spf13/afero"
|
||||||
|
|
||||||
"github.com/jdkato/prose/transform"
|
"github.com/jdkato/prose/transform"
|
||||||
|
@ -257,6 +258,14 @@ func SliceToLower(s []string) []string {
|
||||||
return l
|
return l
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// XxHashString takes a string and returns its xxHash hash.
|
||||||
|
func XxHashString(f string) string {
|
||||||
|
h := xxhash.New()
|
||||||
|
h.WriteString(f)
|
||||||
|
hash := h.Sum(nil)
|
||||||
|
return hex.EncodeToString(hash)
|
||||||
|
}
|
||||||
|
|
||||||
// MD5String takes a string and returns its MD5 hash.
|
// MD5String takes a string and returns its MD5 hash.
|
||||||
func MD5String(f string) string {
|
func MD5String(f string) string {
|
||||||
h := md5.New()
|
h := md5.New()
|
||||||
|
|
|
@ -254,7 +254,7 @@ func (c *templateContext) handleDefer(withNode *parse.WithNode) {
|
||||||
c.err = errors.New("resources.PostProcess cannot be used in a deferred template")
|
c.err = errors.New("resources.PostProcess cannot be used in a deferred template")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
innerHash := helpers.MD5String(s)
|
innerHash := helpers.XxHashString(s)
|
||||||
deferredID := tpl.HugoDeferredTemplatePrefix + innerHash
|
deferredID := tpl.HugoDeferredTemplatePrefix + innerHash
|
||||||
|
|
||||||
c.deferNodes[deferredID] = inner
|
c.deferNodes[deferredID] = inner
|
||||||
|
|
Loading…
Reference in a new issue