shithub: hugo

Download patch

ref: 6cd33f6953671edb13d42dcb15746bd10df3428b
parent: dbe63970e09313dec287816ab070b5c2f5a13b1b
author: Jake Howard <[email protected]>
date: Fri Jul 21 08:10:11 EDT 2017

tpl: Use hash for cache key

Use a hash for the cache key, to fix 'file name too long' errors when retreiving from long urls

Fixes #3690


--- a/tpl/data/cache.go
+++ b/tpl/data/cache.go
@@ -14,8 +14,9 @@
 package data
 
 import (
+	"crypto/md5"
+	"encoding/hex"
 	"errors"
-	"net/url"
 	"sync"
 
 	"github.com/gohugoio/hugo/config"
@@ -27,7 +28,8 @@
 
 // getCacheFileID returns the cache ID for a string.
 func getCacheFileID(cfg config.Provider, id string) string {
-	return cfg.GetString("cacheDir") + url.QueryEscape(id)
+	hash := md5.Sum([]byte(id))
+	return cfg.GetString("cacheDir") + hex.EncodeToString(hash[:])
 }
 
 // getCache returns the content for an ID from the file cache or an error.