diff options
Diffstat (limited to 'hugolib/page_collections.go')
-rw-r--r-- | hugolib/page_collections.go | 13 |
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) + } +} |