pagemeta

package
v0.123.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 23, 2024 License: Apache-2.0 Imports: 11 Imported by: 3

Documentation

Index

Constants

View Source
const (
	Never       = "never"
	Always      = "always"
	ListLocally = "local"
	Link        = "link"
)

Variables

This section is empty.

Functions

This section is empty.

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

type Dates struct {
	Date        time.Time
	Lastmod     time.Time
	PublishDate time.Time
	ExpiryDate  time.Time
}

func (Dates) IsAllDatesZero added in v0.123.0

func (d Dates) IsAllDatesZero() bool

func (Dates) IsDateOrLastModAfter added in v0.123.0

func (d Dates) IsDateOrLastModAfter(in Dates) bool

func (*Dates) UpdateDateAndLastmodIfAfter added in v0.123.0

func (d *Dates) UpdateDateAndLastmodIfAfter(in Dates)

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 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

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 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 holds the four core dates for this page.
	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.
	Markup         string   // The markup used in the content file.
	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.
	URL            string   // The URL to the rendered page, e.g. /sect/mypage.html.
	Lang           string   // The language code for this page. This is usually derived from the module mount or filename.
	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     // 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.

	// These build options are set in the front matter,
	// but not passed on to .Params.
	Resources []map[string]any
	Cascade   map[page.PageMatcher]maps.Params // Only relevant for branch nodes.
	Sitemap   config.SitemapConfig
	Build     BuildConfig

	// User defined params.
	Params maps.Params
}

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.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL