pagemeta

package
v0.126.1 Latest Latest
Warning

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

Go to latest
Published: May 15, 2024 License: Apache-2.0 Imports: 21 Imported by: 3

Documentation

Index

Constants

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

Variables

View Source
var DefaultBuildConfig = BuildConfig{
	List:             Always,
	Render:           Always,
	PublishResources: true,
	// contains filtered or unexported fields
}
View Source
var DefaultPageConfig = PageConfig{
	Build: DefaultBuildConfig,
}

Functions

func MarkupToMediaType added in v0.126.0

func MarkupToMediaType(s string, mediaTypes media.Types) media.Type

MarkupToMediaType converts a markup string to a media type.

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 DatesStrings added in v0.126.0

type DatesStrings struct {
	Date        string `json:"date"`
	Lastmod     string `json:"lastMod"`
	PublishDate string `json:"publishDate"`
	ExpiryDate  string `json:"expiryDate"`
}

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 FrontMatterOnlyValues added in v0.126.0

type FrontMatterOnlyValues struct {
	ResourcesMeta []map[string]any
}

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

	// 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 (s Source) IsResourceValue() bool

func (Source) IsZero added in v0.126.0

func (s Source) IsZero() bool

func (Source) ValueAsOpenReadSeekCloser added in v0.126.0

func (s Source) ValueAsOpenReadSeekCloser() hugio.OpenReadSeekCloser

func (Source) ValueAsString added in v0.126.0

func (s Source) ValueAsString() string

Jump to

Keyboard shortcuts

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