summaryrefslogtreecommitdiffstats
path: root/hugolib/page_collections.go
diff options
context:
space:
mode:
Diffstat (limited to 'hugolib/page_collections.go')
-rw-r--r--hugolib/page_collections.go13
1 files changed, 13 insertions, 0 deletions
diff --git a/hugolib/page_collections.go b/hugolib/page_collections.go
index 1eda67b19..6eae2e479 100644
--- a/hugolib/page_collections.go
+++ b/hugolib/page_collections.go
@@ -151,14 +151,18 @@ func (c *PageCollections) removePageByPathPrefix(path string) {
func (c *PageCollections) removePageByPath(path string) {
if i := c.rawAllPages.findPagePosByFilePath(path); i >= 0 {
+ c.clearResourceCacheForPage(c.rawAllPages[i])
c.rawAllPages = append(c.rawAllPages[:i], c.rawAllPages[i+1:]...)
}
+
}
func (c *PageCollections) removePage(page *Page) {
if i := c.rawAllPages.findPagePos(page); i >= 0 {
+ c.clearResourceCacheForPage(c.rawAllPages[i])
c.rawAllPages = append(c.rawAllPages[:i], c.rawAllPages[i+1:]...)
}
+
}
func (c *PageCollections) findPagesByShortcode(shortcode string) Pages {
@@ -179,3 +183,12 @@ func (c *PageCollections) replacePage(page *Page) {
c.removePage(page)
c.addPage(page)
}
+
+func (c *PageCollections) clearResourceCacheForPage(page *Page) {
+ if len(page.Resources) > 0 {
+ first := page.Resources[0]
+ dir := path.Dir(first.RelPermalink())
+ // This is done to keep the memory usage in check when doing live reloads.
+ page.s.resourceSpec.DeleteCacheByPrefix(dir)
+ }
+}