Documentation ¶
Index ¶
- func GetParam(r Resource, key string) interface{}
- func GetParamToLower(r Resource, key string) interface{}
- func IsExpired(d Dated) bool
- func IsFuture(d Dated) bool
- func IsZeroDates(d Dated) bool
- func Param(r ResourceParamsProvider, fallback map[string]interface{}, key interface{}) (interface{}, error)
- type Cloner
- type ContentProvider
- type ContentResource
- type Dated
- type Dates
- type Identifier
- type LanguageProvider
- type LengthProvider
- type OpenReadSeekCloser
- type ReadSeekCloserResource
- type Resource
- type ResourceDataProvider
- type ResourceLinksProvider
- type ResourceMetaProvider
- type ResourceParamsProvider
- type ResourceTypesProvider
- type Resources
- type ResourcesConverter
- type ResourcesLanguageMerger
- type Source
- type TranslationKeyProvider
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 IsZeroDates ¶ added in v0.55.0
IsZeroDates returns true if all of the dates are zero.
func Param ¶ added in v0.55.0
func Param(r ResourceParamsProvider, fallback map[string]interface{}, key interface{}) (interface{}, error)
Types ¶
type Cloner ¶
Cloner is an internal template and not meant for use in the templates. It may change without notice.
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() (interface{}, 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() time.Time Lastmod() time.Time PublishDate() time.Time ExpiryDate() time.Time }
Dated wraps a "dated resource". These are the 4 dates that makes the date logic in Hugo.
type Dates ¶ added in v0.55.0
type Dates struct { FDate time.Time FLastmod time.Time FPublishDate time.Time FExpiryDate time.Time }
Dates holds the 4 Hugo dates.
func (Dates) ExpiryDate ¶ added in v0.55.0
func (Dates) PublishDate ¶ added in v0.55.0
func (*Dates) UpdateDateAndLastmodIfAfter ¶ added in v0.55.0
type LanguageProvider ¶ added in v0.55.0
LanguageProvider is a Resource in a language.
func NewLanguageProvider ¶ added in v0.55.0
func NewLanguageProvider(lang *langs.Language) LanguageProvider
type LengthProvider ¶ added in v0.55.0
type LengthProvider interface {
Len() int
}
LengthProvider is a Resource that provides a length (typically the length of the content).
type OpenReadSeekCloser ¶
type OpenReadSeekCloser func() (hugio.ReadSeekCloser, error)
OpenReadSeekCloser allows setting some other way (than reading from a filesystem) to open or create a ReadSeekCloser.
type ReadSeekCloserResource ¶
type ReadSeekCloserResource interface { MediaType() media.Type ReadSeekCloser() (hugio.ReadSeekCloser, error) }
ReadSeekCloserResource is a Resource that supports loading its content.
type Resource ¶
type Resource interface { ResourceTypesProvider ResourceLinksProvider ResourceMetaProvider ResourceParamsProvider ResourceDataProvider }
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.Digest for fingerprinted resources. Data() interface{} }
type ResourceLinksProvider ¶ added in v0.55.0
type ResourceMetaProvider ¶ added in v0.55.0
type ResourceMetaProvider 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. 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 ResourceParamsProvider interface { // Params set in front matter for this resource. Params() map[string]interface{} }
type ResourceTypesProvider ¶ added in v0.55.0
type ResourceTypesProvider interface { // MediaType is this resource's MIME type. MediaType() media.Type // 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 }
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) 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.
func (Resources) MergeByLanguageInterface ¶
MergeByLanguageInterface is the generic version of MergeByLanguage. It is here just so it can be called from the tpl package.
type ResourcesConverter ¶
type ResourcesConverter interface {
ToResources() Resources
}
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. MergeByLanguageInterface(other interface{}) (interface{}, 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 TranslationKeyProvider ¶ added in v0.55.0
type TranslationKeyProvider interface {
TranslationKey() string
}
TranslationKeyProvider connects translations of the same Resource.