Documentation ¶
Overview ¶
Package page contains the core interfaces and types for the Page resource, a core component in Hugo.
Package page contains the core interfaces and types for the Page resource, a core component in Hugo.
Package page contains the core interfaces and types for the Page resource, a core component in Hugo.
Package page contains the core interfaces and types for the Page resource, a core component in Hugo.
Index ¶
- Constants
- Variables
- func Clear() error
- func DecodeCascade(in any) (map[PageMatcher]maps.Params, error)
- func DecodePageMatcher(m any, v *PageMatcher) error
- func GetKind(s string) string
- func MarshalPageToJSON(p Page) ([]byte, error)
- func NewZeroFile(log loggers.Logger) source.File
- func ResolvePagerSize(cfg config.Provider, options ...any) (int, error)
- func SortByDefault(pages Pages)
- func SortByLanguage(pages Pages)
- type AlternativeOutputFormatsProvider
- type Author
- type AuthorList
- type AuthorProvider
- type AuthorSocial
- type ChildCareProvider
- type ContentProvider
- type ContentRenderer
- type Data
- type DeprecatedErrorPageMethods
- type DeprecatedWarningPageMethods
- type FileProvider
- type GetPageProvider
- type GitInfoProvider
- type InSectionPositioner
- type InternalDependencies
- type LazyContentProvider
- func (lcp *LazyContentProvider) Content() (any, error)
- func (lcp *LazyContentProvider) FuzzyWordCount() int
- func (lcp *LazyContentProvider) Len() int
- func (lcp *LazyContentProvider) Plain() string
- func (lcp *LazyContentProvider) PlainWords() []string
- func (lcp *LazyContentProvider) ReadingTime() int
- func (lcp *LazyContentProvider) Render(layout ...string) (template.HTML, error)
- func (lcp *LazyContentProvider) RenderContent(content []byte, renderTOC bool) (converter.Result, error)
- func (lcp *LazyContentProvider) RenderString(args ...any) (template.HTML, error)
- func (lcp *LazyContentProvider) Reset()
- func (lcp *LazyContentProvider) Summary() template.HTML
- func (lcp *LazyContentProvider) TableOfContents() template.HTML
- func (lcp *LazyContentProvider) Truncated() bool
- func (lcp *LazyContentProvider) WordCount() int
- type OutputFormat
- type OutputFormatContentProvider
- type OutputFormatPageContentProvider
- type OutputFormats
- type OutputFormatsProvider
- type Page
- type PageGenealogist
- type PageGroup
- type PageMatcher
- type PageMetaProvider
- type PageRenderProvider
- type PageWithoutContent
- type Pager
- func (p *Pager) First() *Pager
- func (p *Pager) HasNext() bool
- func (p *Pager) HasPrev() bool
- func (p *Pager) Last() *Pager
- func (p *Pager) Next() *Pager
- func (p *Pager) NumberOfElements() int
- func (p *Pager) PageGroups() PagesGroup
- func (p *Pager) PageNumber() int
- func (p *Pager) Pages() Pages
- func (p *Pager) Prev() *Pager
- func (p Pager) String() string
- func (p *Pager) URL() template.HTML
- type Pages
- func (p Pages) ByDate() Pages
- func (p Pages) ByExpiryDate() Pages
- func (p Pages) ByLanguage() Pages
- func (p Pages) ByLastmod() Pages
- func (p Pages) ByLength() Pages
- func (p Pages) ByLinkTitle() Pages
- func (p Pages) ByParam(paramsKey any) Pages
- func (p Pages) ByPublishDate() Pages
- func (p Pages) ByTitle() Pages
- func (p Pages) ByWeight() Pages
- func (p Pages) Group(key any, in any) (any, error)
- func (p Pages) GroupBy(key string, order ...string) (PagesGroup, error)
- func (p Pages) GroupByDate(format string, order ...string) (PagesGroup, error)
- func (p Pages) GroupByExpiryDate(format string, order ...string) (PagesGroup, error)
- func (p Pages) GroupByLastmod(format string, order ...string) (PagesGroup, error)
- func (p Pages) GroupByParam(key string, order ...string) (PagesGroup, error)
- func (p Pages) GroupByParamDate(key string, format string, order ...string) (PagesGroup, error)
- func (p Pages) GroupByPublishDate(format string, order ...string) (PagesGroup, error)
- func (p Pages) Len() int
- func (p Pages) Limit(n int) Pages
- func (p1 Pages) MergeByLanguage(p2 Pages) Pages
- func (p1 Pages) MergeByLanguageInterface(in any) (any, error)
- func (p Pages) Next(cur Page) Page
- func (p Pages) Prev(cur Page) Page
- func (pages Pages) ProbablyEq(other any) bool
- func (p Pages) Related(doc related.Document) (Pages, error)
- func (p Pages) RelatedIndices(doc related.Document, indices ...any) (Pages, error)
- func (p Pages) RelatedTo(args ...types.KeyValues) (Pages, error)
- func (p Pages) Reverse() Pages
- func (ps Pages) String() string
- func (pages Pages) ToResources() resource.Resources
- type PagesFactory
- type PagesGroup
- type Paginator
- type PaginatorProvider
- type PermalinkExpander
- type Positioner
- type RawContentProvider
- type RefProvider
- type RelatedDocsHandler
- type RelatedKeywordsProvider
- type ShortcodeInfoProvider
- type Site
- type Sites
- type SitesProvider
- type TableOfContentsProvider
- type TargetPathDescriptor
- type TargetPaths
- type TranslationsProvider
- type TreeProvider
- type WeightedPage
- type WeightedPages
- func (wp WeightedPages) Count() int
- func (wp WeightedPages) Len() int
- func (wp WeightedPages) Less(i, j int) bool
- func (wp WeightedPages) Next(cur Page) Page
- func (p WeightedPages) Page() Page
- func (wp WeightedPages) Pages() Pages
- func (wp WeightedPages) Prev(cur Page) Page
- func (wp WeightedPages) Sort()
- func (wp WeightedPages) Swap(i, j int)
Constants ¶
const ( KindPage = "page" KindHome = "home" KindSection = "section" // Note tha before Hugo 0.73 these were confusingly named // taxonomy (now: term) // taxonomyTerm (now: taxonomy) KindTaxonomy = "taxonomy" KindTerm = "term" )
Variables ¶
var ( NopPage Page = new(nopPage) NopContentRenderer ContentRenderer = new(nopContentRenderer) NopCPageContentRenderer = struct { OutputFormatPageContentProvider ContentRenderer }{ NopPage, NopContentRenderer, } NilPage *nopPage )
var ( // DefaultPageSort is the default sort func for pages in Hugo: // Order by Ordinal, Weight, Date, LinkTitle and then full file path. DefaultPageSort = func(p1, p2 Page) bool { o1, o2 := getOrdinals(p1, p2) if o1 != o2 && o1 != -1 && o2 != -1 { return o1 < o2 } if p1.Weight() == p2.Weight() { if p1.Date().Unix() == p2.Date().Unix() { c := collatorStringCompare(func(p Page) string { return p.LinkTitle() }, p1, p2) if c == 0 { if p1.File().IsZero() || p2.File().IsZero() { return p1.File().IsZero() } return compare.LessStrings(p1.File().Filename(), p2.File().Filename()) } return c < 0 } return p1.Date().Unix() > p2.Date().Unix() } if p2.Weight() == 0 { return true } if p1.Weight() == 0 { return false } return p1.Weight() < p2.Weight() } )
Functions ¶
func DecodeCascade ¶ added in v0.86.0
func DecodeCascade(in any) (map[PageMatcher]maps.Params, error)
DecodeCascade decodes in which could be either a map or a slice of maps.
func DecodePageMatcher ¶ added in v0.76.0
func DecodePageMatcher(m any, v *PageMatcher) error
DecodePageMatcher decodes m into v.
func MarshalPageToJSON ¶
Types ¶
type AlternativeOutputFormatsProvider ¶
type AlternativeOutputFormatsProvider interface { // AlternativeOutputFormats gives the alternative output formats for the // current output. // Note that we use the term "alternative" and not "alternate" here, as it // does not necessarily replace the other format, it is an alternative representation. AlternativeOutputFormats() OutputFormats }
AlternativeOutputFormatsProvider provides alternative output formats for a Page.
type Author ¶
type Author struct { GivenName string FamilyName string DisplayName string Thumbnail string Image string ShortBio string LongBio string Email string Social AuthorSocial }
Author contains details about the author of a page.
type AuthorList ¶
AuthorList is a list of all authors and their metadata.
type AuthorProvider ¶
type AuthorProvider interface { // Deprecated. Author() Author // Deprecated. Authors() AuthorList }
AuthorProvider provides author information.
type AuthorSocial ¶
AuthorSocial is a place to put social details per author. These are the standard keys that themes will expect to have available, but can be expanded to any others on a per site basis - website - github - facebook - twitter - pinterest - instagram - youtube - linkedin - skype
type ChildCareProvider ¶
type ChildCareProvider interface { Pages() Pages // RegularPages returns a list of pages of kind 'Page'. // In Hugo 0.57 we changed the Pages method so it returns all page // kinds, even sections. If you want the old behaviour, you can // use RegularPages. RegularPages() Pages // RegularPagesRecursive returns all regular pages below the current // section. RegularPagesRecursive() Pages Resources() resource.Resources }
ChildCareProvider provides accessors to child resources.
type ContentProvider ¶
type ContentProvider interface { Content() (any, error) // Plain returns the Page Content stripped of HTML markup. Plain() string // PlainWords returns a string slice from splitting Plain using https://pkg.go.dev/strings#Fields. PlainWords() []string // Summary returns a generated summary of the content. // The breakpoint can be set manually by inserting a summary separator in the source file. Summary() template.HTML // Truncated returns whether the Summary is truncated or not. Truncated() bool // FuzzyWordCount returns the approximate number of words in the content. FuzzyWordCount() int // WordCount returns the number of words in the content. WordCount() int // ReadingTime returns the reading time based on the length of plain text. ReadingTime() int // Len returns the length of the content. Len() int }
ContentProvider provides the content related values for a Page.
type ContentRenderer ¶ added in v0.105.0
type ContentRenderer interface {
RenderContent(content []byte, renderTOC bool) (converter.Result, error)
}
ContentRenderer provides the content rendering methods for some content.
type Data ¶
Data represents the .Data element in a Page in Hugo. We make this a type so we can do lazy loading of .Data.Pages
type DeprecatedErrorPageMethods ¶
type DeprecatedErrorPageMethods any
Move here to trigger ERROR instead of WARNING. TODO(bep) create wrappers and put into the Page once it has some methods.
type DeprecatedWarningPageMethods ¶
type DeprecatedWarningPageMethods any // This was emptied in Hugo 0.93.0.
DeprecatedWarningPageMethods lists deprecated Page methods that will trigger a WARNING if invoked. This was added in Hugo 0.55.
func NewDeprecatedWarningPage ¶
func NewDeprecatedWarningPage(p DeprecatedWarningPageMethods) DeprecatedWarningPageMethods
NewDeprecatedWarningPage adds deprecation warnings to the given implementation.
type FileProvider ¶
FileProvider provides the source file.
type GetPageProvider ¶
type GetPageProvider interface { // GetPage looks up a page for the given ref. // {{ with .GetPage "blog" }}{{ .Title }}{{ end }} // // This will return nil when no page could be found, and will return // an error if the ref is ambiguous. GetPage(ref string) (Page, error) // GetPageWithTemplateInfo is for internal use only. GetPageWithTemplateInfo(info tpl.Info, ref string) (Page, error) }
GetPageProvider provides the GetPage method.
type GitInfoProvider ¶
GitInfoProvider provides Git info.
type InSectionPositioner ¶
InSectionPositioner provides section navigation.
type InternalDependencies ¶
type InternalDependencies interface { // GetRelatedDocsHandler is for internal use only. GetRelatedDocsHandler() *RelatedDocsHandler }
InternalDependencies is considered an internal interface.
type LazyContentProvider ¶ added in v0.92.0
type LazyContentProvider struct {
// contains filtered or unexported fields
}
LazyContentProvider initializes itself when read. Each method of the ContentProvider interface initializes a content provider and shares it with other methods.
Used in cases where we cannot guarantee whether the content provider will be needed. Must create via NewLazyContentProvider.
func NewLazyContentProvider ¶ added in v0.92.0
func NewLazyContentProvider(f func() (OutputFormatContentProvider, error)) *LazyContentProvider
NewLazyContentProvider returns a LazyContentProvider initialized with function f. The resulting LazyContentProvider calls f in order to retrieve a ContentProvider
func (*LazyContentProvider) Content ¶ added in v0.92.0
func (lcp *LazyContentProvider) Content() (any, error)
func (*LazyContentProvider) FuzzyWordCount ¶ added in v0.92.0
func (lcp *LazyContentProvider) FuzzyWordCount() int
func (*LazyContentProvider) Len ¶ added in v0.92.0
func (lcp *LazyContentProvider) Len() int
func (*LazyContentProvider) Plain ¶ added in v0.92.0
func (lcp *LazyContentProvider) Plain() string
func (*LazyContentProvider) PlainWords ¶ added in v0.92.0
func (lcp *LazyContentProvider) PlainWords() []string
func (*LazyContentProvider) ReadingTime ¶ added in v0.92.0
func (lcp *LazyContentProvider) ReadingTime() int
func (*LazyContentProvider) Render ¶ added in v0.92.1
func (lcp *LazyContentProvider) Render(layout ...string) (template.HTML, error)
func (*LazyContentProvider) RenderContent ¶ added in v0.105.0
func (*LazyContentProvider) RenderString ¶ added in v0.92.1
func (lcp *LazyContentProvider) RenderString(args ...any) (template.HTML, error)
func (*LazyContentProvider) Reset ¶ added in v0.92.0
func (lcp *LazyContentProvider) Reset()
func (*LazyContentProvider) Summary ¶ added in v0.92.0
func (lcp *LazyContentProvider) Summary() template.HTML
func (*LazyContentProvider) TableOfContents ¶ added in v0.92.1
func (lcp *LazyContentProvider) TableOfContents() template.HTML
func (*LazyContentProvider) Truncated ¶ added in v0.92.0
func (lcp *LazyContentProvider) Truncated() bool
func (*LazyContentProvider) WordCount ¶ added in v0.92.0
func (lcp *LazyContentProvider) WordCount() int
type OutputFormat ¶
type OutputFormat struct { // Rel contains a value that can be used to construct a rel link. // This is value is fetched from the output format definition. // Note that for pages with only one output format, // this method will always return "canonical". // As an example, the AMP output format will, by default, return "amphtml". // // See: // https://www.ampproject.org/docs/guides/deploy/discovery // // Most other output formats will have "alternate" as value for this. Rel string Format output.Format // contains filtered or unexported fields }
OutputFormat links to a representation of a resource.
func NewOutputFormat ¶
func NewOutputFormat(relPermalink, permalink string, isCanonical bool, f output.Format) OutputFormat
func (OutputFormat) MediaType ¶
func (o OutputFormat) MediaType() media.Type
MediaType returns this OutputFormat's MediaType (MIME type).
func (OutputFormat) Name ¶
func (o OutputFormat) Name() string
Name returns this OutputFormat's name, i.e. HTML, AMP, JSON etc.
func (OutputFormat) Permalink ¶
func (o OutputFormat) Permalink() string
Permalink returns the absolute permalink to this output format.
func (OutputFormat) RelPermalink ¶
func (o OutputFormat) RelPermalink() string
RelPermalink returns the relative permalink to this output format.
type OutputFormatContentProvider ¶ added in v0.92.1
type OutputFormatContentProvider interface { OutputFormatPageContentProvider // for internal use. ContentRenderer }
OutputFormatContentProvider represents the method set that is "outputFormat aware" and that we provide lazy initialization for in case they get invoked outside of their normal rendering context, e.g. via .Translations. Note that this set is currently not complete, but should cover the most common use cases. For the others, the implementation will be from the page.NoopPage.
type OutputFormatPageContentProvider ¶ added in v0.105.0
type OutputFormatPageContentProvider interface { ContentProvider TableOfContentsProvider PageRenderProvider }
OutputFormatPageContentProvider holds the exported methods from Page that are "outputFormat aware".
type OutputFormats ¶
type OutputFormats []OutputFormat
OutputFormats holds a list of the relevant output formats for a given page.
func (OutputFormats) Get ¶
func (o OutputFormats) Get(name string) *OutputFormat
Get gets a OutputFormat given its name, i.e. json, html etc. It returns nil if none found.
type OutputFormatsProvider ¶
type OutputFormatsProvider interface {
OutputFormats() OutputFormats
}
OutputFormatsProvider provides the OutputFormats of a Page.
type Page ¶
type Page interface { ContentProvider TableOfContentsProvider PageWithoutContent }
Page is the core interface in Hugo.
type PageGenealogist ¶
type PageGenealogist interface { // Template example: // {{ $related := .RegularPages.Related . }} Related(doc related.Document) (Pages, error) // Template example: // {{ $related := .RegularPages.RelatedIndices . "tags" "date" }} RelatedIndices(doc related.Document, indices ...any) (Pages, error) // Template example: // {{ $related := .RegularPages.RelatedTo ( keyVals "tags" "hugo", "rocks") ( keyVals "date" .Date ) }} RelatedTo(args ...types.KeyValues) (Pages, error) }
A PageGenealogist finds related pages in a page collection. This interface is implemented by Pages and PageGroup, which makes it available as `{{ .RegularRelated . }}` etc.
type PageGroup ¶
type PageGroup struct { // The key, typically a year or similar. Key any // The Pages in this group. Pages }
PageGroup represents a group of pages, grouped by the key. The key is typically a year or similar.
func (PageGroup) ProbablyEq ¶
ProbablyEq wraps compare.ProbablyEqer For internal use.
type PageMatcher ¶ added in v0.76.0
type PageMatcher struct { // A Glob pattern matching the content path below /content. // Expects Unix-styled slashes. // Note that this is the virtual path, so it starts at the mount root // with a leading "/". Path string // A Glob pattern matching the Page's Kind(s), e.g. "{home,section}" Kind string // A Glob pattern matching the Page's language, e.g. "{en,sv}". Lang string // A Glob pattern matching the Page's Environment, e.g. "{production,development}". Environment string }
A PageMatcher can be used to match a Page with Glob patterns. Note that the pattern matching is case insensitive.
func (PageMatcher) Matches ¶ added in v0.76.0
func (m PageMatcher) Matches(p Page) bool
Matches returns whether p matches this matcher.
type PageMetaProvider ¶
type PageMetaProvider interface { // The 4 page dates resource.Dated // Aliases forms the base for redirects generation. Aliases() []string // BundleType returns the bundle type: `leaf`, `branch` or an empty string. BundleType() files.ContentClass // A configured description. Description() string // Whether this is a draft. Will only be true if run with the --buildDrafts (-D) flag. Draft() bool // IsHome returns whether this is the home page. IsHome() bool // Configured keywords. Keywords() []string // The Page Kind. One of page, home, section, taxonomy, term. Kind() string // The configured layout to use to render this page. Typically set in front matter. Layout() string // The title used for links. LinkTitle() string // IsNode returns whether this is an item of one of the list types in Hugo, // i.e. not a regular content IsNode() bool // IsPage returns whether this is a regular content IsPage() bool // Param looks for a param in Page and then in Site config. Param(key any) (any, error) // Path gets the relative path, including file name and extension if relevant, // to the source of this Page. It will be relative to any content root. Path() string // This is just a temporary bridge method. Use Path in templates. // Pathc is for internal usage only. Pathc() string // The slug, typically defined in front matter. Slug() string // This page's language code. Will be the same as the site's. Lang() string // IsSection returns whether this is a section IsSection() bool // Section returns the first path element below the content root. Section() string // Returns a slice of sections (directories if it's a file) to this // Page. SectionsEntries() []string // SectionsPath is SectionsEntries joined with a /. SectionsPath() string // Sitemap returns the sitemap configuration for this page. Sitemap() config.Sitemap // Type is a discriminator used to select layouts etc. It is typically set // in front matter, but will fall back to the root section. Type() string // The configured weight, used as the first sort value in the default // page sort if non-zero. Weight() int }
PageMetaProvider provides page metadata, typically provided via front matter.
type PageRenderProvider ¶
type PageRenderProvider interface { Render(layout ...string) (template.HTML, error) RenderString(args ...any) (template.HTML, error) }
PageRenderProvider provides a way for a Page to render content.
type PageWithoutContent ¶
type PageWithoutContent interface { RawContentProvider resource.Resource PageMetaProvider resource.LanguageProvider // For pages backed by a file. FileProvider GitInfoProvider // Output formats OutputFormatsProvider AlternativeOutputFormatsProvider // Tree navigation ChildCareProvider TreeProvider // Horizontal navigation InSectionPositioner PageRenderProvider PaginatorProvider Positioner navigation.PageMenusProvider // TODO(bep) AuthorProvider // Page lookups/refs GetPageProvider RefProvider resource.TranslationKeyProvider TranslationsProvider SitesProvider // Helper methods ShortcodeInfoProvider compare.Eqer // Scratch returns a Scratch that can be used to store temporary state. // Note that this Scratch gets reset on server rebuilds. See Store() for a variant that survives. maps.Scratcher // Store returns a Scratch that can be used to store temporary state. // In contrast to Scratch(), this Scratch is not reset on server rebuilds. Store() *maps.Scratch RelatedKeywordsProvider // GetTerms gets the terms of a given taxonomy, // e.g. GetTerms("categories") GetTerms(taxonomy string) Pages // Used in change/dependency tracking. identity.Provider DeprecatedWarningPageMethods }
PageWithoutContent is the Page without any of the content methods.
type Pager ¶
type Pager struct { *Paginator // contains filtered or unexported fields }
Pager represents one of the elements in a paginator. The number, starting on 1, represents its place.
func (*Pager) NumberOfElements ¶
NumberOfElements gets the number of elements on this page.
func (*Pager) PageGroups ¶
func (p *Pager) PageGroups() PagesGroup
PageGroups return Page groups for this page. Note: If this return non-empty result, then Pages() will return empty.
func (*Pager) PageNumber ¶
PageNumber returns the current page's number in the pager sequence.
type Pages ¶
type Pages []Page
Pages is a slice of Page objects. This is the most common list type in Hugo.
func (Pages) ByDate ¶
ByDate sorts the Pages by date and returns a copy.
Adjacent invocations on the same receiver will return a cached result.
This may safely be executed in parallel.
func (Pages) ByExpiryDate ¶
ByExpiryDate sorts the Pages by publish date and returns a copy.
Adjacent invocations on the same receiver will return a cached result.
This may safely be executed in parallel.
func (Pages) ByLanguage ¶
ByLanguage sorts the Pages by the language's Weight.
Adjacent invocations on the same receiver will return a cached result.
This may safely be executed in parallel.
func (Pages) ByLastmod ¶
ByLastmod sorts the Pages by the last modification date and returns a copy.
Adjacent invocations on the same receiver will return a cached result.
This may safely be executed in parallel.
func (Pages) ByLength ¶
ByLength sorts the Pages by length and returns a copy.
Adjacent invocations on the same receiver will return a cached result.
This may safely be executed in parallel.
func (Pages) ByLinkTitle ¶
ByLinkTitle sorts the Pages by link title and returns a copy.
Adjacent invocations on the same receiver will return a cached result.
This may safely be executed in parallel.
func (Pages) ByParam ¶
ByParam sorts the pages according to the given page Params key.
Adjacent invocations on the same receiver with the same paramsKey will return a cached result.
This may safely be executed in parallel.
func (Pages) ByPublishDate ¶
ByPublishDate sorts the Pages by publish date and returns a copy.
Adjacent invocations on the same receiver will return a cached result.
This may safely be executed in parallel.
func (Pages) ByTitle ¶
ByTitle sorts the Pages by title and returns a copy.
Adjacent invocations on the same receiver will return a cached result.
This may safely be executed in parallel.
func (Pages) ByWeight ¶
ByWeight sorts the Pages by weight and returns a copy.
Adjacent invocations on the same receiver will return a cached result.
This may safely be executed in parallel.
func (Pages) GroupBy ¶
func (p Pages) GroupBy(key string, order ...string) (PagesGroup, error)
GroupBy groups by the value in the given field or method name and with the given order. Valid values for order is asc, desc, rev and reverse.
func (Pages) GroupByDate ¶
func (p Pages) GroupByDate(format string, order ...string) (PagesGroup, error)
GroupByDate groups by the given page's Date value in the given format and with the given order. Valid values for order is asc, desc, rev and reverse. For valid format strings, see https://golang.org/pkg/time/#Time.Format
func (Pages) GroupByExpiryDate ¶
func (p Pages) GroupByExpiryDate(format string, order ...string) (PagesGroup, error)
GroupByExpiryDate groups by the given page's ExpireDate value in the given format and with the given order. Valid values for order is asc, desc, rev and reverse. For valid format strings, see https://golang.org/pkg/time/#Time.Format
func (Pages) GroupByLastmod ¶ added in v0.73.0
func (p Pages) GroupByLastmod(format string, order ...string) (PagesGroup, error)
GroupByLastmod groups by the given page's Lastmod value in the given format and with the given order. Valid values for order is asc, desc, rev and reverse. For valid format strings, see https://golang.org/pkg/time/#Time.Format
func (Pages) GroupByParam ¶
func (p Pages) GroupByParam(key string, order ...string) (PagesGroup, error)
GroupByParam groups by the given page parameter key's value and with the given order. Valid values for order is asc, desc, rev and reverse.
func (Pages) GroupByParamDate ¶
GroupByParamDate groups by a date set as a param on the page in the given format and with the given order. Valid values for order is asc, desc, rev and reverse. For valid format strings, see https://golang.org/pkg/time/#Time.Format
func (Pages) GroupByPublishDate ¶
func (p Pages) GroupByPublishDate(format string, order ...string) (PagesGroup, error)
GroupByPublishDate groups by the given page's PublishDate value in the given format and with the given order. Valid values for order is asc, desc, rev and reverse. For valid format strings, see https://golang.org/pkg/time/#Time.Format
func (Pages) MergeByLanguage ¶
MergeByLanguage supplies missing translations in p1 with values from p2. The result is sorted by the default sort order for pages.
func (Pages) MergeByLanguageInterface ¶
MergeByLanguageInterface is the generic version of MergeByLanguage. It is here just so it can be called from the tpl package.
func (Pages) ProbablyEq ¶
ProbablyEq wraps compare.ProbablyEqer For internal use.
func (Pages) Related ¶
Related searches all the configured indices with the search keywords from the supplied document.
func (Pages) RelatedIndices ¶
RelatedIndices searches the given indices with the search keywords from the supplied document.
func (Pages) Reverse ¶
Reverse reverses the order in Pages and returns a copy.
Adjacent invocations on the same receiver will return a cached result.
This may safely be executed in parallel.
func (Pages) ToResources ¶
ToResources wraps resource.ResourcesConverter. For internal use.
type PagesFactory ¶
type PagesFactory func() Pages
PagesFactory somehow creates some Pages. We do a lot of lazy Pages initialization in Hugo, so we need a type.
type PagesGroup ¶
type PagesGroup []PageGroup
PagesGroup represents a list of page groups. This is what you get when doing page grouping in the templates.
func ToPagesGroup ¶
func ToPagesGroup(seq any) (PagesGroup, error)
ToPagesGroup tries to convert seq into a PagesGroup.
func (PagesGroup) Len ¶
func (psg PagesGroup) Len() int
Len returns the number of pages in the page group.
func (PagesGroup) ProbablyEq ¶
func (psg PagesGroup) ProbablyEq(other any) bool
ProbablyEq wraps compare.ProbablyEqer
func (PagesGroup) Reverse ¶
func (p PagesGroup) Reverse() PagesGroup
Reverse reverses the order of this list of page groups.
type Paginator ¶
type Paginator struct {
// contains filtered or unexported fields
}
func (*Paginator) Pagers ¶
func (p *Paginator) Pagers() pagers
Pagers returns a list of pagers that can be used to build a pagination menu.
func (*Paginator) TotalNumberOfElements ¶
TotalNumberOfElements returns the number of elements on all pages in this paginator.
func (*Paginator) TotalPages ¶
TotalPages returns the number of pages in the paginator.
type PaginatorProvider ¶
type PaginatorProvider interface { Paginator(options ...any) (*Pager, error) Paginate(seq any, options ...any) (*Pager, error) }
PaginatorProvider provides two ways to create a page paginator.
type PermalinkExpander ¶
type PermalinkExpander struct {
// contains filtered or unexported fields
}
PermalinkExpander holds permalin mappings per section.
func NewPermalinkExpander ¶
func NewPermalinkExpander(ps *helpers.PathSpec) (PermalinkExpander, error)
NewPermalinkExpander creates a new PermalinkExpander configured by the given PathSpec.
type Positioner ¶
type Positioner interface { Next() Page Prev() Page // Deprecated: Use Prev. Will be removed in Hugo 0.57 PrevPage() Page // Deprecated: Use Next. Will be removed in Hugo 0.57 NextPage() Page }
Positioner provides next/prev navigation.
type RawContentProvider ¶
type RawContentProvider interface {
RawContent() string
}
RawContentProvider provides the raw, unprocessed content of the page.
type RefProvider ¶
type RefProvider interface { Ref(argsm map[string]any) (string, error) // RefFrom is for internal use only. RefFrom(argsm map[string]any, source any) (string, error) RelRef(argsm map[string]any) (string, error) // RefFrom is for internal use only. RelRefFrom(argsm map[string]any, source any) (string, error) }
RefProvider provides the methods needed to create reflinks to pages.
type RelatedDocsHandler ¶
type RelatedDocsHandler struct {
// contains filtered or unexported fields
}
func NewRelatedDocsHandler ¶
func NewRelatedDocsHandler(cfg related.Config) *RelatedDocsHandler
func (*RelatedDocsHandler) Clone ¶
func (s *RelatedDocsHandler) Clone() *RelatedDocsHandler
type RelatedKeywordsProvider ¶
type RelatedKeywordsProvider interface { // Make it indexable as a related.Document // RelatedKeywords is meant for internal usage only. RelatedKeywords(cfg related.IndexConfig) ([]related.Keyword, error) }
RelatedKeywordsProvider allows a Page to be indexed.
type ShortcodeInfoProvider ¶
type ShortcodeInfoProvider interface { // HasShortcode return whether the page has a shortcode with the given name. // This method is mainly motivated with the Hugo Docs site's need for a list // of pages with the `todo` shortcode in it. HasShortcode(name string) bool }
ShortcodeInfoProvider provides info about the shortcodes in a Page.
type Site ¶
type Site interface { // Returns the Language configured for this Site. Language() *langs.Language // Returns all the regular Pages in this Site. RegularPages() Pages // Returns all Pages in this Site. Pages() Pages // A shortcut to the home page. Home() Page // Returns true if we're running in a server. IsServer() bool // Returns the server port. ServerPort() int // Returns the configured title for this Site. Title() string // Returns all Sites for all languages. Sites() Sites // Returns Site currently rendering. Current() Site // Returns a struct with some information about the build. Hugo() hugo.Info // Returns the BaseURL for this Site. BaseURL() template.URL // Retuns a taxonomy map. Taxonomies() any // Returns the last modification date of the content. LastChange() time.Time // Returns the Menus for this site. Menus() navigation.Menus // Returns the Params configured for this site. Params() maps.Params // Returns a map of all the data inside /data. Data() map[string]any }
Site represents a site in the build. This is currently a very narrow interface, but the actual implementation will be richer, see hugolib.SiteInfo.
func NewDummyHugoSite ¶ added in v0.56.0
NewDummyHugoSite creates a new minimal test site.
type SitesProvider ¶
SitesProvider provide accessors to get sites.
type TableOfContentsProvider ¶
TableOfContentsProvider provides the table of contents for a Page.
type TargetPathDescriptor ¶
type TargetPathDescriptor struct { PathSpec *helpers.PathSpec Type output.Format Kind string Sections []string // For regular content pages this is either // 1) the Slug, if set, // 2) the file base name (TranslationBaseName). BaseName string // Source directory. Dir string // Typically a language prefix added to file paths. PrefixFilePath string // Typically a language prefix added to links. PrefixLink string // If in multihost mode etc., every link/path needs to be prefixed, even // if set in URL. ForcePrefix bool // URL from front matter if set. Will override any Slug etc. URL string // Used to create paginator links. Addends string // The expanded permalink if defined for the section, ready to use. ExpandedPermalink string // Some types cannot have uglyURLs, even if globally enabled, RSS being one example. UglyURLs bool }
TargetPathDescriptor describes how a file path for a given resource should look like on the file system. The same descriptor is then later used to create both the permalinks and the relative links, paginator URLs etc.
The big motivating behind this is to have only one source of truth for URLs, and by that also get rid of most of the fragile string parsing/encoding etc.
type TargetPaths ¶
type TargetPaths struct { // Where to store the file on disk relative to the publish dir. OS slashes. TargetFilename string // The directory to write sub-resources of the above. SubResourceBaseTarget string // The base for creating links to sub-resources of the above. SubResourceBaseLink string // The relative permalink to this resources. Unix slashes. Link string }
TODO(bep) move this type.
func CreateTargetPaths ¶
func CreateTargetPaths(d TargetPathDescriptor) (tp TargetPaths)
func (TargetPaths) PermalinkForOutputFormat ¶
func (TargetPaths) RelPermalink ¶
func (p TargetPaths) RelPermalink(s *helpers.PathSpec) string
type TranslationsProvider ¶
type TranslationsProvider interface { // IsTranslated returns whether this content file is translated to // other language(s). IsTranslated() bool // AllTranslations returns all translations, including the current Page. AllTranslations() Pages // Translations returns the translations excluding the current Page. Translations() Pages }
TranslationsProvider provides access to any translations.
type TreeProvider ¶
type TreeProvider interface { // IsAncestor returns whether the current page is an ancestor of the given // Note that this method is not relevant for taxonomy lists and taxonomy terms pages. IsAncestor(other any) (bool, error) // CurrentSection returns the page's current section or the page itself if home or a section. // Note that this will return nil for pages that is not regular, home or section pages. CurrentSection() Page // IsDescendant returns whether the current page is a descendant of the given // Note that this method is not relevant for taxonomy lists and taxonomy terms pages. IsDescendant(other any) (bool, error) // FirstSection returns the section on level 1 below home, e.g. "/docs". // For the home page, this will return itself. FirstSection() Page // InSection returns whether the given page is in the current section. // Note that this will always return false for pages that are // not either regular, home or section pages. InSection(other any) (bool, error) // Parent returns a section's parent section or a page's section. // To get a section's subsections, see Page's Sections method. Parent() Page // Ancestors returns the ancestors of each page Ancestors() Pages // Sections returns this section's subsections, if any. // Note that for non-sections, this method will always return an empty list. Sections() Pages // Page returns a reference to the Page itself, kept here mostly // for legacy reasons. Page() Page }
TreeProvider provides section tree navigation.
type WeightedPage ¶
A WeightedPage is a Page with a weight.
func NewWeightedPage ¶
func NewWeightedPage(weight int, p Page, owner Page) WeightedPage
func (WeightedPage) Slice ¶
func (p WeightedPage) Slice(in any) (any, error)
Slice is for internal use. for the template functions. See collections.Slice.
func (WeightedPage) String ¶
func (w WeightedPage) String() string
type WeightedPages ¶
type WeightedPages []WeightedPage
WeightedPages is a list of Pages with their corresponding (and relative) weight [{Weight: 30, Page: *1}, {Weight: 40, Page: *2}]
func (WeightedPages) Count ¶
func (wp WeightedPages) Count() int
Count returns the number of pages in this weighted page set.
func (WeightedPages) Len ¶
func (wp WeightedPages) Len() int
func (WeightedPages) Less ¶
func (wp WeightedPages) Less(i, j int) bool
func (WeightedPages) Next ¶
func (wp WeightedPages) Next(cur Page) Page
Next returns the next Page relative to the given Page in this weighted page set.
func (WeightedPages) Page ¶
func (p WeightedPages) Page() Page
Page will return the Page (of Kind taxonomyList) that represents this set of pages. This method will panic if p is empty, as that should never happen.
func (WeightedPages) Pages ¶
func (wp WeightedPages) Pages() Pages
Pages returns the Pages in this weighted page set.
func (WeightedPages) Prev ¶
func (wp WeightedPages) Prev(cur Page) Page
Prev returns the previous Page relative to the given Page in this weighted page set.
func (WeightedPages) Sort ¶
func (wp WeightedPages) Sort()
Sort stable sorts this weighted page set.
func (WeightedPages) Swap ¶
func (wp WeightedPages) Swap(i, j int)
Source Files ¶
- page.go
- page_author.go
- page_data.go
- page_kinds.go
- page_lazy_contentprovider.go
- page_marshaljson.autogen.go
- page_matcher.go
- page_nop.go
- page_outputformat.go
- page_paths.go
- page_wrappers.autogen.go
- pagegroup.go
- pages.go
- pages_cache.go
- pages_language_merge.go
- pages_prev_next.go
- pages_related.go
- pages_sort.go
- pages_sort_search.go
- pagination.go
- permalinks.go
- site.go
- weighted.go
- zero_file.autogen.go