Documentation ¶
Index ¶
Constants ¶
const ( Never = "never" Always = "always" ListLocally = "local" Link = "link" )
Variables ¶
var DefaultBuildConfig = BuildConfig{ List: Always, Render: Always, PublishResources: true, // contains filtered or unexported fields }
var DefaultPageConfig = PageConfig{ Build: DefaultBuildConfig, }
Functions ¶
Types ¶
type BuildConfig ¶ added in v0.65.0
type BuildConfig struct { // Whether to add it to any of the page collections. // Note that the page can always be found with .Site.GetPage. // Valid values: never, always, local. // Setting it to 'local' means they will be available via the local // page collections, e.g. $section.Pages. // Note: before 0.57.2 this was a bool, so we accept those too. List string // Whether to render it. // Valid values: never, always, link. // The value link means it will not be rendered, but it will get a RelPermalink/Permalink. // Note that before 0.76.0 this was a bool, so we accept those too. Render string // Whether to publish its resources. These will still be published on demand, // but enabling this can be useful if the originals (e.g. images) are // never used. PublishResources bool // contains filtered or unexported fields }
BuildConfig holds configuration options about how to handle a Page in Hugo's build process.
func DecodeBuildConfig ¶ added in v0.65.0
func DecodeBuildConfig(m any) (BuildConfig, error)
func (*BuildConfig) Disable ¶ added in v0.65.0
func (b *BuildConfig) Disable()
Disable sets all options to their off value.
func (BuildConfig) IsZero ¶ added in v0.65.0
func (b BuildConfig) IsZero() bool
type Dates ¶ added in v0.123.0
func (Dates) IsAllDatesZero ¶ added in v0.123.0
func (Dates) IsDateOrLastModAfter ¶ added in v0.123.0
func (*Dates) UpdateDateAndLastmodAndPublishDateIfAfter ¶ added in v0.128.1
type DatesStrings ¶ added in v0.126.0
type FrontMatterDescriptor ¶
type FrontMatterDescriptor struct { // This is the Page's base filename (BaseFilename), e.g. page.md., or // if page is a leaf bundle, the bundle folder name (ContentBaseName). BaseFilename string // The Page's path if the page is backed by a file, else its title. PathOrTitle string // The content file's mod time. ModTime time.Time // May be set from the author date in Git. GitAuthorDate time.Time // The below will be modified. PageConfig *PageConfig // The Location to use to parse dates without time zone info. Location *time.Location }
FrontMatterDescriptor describes how to handle front matter for a given Page. It has pointers to values in the receiving page which gets updated.
type FrontMatterHandler ¶
type FrontMatterHandler struct {
// contains filtered or unexported fields
}
FrontMatterHandler maps front matter into Page fields and .Params. Note that we currently have only extracted the date logic.
func NewFrontmatterHandler ¶
func NewFrontmatterHandler(logger loggers.Logger, frontMatterConfig FrontmatterConfig) (FrontMatterHandler, error)
NewFrontmatterHandler creates a new FrontMatterHandler with the given logger and configuration. If no logger is provided, one will be created.
func (FrontMatterHandler) HandleDates ¶
func (f FrontMatterHandler) HandleDates(d *FrontMatterDescriptor) error
HandleDates updates all the dates given the current configuration and the supplied front matter params. Note that this requires all lower-case keys in the params map.
func (FrontMatterHandler) IsDateKey ¶
func (f FrontMatterHandler) IsDateKey(key string) bool
IsDateKey returns whether the given front matter key is considered a date by the current configuration.
type FrontMatterOnlyValues ¶ added in v0.126.0
FrontMatterOnlyValues holds values that can only be set via front matter.
type FrontmatterConfig ¶ added in v0.112.0
type FrontmatterConfig struct { // Controls how the Date is set from front matter. Date []string // Controls how the Lastmod is set from front matter. Lastmod []string // Controls how the PublishDate is set from front matter. PublishDate []string // Controls how the ExpiryDate is set from front matter. ExpiryDate []string }
func DecodeFrontMatterConfig ¶ added in v0.112.0
func DecodeFrontMatterConfig(cfg config.Provider) (FrontmatterConfig, error)
type PageConfig ¶ added in v0.123.0
type PageConfig struct { Dates Dates `json:"-"` // Dates holds the four core dates for this page. DatesStrings Title string // The title of the page. LinkTitle string // The link title of the page. Type string // The content type of the page. Layout string // The layout to use for to render this page. Weight int // The weight of the page, used in sorting if set to a non-zero value. Kind string // The kind of page, e.g. "page", "section", "home" etc. This is usually derived from the content path. Path string // The canonical path to the page, e.g. /sect/mypage. Note: Leading slash, no trailing slash, no extensions or language identifiers. Lang string // The language code for this page. This is usually derived from the module mount or filename. URL string // The URL to the rendered page, e.g. /sect/mypage.html. Slug string // The slug for this page. Description string // The description for this page. Summary string // The summary for this page. Draft bool // Whether or not the content is a draft. Headless bool `json:"-"` // Whether or not the page should be rendered. IsCJKLanguage bool // Whether or not the content is in a CJK language. TranslationKey string // The translation key for this page. Keywords []string // The keywords for this page. Aliases []string // The aliases for this page. Outputs []string // The output formats to render this page in. If not set, the site's configured output formats for this page kind will be used. FrontMatterOnlyValues `mapstructure:"-" json:"-"` Cascade []map[string]any Sitemap config.SitemapConfig Build BuildConfig Menus []string // User defined params. Params maps.Params // Content holds the content for this page. Content Source // Compiled values. CascadeCompiled map[page.PageMatcher]maps.Params ContentMediaType media.Type `mapstructure:"-" json:"-"` IsFromContentAdapter bool `mapstructure:"-" json:"-"` }
PageConfig configures a Page, typically from front matter. Note that all the top level fields are reserved Hugo keywords. Any custom configuration needs to be set in the Params map.
func (*PageConfig) Compile ¶ added in v0.126.0
func (p *PageConfig) Compile(basePath string, pagesFromData bool, ext string, logger loggers.Logger, mediaTypes media.Types) error
Compile sets up the page configuration after all fields have been set.
func (*PageConfig) Validate ¶ added in v0.126.0
func (p *PageConfig) Validate(pagesFromData bool) error
type ResourceConfig ¶ added in v0.126.0
type ResourceConfig struct { Path string Name string Title string Params maps.Params Content Source // Compiled values. PathInfo *paths.Path `mapstructure:"-" json:"-"` ContentMediaType media.Type }
func (*ResourceConfig) Compile ¶ added in v0.126.0
func (rc *ResourceConfig) Compile(basePath string, pathParser *paths.PathParser, mediaTypes media.Types) error
func (*ResourceConfig) Validate ¶ added in v0.126.0
func (rc *ResourceConfig) Validate() error
type Source ¶ added in v0.126.0
type Source struct { // MediaType is the media type of the content. MediaType string // The markup used in Value. Only used in front matter. Markup string // The content. Value any }
func (Source) IsResourceValue ¶ added in v0.126.0
func (Source) ValueAsOpenReadSeekCloser ¶ added in v0.126.0
func (s Source) ValueAsOpenReadSeekCloser() hugio.OpenReadSeekCloser