Documentation ¶
Overview ¶
Package resources contains Resource related types.
Index ¶
- Constants
- func AssignMetadata(metadata []map[string]any, resources ...resource.Resource) error
- func Copy(r resource.Resource, targetPath string) resource.Resource
- func NewErrorResource(err resource.ResourceError) resource.Resource
- func ResourceCacheKey(filename string) string
- func ResourceKeyContainsAny(key string, partitions []string) bool
- func ResourceKeyPartitions(filename string) []string
- type ImageCache
- type PostBuildAssets
- type ResourceCache
- func (c *ResourceCache) Contains(key string) bool
- func (c *ResourceCache) DeleteMatches(match func(string) bool)
- func (c *ResourceCache) DeleteMatchesRe(re *regexp.Regexp)
- func (c *ResourceCache) DeletePartitions(partitions ...string)
- func (c *ResourceCache) GetOrCreate(key string, f func() (resource.Resource, error)) (resource.Resource, error)
- func (c *ResourceCache) GetOrCreateResources(key string, f func() (resource.Resources, error)) (resource.Resources, error)
- type ResourceSourceDescriptor
- type ResourceTransformation
- type ResourceTransformationCtx
- type ResourceTransformer
- type Spec
- func (r *Spec) BuildConfig() config.BuildConfig
- func (r *Spec) CacheStats() string
- func (r *Spec) ClearCaches()
- func (r *Spec) DeleteBySubstring(s string)
- func (r *Spec) MediaTypes() media.Types
- func (r *Spec) New(fd ResourceSourceDescriptor) (resource.Resource, error)
- func (r *Spec) OutputFormats() output.Formats
- func (spec *Spec) PostProcess(r resource.Resource) (postpub.PostPublishedResource, error)
- func (s *Spec) String() string
- type SpecCommon
- type Transformer
Constants ¶
const ( CACHE_CLEAR_ALL = "clear_all" CACHE_OTHER = "other" )
Variables ¶
This section is empty.
Functions ¶
func AssignMetadata ¶
AssignMetadata assigns the given metadata to those resources that supports updates and matching by wildcard given in `src` using `filepath.Match` with lower cased values. This assignment is additive, but the most specific match needs to be first. The `name` and `title` metadata field support shell-matched collection it got a match in. See https://golang.org/pkg/path/#Match
func NewErrorResource ¶
func NewErrorResource(err resource.ResourceError) resource.Resource
NewErrorResource wraps err in a Resource where all but the Err method will panic.
func ResourceCacheKey ¶
ResourceCacheKey converts the filename into the format used in the resource cache.
func ResourceKeyContainsAny ¶
ResourceKeyContainsAny returns whether the key is a member of any of the given partitions.
This is used for resource cache invalidation.
func ResourceKeyPartitions ¶
ResourceKeyPartitions resolves a ordered slice of partitions that is used to do resource cache invalidations.
We use the first directory path element and the extension, so:
a/b.json => "a", "json" b.json => "json"
For some of the extensions we will also map to closely related types, e.g. "scss" will also return "sass".
Types ¶
type ImageCache ¶
type ImageCache struct {
// contains filtered or unexported fields
}
ImageCache is a cache for image resources. The backing caches are shared between all sites.
func (ImageCache) WithPathSpec ¶
func (c ImageCache) WithPathSpec(ps *helpers.PathSpec) *ImageCache
WithPathSpec returns a copy of the ImageCache with the given PathSpec set.
type PostBuildAssets ¶
type PostBuildAssets struct { PostProcessResources map[string]postpub.PostPublishedResource JSConfigBuilder *jsconfig.Builder // contains filtered or unexported fields }
type ResourceCache ¶
func (*ResourceCache) Contains ¶
func (c *ResourceCache) Contains(key string) bool
func (*ResourceCache) DeleteMatches ¶
func (c *ResourceCache) DeleteMatches(match func(string) bool)
func (*ResourceCache) DeleteMatchesRe ¶
func (c *ResourceCache) DeleteMatchesRe(re *regexp.Regexp)
func (*ResourceCache) DeletePartitions ¶
func (c *ResourceCache) DeletePartitions(partitions ...string)
func (*ResourceCache) GetOrCreate ¶
func (*ResourceCache) GetOrCreateResources ¶
type ResourceSourceDescriptor ¶
type ResourceSourceDescriptor struct { // TargetPaths is a callback to fetch paths's relative to its owner. TargetPaths func() page.TargetPaths // Need one of these to load the resource content. SourceFile source.File OpenReadSeekCloser resource.OpenReadSeekCloser FileInfo os.FileInfo // If OpenReadSeekerCloser is not set, we use this to open the file. SourceFilename string Fs afero.Fs Data map[string]any // Set when its known up front, else it's resolved from the target filename. MediaType media.Type // The relative target filename without any language code. RelTargetFilename string // Any base paths prepended to the target path. This will also typically be the // language code, but setting it here means that it should not have any effect on // the permalink. // This may be several values. In multihost mode we may publish the same resources to // multiple targets. TargetBasePaths []string // Delay publishing until either Permalink or RelPermalink is called. Maybe never. LazyPublish bool }
func (ResourceSourceDescriptor) Filename ¶
func (r ResourceSourceDescriptor) Filename() string
type ResourceTransformation ¶
type ResourceTransformation interface { Key() internal.ResourceTransformationKey Transform(ctx *ResourceTransformationCtx) error }
ResourceTransformation is the interface that a resource transformation step needs to implement.
func NewFeatureNotAvailableTransformer ¶
func NewFeatureNotAvailableTransformer(key string, elements ...any) ResourceTransformation
type ResourceTransformationCtx ¶
type ResourceTransformationCtx struct { // The context that started the transformation. Ctx context.Context // The content to transform. From io.Reader // The target of content transformation. // The current implementation requires that r is written to w // even if no transformation is performed. To io.Writer // This is the relative path to the original source. Unix styled slashes. SourcePath string // This is the relative target path to the resource. Unix styled slashes. InPath string // The relative target path to the transformed resource. Unix styled slashes. OutPath string // The input media type InMediaType media.Type // The media type of the transformed resource. OutMediaType media.Type // Data data can be set on the transformed Resource. Not that this need // to be simple types, as it needs to be serialized to JSON and back. Data map[string]any // This is used to publish additional artifacts, e.g. source maps. // We may improve this. OpenResourcePublisher func(relTargetPath string) (io.WriteCloser, error) }
func (*ResourceTransformationCtx) AddOutPathIdentifier ¶
func (ctx *ResourceTransformationCtx) AddOutPathIdentifier(identifier string)
AddOutPathIdentifier transforming InPath to OutPath adding an identifier, eg '.min' before any extension.
func (*ResourceTransformationCtx) PublishSourceMap ¶
func (ctx *ResourceTransformationCtx) PublishSourceMap(content string) error
PublishSourceMap writes the content to the target folder of the main resource with the ".map" extension added.
func (*ResourceTransformationCtx) ReplaceOutPathExtension ¶
func (ctx *ResourceTransformationCtx) ReplaceOutPathExtension(newExt string)
ReplaceOutPathExtension transforming InPath to OutPath replacing the file extension, e.g. ".scss"
type ResourceTransformer ¶
type ResourceTransformer interface { resource.Resource Transformer }
type Spec ¶
type Spec struct { *helpers.PathSpec Logger loggers.Logger ErrorSender herrors.ErrorSender TextTemplates tpl.TemplateParseFinder Permalinks page.PermalinkExpander ImageCache *ImageCache ExecHelper *hexec.Exec *SpecCommon // contains filtered or unexported fields }
func NewSpec ¶
func NewSpec( s *helpers.PathSpec, common *SpecCommon, imageCache *ImageCache, incr identity.Incrementer, logger loggers.Logger, errorHandler herrors.ErrorSender, execHelper *hexec.Exec) (*Spec, error)
func (*Spec) BuildConfig ¶
func (r *Spec) BuildConfig() config.BuildConfig
func (*Spec) CacheStats ¶
func (*Spec) ClearCaches ¶
func (r *Spec) ClearCaches()
func (*Spec) DeleteBySubstring ¶
func (*Spec) MediaTypes ¶
func (*Spec) OutputFormats ¶
func (*Spec) PostProcess ¶
PostProcess wraps the given Resource for later processing.
type SpecCommon ¶
type SpecCommon struct { ResourceCache *ResourceCache FileCaches filecache.Caches // Assets used after the build is done. // This is shared between all sites. *PostBuildAssets // contains filtered or unexported fields }
The parts of Spec that's comoon for all sites.
type Transformer ¶
type Transformer interface { Transform(...ResourceTransformation) (ResourceTransformer, error) TransformWithContext(context.Context, ...ResourceTransformation) (ResourceTransformer, error) }
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
Package images provides template functions for manipulating images.
|
Package images provides template functions for manipulating images. |
Package page contains the core interfaces and types for the Page resource, a core component in Hugo.
|
Package page contains the core interfaces and types for the Page resource, a core component in Hugo. |
Package resource contains Resource related types.
|
Package resource contains Resource related types. |
resource_factories
|
|
bundler
Package bundler contains functions for concatenation etc.
|
Package bundler contains functions for concatenation etc. |
create
Package create contains functions for to create Resource objects.
|
Package create contains functions for to create Resource objects. |
resource_transformers
|
|
templates
Package templates contains functions for template processing of Resource objects.
|
Package templates contains functions for template processing of Resource objects. |
tocss/dartsass
Package dartsass integrates with the Dass Sass Embedded protocol to transpile SCSS/SASS.
|
Package dartsass integrates with the Dass Sass Embedded protocol to transpile SCSS/SASS. |