Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/gohugoio/hugo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2020-09-07 16:07:10 +0300
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2020-09-07 22:06:44 +0300
commit4055c121847847d8bd6b95a928185daee065091b (patch)
tree6620f51e7e89aa7ff0a9a93361d640ee5b297fea /hugolib/page.go
parent3ba7c92530a80f2f04fe57705ab05c247a6e8437 (diff)
Fix some change detection issues on server reloads
* Fix change detection when .GetPage/site.GetPage is used from shortcode * Fix stale content for GetPage results with short name lookups on server reloads Fixes #7623 Fixes #7624 Fixes #7625
Diffstat (limited to 'hugolib/page.go')
-rw-r--r--hugolib/page.go17
1 files changed, 17 insertions, 0 deletions
diff --git a/hugolib/page.go b/hugolib/page.go
index 28ef1e156..ca93bf18b 100644
--- a/hugolib/page.go
+++ b/hugolib/page.go
@@ -78,6 +78,7 @@ type pageContext interface {
posOffset(offset int) text.Position
wrapError(err error) error
getContentConverter() converter.Converter
+ addDependency(dep identity.Provider)
}
// wrapErr adds some context to the given error if possible.
@@ -93,6 +94,18 @@ type pageSiteAdapter struct {
s *Site
}
+func (pa pageSiteAdapter) GetPageWithTemplateInfo(info tpl.Info, ref string) (page.Page, error) {
+ p, err := pa.GetPage(ref)
+ if p != nil {
+ // Track pages referenced by templates/shortcodes
+ // when in server mode.
+ if im, ok := info.(identity.Manager); ok {
+ im.Add(p)
+ }
+ }
+ return p, err
+}
+
func (pa pageSiteAdapter) GetPage(ref string) (page.Page, error) {
p, err := pa.s.getPageNew(pa.p, ref)
if p == nil {
@@ -127,6 +140,10 @@ func (p *pageState) Eq(other interface{}) bool {
return p == pp
}
+func (p *pageState) GetIdentity() identity.Identity {
+ return identity.NewPathIdentity(files.ComponentFolderContent, filepath.FromSlash(p.Path()))
+}
+
func (p *pageState) GitInfo() *gitmap.GitInfo {
return p.gitInfo
}