Documentation ¶
Overview ¶
Package resource contains Resource related types.
Index ¶
- func GetParam(r Resource, key string) any
- func GetParamToLower(r Resource, key string) any
- func IsExpired(d Dated) bool
- func IsFuture(d Dated) bool
- func IsStaleAny(os ...any) bool
- func IsZeroDates(d Dated) bool
- func MarkStale(os ...any)
- func Param(r ResourceParamsProvider, fallback maps.Params, key any) (any, error)
- type Cloner
- type ContentProvider
- type ContentResource
- type Dated
- type ErrProvider
- type Identifier
- type LanguageProvider
- type LengthProvider
- type MediaTypeProvider
- type NameOriginalProvider
- type OriginProvider
- type ReadSeekCloserResource
- type Resource
- type ResourceDataProvider
- type ResourceError
- type ResourceFinder
- type ResourceLinksProvider
- type ResourceMetaProvider
- type ResourceNameTitleProvider
- type ResourceParamsProvider
- type ResourceTypeProvider
- type ResourceTypesProvider
- type Resources
- func (r Resources) ByType(typ any) Resources
- func (r Resources) Get(name any) Resource
- func (r Resources) GetMatch(pattern any) Resource
- func (r Resources) Match(pattern any) Resources
- func (r Resources) MergeByLanguage(r2 Resources) Resources
- func (r Resources) MergeByLanguageInterface(in any) (any, error)
- type ResourcesConverter
- type ResourcesLanguageMerger
- type Source
- type StaleInfo
- type StaleMarker
- type Staler
- type TranslationKeyProvider
- type UnmarshableResource
- type Weight0Provider
- type WeightProvider
- type WithResourceMetaProvider
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func GetParam ¶ added in v0.55.0
GetParam will return the param with the given key from the Resource, nil if not found.
func GetParamToLower ¶ added in v0.55.0
GetParamToLower is the same as GetParam but it will lower case any string result, including string slices.
func IsStaleAny ¶ added in v0.123.0
IsStaleAny reports whether any of the os is marked as stale.
func IsZeroDates ¶ added in v0.55.0
IsZeroDates returns true if all of the dates are zero.
Types ¶
type ContentProvider ¶ added in v0.55.0
type ContentProvider interface { // Content returns this resource's content. It will be equivalent to reading the content // that RelPermalink points to in the published folder. // The return type will be contextual, and should be what you would expect: // * Page: template.HTML // * JSON: String // * Etc. Content(context.Context) (any, error) }
ContentProvider provides Content. This should be used with care, as it will read the file content into memory, but it should be cached as effectively as possible by the implementation.
type ContentResource ¶
type ContentResource interface { MediaType() media.Type ContentProvider }
ContentResource represents a Resource that provides a way to get to its content. Most Resource types in Hugo implements this interface, including Page.
type Dated ¶ added in v0.55.0
type Dated interface { // Date returns the date of the resource. Date() time.Time // Lastmod returns the last modification date of the resource. Lastmod() time.Time // PublishDate returns the publish date of the resource. PublishDate() time.Time // ExpiryDate returns the expiration date of the resource. ExpiryDate() time.Time }
Dated wraps a "dated resource". These are the 4 dates that makes the date logic in Hugo.
type ErrProvider ¶ added in v0.92.0
type ErrProvider interface { // Err returns an error if this resource is in an error state. // This will currently only be set for resources obtained from resources.GetRemote. Err() ResourceError }
ErrProvider provides an Err.
type LanguageProvider ¶ added in v0.55.0
LanguageProvider is a Resource in a language.
type LengthProvider ¶ added in v0.55.0
LengthProvider is a Resource that provides a length (typically the length of the content).
type MediaTypeProvider ¶ added in v0.69.0
type NameOriginalProvider ¶ added in v0.123.0
type NameOriginalProvider interface { // NameOriginal is the original name of this resource. // Note that for bundled content resources with language code in the filename, this will // be the name with the language code. // For internal use (for now). NameOriginal() string }
type OriginProvider ¶ added in v0.69.0
OriginProvider provides the original Resource if this is wrapped. This is an internal Hugo interface and not meant for use in the templates.
type ReadSeekCloserResource ¶
type ReadSeekCloserResource interface { MediaType() media.Type hugio.ReadSeekCloserProvider }
ReadSeekCloserResource is a Resource that supports loading its content.
type Resource ¶
type Resource interface { ResourceTypeProvider MediaTypeProvider ResourceLinksProvider ResourceNameTitleProvider ResourceParamsProvider ResourceDataProvider ErrProvider }
Resource represents a linkable resource, i.e. a content page, image etc.
type ResourceDataProvider ¶ added in v0.55.0
type ResourceDataProvider interface { // Resource specific data set by Hugo. // One example would be .Data.Integrity for fingerprinted resources. Data() any }
type ResourceError ¶ added in v0.96.0
type ResourceError interface { error ResourceDataProvider }
ResourceError is the error return from .Err in Resource in error situations.
func NewResourceError ¶ added in v0.96.0
func NewResourceError(err error, data any) ResourceError
NewResourceError creates a new ResourceError.
type ResourceFinder ¶ added in v0.97.0
type ResourceFinder interface { // Get locates the Resource with the given name in the current context (e.g. in .Page.Resources). // // It returns nil if no Resource could found, panics if name is invalid. Get(name any) Resource // GetMatch finds the first Resource matching the given pattern, or nil if none found. // // See Match for a more complete explanation about the rules used. // // It returns nil if no Resource could found, panics if pattern is invalid. GetMatch(pattern any) Resource // Match gets all resources matching the given base path prefix, e.g // "*.png" will match all png files. The "*" does not match path delimiters (/), // so if you organize your resources in sub-folders, you need to be explicit about it, e.g.: // "images/*.png". To match any PNG image anywhere in the bundle you can do "**.png", and // to match all PNG images below the images folder, use "images/**.jpg". // // The matching is case insensitive. // // Match matches by using a relative pathwith Unix style slashes (/) and no // leading slash, e.g. "images/logo.png". // // See https://github.com/gobwas/glob for the full rules set. // // See Match for a more complete explanation about the rules used. // // It returns nil if no Resources could found, panics if pattern is invalid. Match(pattern any) Resources // ByType returns resources of a given resource type (e.g. "image"). // It returns nil if no Resources could found, panics if typ is invalid. ByType(typ any) Resources }
ResourceFinder provides methods to find Resources. Note that GetRemote (as found in resources.GetRemote) is not covered by this interface, as this is only available as a global template function.
type ResourceLinksProvider ¶ added in v0.55.0
type ResourceMetaProvider ¶ added in v0.55.0
type ResourceMetaProvider interface { ResourceNameTitleProvider ResourceParamsProvider }
ResourceMetaProvider provides metadata about a resource.
type ResourceNameTitleProvider ¶ added in v0.123.0
type ResourceNameTitleProvider interface { // Name is the logical name of this resource. This can be set in the front matter // metadata for this resource. If not set, Hugo will assign a value. // This will in most cases be the base filename. // So, for the image "/some/path/sunset.jpg" this will be "sunset.jpg". // The value returned by this method will be used in the GetByPrefix and ByPrefix methods // on Resources. // Note that for bundled content resources with language code in the filename, this will // be the name without the language code. Name() string // Title returns the title if set in front matter. For content pages, this will be the expected value. Title() string }
type ResourceParamsProvider ¶ added in v0.55.0
type ResourceTypeProvider ¶ added in v0.69.0
type ResourceTypeProvider interface { // ResourceType is the resource type. For most file types, this is the main // part of the MIME type, e.g. "image", "application", "text" etc. // For content pages, this value is "page". ResourceType() string }
type ResourceTypesProvider ¶ added in v0.55.0
type ResourceTypesProvider interface { ResourceTypeProvider MediaTypeProvider }
func NewResourceTypesProvider ¶ added in v0.55.0
func NewResourceTypesProvider(mediaType media.Type, resourceType string) ResourceTypesProvider
type Resources ¶
type Resources []Resource
Resources represents a slice of resources, which can be a mix of different types. I.e. both pages and images etc.
func (Resources) Get ¶ added in v0.97.0
Get locates the name given in Resources. The search is case insensitive.
func (Resources) GetMatch ¶
GetMatch finds the first Resource matching the given pattern, or nil if none found. See Match for a more complete explanation about the rules used.
func (Resources) Match ¶
Match gets all resources matching the given base filename prefix, e.g "*.png" will match all png files. The "*" does not match path delimiters (/), so if you organize your resources in sub-folders, you need to be explicit about it, e.g.: "images/*.png". To match any PNG image anywhere in the bundle you can do "**.png", and to match all PNG images below the images folder, use "images/**.jpg". The matching is case insensitive. Match matches by using the value of Resource.Name, which, by default, is a filename with path relative to the bundle root with Unix style slashes (/) and no leading slash, e.g. "images/logo.png". See https://github.com/gobwas/glob for the full rules set.
func (Resources) MergeByLanguage ¶
MergeByLanguage adds missing translations in r1 from r2.
type ResourcesConverter ¶
type ResourcesConverter interface { // For internal use. ToResources() Resources }
var _ resource.ResourceFinder = (*Namespace)(nil) ResourcesConverter converts a given slice of Resource objects to Resources.
type ResourcesLanguageMerger ¶
type ResourcesLanguageMerger interface { MergeByLanguage(other Resources) Resources // Needed for integration with the tpl package. // For internal use. MergeByLanguageInterface(other any) (any, error) }
ResourcesLanguageMerger describes an interface for merging resources from a different language.
type Source ¶
type Source interface {
Publish() error
}
Source is an internal template and not meant for use in the templates. It may change without notice.
type StaleInfo ¶ added in v0.123.0
type StaleInfo interface {
IsStale() bool
}
StaleInfo tells if a resource is marked as stale.
type StaleMarker ¶ added in v0.123.0
type StaleMarker interface {
MarkStale()
}
StaleMarker marks a Resource as stale.
type Staler ¶ added in v0.123.0
type Staler interface { StaleMarker StaleInfo }
Staler controls stale state of a Resource. A stale resource should be discarded.
type TranslationKeyProvider ¶ added in v0.55.0
type TranslationKeyProvider interface {
TranslationKey() string
}
TranslationKeyProvider connects translations of the same Resource.
type UnmarshableResource ¶ added in v0.74.0
type UnmarshableResource interface { ReadSeekCloserResource Identifier }
UnmarshableResource represents a Resource that can be unmarshaled to some other format.
type Weight0Provider ¶ added in v0.123.0
type Weight0Provider interface {
Weight0() int
}
Weight0Provider provides a weight that's considered before the WeightProvider in sorting. This allows the weight set on a given term to win.
type WeightProvider ¶ added in v0.123.0
type WeightProvider interface {
Weight() int
}
WeightProvider provides a weight.
type WithResourceMetaProvider ¶ added in v0.123.0
type WithResourceMetaProvider interface { // WithResourceMeta creates a new Resource with the given metadata. // For internal use. WithResourceMeta(ResourceMetaProvider) Resource }