diff options
Diffstat (limited to 'hugolib/page__common.go')
-rw-r--r-- | hugolib/page__common.go | 112 |
1 files changed, 112 insertions, 0 deletions
diff --git a/hugolib/page__common.go b/hugolib/page__common.go new file mode 100644 index 000000000..5bd7223cc --- /dev/null +++ b/hugolib/page__common.go @@ -0,0 +1,112 @@ +// Copyright 2019 The Hugo Authors. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package hugolib + +import ( + "sync" + + "github.com/bep/gitmap" + "github.com/gohugoio/hugo/common/maps" + "github.com/gohugoio/hugo/compare" + "github.com/gohugoio/hugo/lazy" + "github.com/gohugoio/hugo/navigation" + "github.com/gohugoio/hugo/output" + "github.com/gohugoio/hugo/resources/page" + "github.com/gohugoio/hugo/resources/resource" +) + +type pageCommon struct { + s *Site + m *pageMeta + + // Laziliy initialized dependencies. + init *lazy.Init + + // All of these represents the common parts of a page.Page + maps.Scratcher + navigation.PageMenusProvider + page.AuthorProvider + page.PageRenderProvider + page.AlternativeOutputFormatsProvider + page.ChildCareProvider + page.FileProvider + page.GetPageProvider + page.GitInfoProvider + page.InSectionPositioner + page.OutputFormatsProvider + page.PageMetaProvider + page.Positioner + page.RawContentProvider + page.RelatedKeywordsProvider + page.RefProvider + page.ShortcodeInfoProvider + page.SitesProvider + page.DeprecatedWarningPageMethods + page.TranslationsProvider + page.TreeProvider + resource.LanguageProvider + resource.ResourceDataProvider + resource.ResourceMetaProvider + resource.ResourceParamsProvider + resource.ResourceTypesProvider + resource.TranslationKeyProvider + compare.Eqer + + // Describes how paths and URLs for this page and its descendants + // should look like. + targetPathDescriptor page.TargetPathDescriptor + + layoutDescriptor output.LayoutDescriptor + layoutDescriptorInit sync.Once + + // The parsed page content. + pageContent + + // Set if feature enabled and this is in a Git repo. + gitInfo *gitmap.GitInfo + + // Positional navigation + posNextPrev *nextPrev + posNextPrevSection *nextPrev + + // Menus + pageMenus *pageMenus + + // Internal use + page.InternalDependencies + + // The children. Regular pages will have none. + pages page.Pages + pagesInit sync.Once + + // Any bundled resources + resources resource.Resources + resourcesInit sync.Once + + translations page.Pages + allTranslations page.Pages + + // Calculated an cached translation mapping key + translationKey string + translationKeyInit sync.Once + + // Will only be set for sections and regular pages. + parent *pageState + + // Will only be set for section pages and the home page. + subSections page.Pages + + // Set in fast render mode to force render a given page. + forceRender bool +} |