deps

package
v0.140.1 Latest Latest
Warning

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

Go to latest
Published: Dec 23, 2024 License: Apache-2.0 Imports: 32 Imported by: 894

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type BuildState added in v0.69.0

type BuildState struct {
	OnSignalRebuild func(ids ...identity.Identity)

	DeferredExecutions *DeferredExecutions

	// Deferred executions grouped by rendering context.
	DeferredExecutionsGroupedByRenderingContext map[tpl.RenderingContext]*DeferredExecutions
	// contains filtered or unexported fields
}

BuildState are state used during a build.

func (*BuildState) AddFilenameWithPostPrefix added in v0.112.0

func (b *BuildState) AddFilenameWithPostPrefix(filename string)

func (*BuildState) GetFilenamesWithPostPrefix added in v0.112.0

func (b *BuildState) GetFilenamesWithPostPrefix() []string

func (*BuildState) Incr added in v0.69.0

func (b *BuildState) Incr() int

func (*BuildState) SignalRebuild added in v0.127.0

func (b *BuildState) SignalRebuild(ids ...identity.Identity)

func (*BuildState) StartStageRender added in v0.128.0

func (b *BuildState) StartStageRender(stage tpl.RenderingContext)

StartStageRender will be called before a stage is rendered.

func (*BuildState) StopStageRender added in v0.128.0

func (b *BuildState) StopStageRender(stage tpl.RenderingContext)

StopStageRender will be called after a stage is rendered.

type DeferredExecutions added in v0.128.0

type DeferredExecutions struct {
	// A set of filenames in /public that
	// contains a post-processing prefix.
	FilenamesWithPostPrefix *maps.Cache[string, bool]

	// Maps a placeholder to a deferred execution.
	Executions *maps.Cache[string, *tpl.DeferredExecution]
}

type Deps

type Deps struct {
	// The logger to use.
	Log loggers.Logger `json:"-"`

	ExecHelper *hexec.Exec

	// The template funcs.
	TmplFuncMap map[string]any

	// The file systems to use.
	Fs *hugofs.Fs `json:"-"`

	// The PathSpec to use
	*helpers.PathSpec `json:"-"`

	// The ContentSpec to use
	*helpers.ContentSpec `json:"-"`

	// The SourceSpec to use
	SourceSpec *source.SourceSpec `json:"-"`

	// The Resource Spec to use
	ResourceSpec *resources.Spec

	// The configuration to use
	Conf config.AllProvider `json:"-"`

	// The memory cache to use.
	MemCache *dynacache.Cache

	// The translation func to use
	Translate func(ctx context.Context, translationID string, templateData any) string `json:"-"`

	// The site building.
	Site page.Site

	TemplateProvider ResourceProvider
	// Used in tests
	OverloadedTemplateFuncs map[string]any

	TranslationProvider ResourceProvider

	Metrics metrics.Provider

	// BuildStartListeners will be notified before a build starts.
	BuildStartListeners *Listeners[any]

	// BuildEndListeners will be notified after a build finishes.
	BuildEndListeners *Listeners[any]

	// OnChangeListeners will be notified when something changes.
	OnChangeListeners *Listeners[identity.Identity]

	// Resources that gets closed when the build is done or the server shuts down.
	BuildClosers *types.Closers

	// This is common/global for all sites.
	BuildState *BuildState

	// Holds RPC dispatchers for Katex etc.
	// TODO(bep) rethink this re. a plugin setup, but this will have to do for now.
	WasmDispatchers *warpc.Dispatchers

	// The JS batcher client.
	JSBatcherClient js.BatcherClient
	// contains filtered or unexported fields
}

Deps holds dependencies used by many. There will be normally only one instance of deps in play at a given time, i.e. one per Site built.

func (Deps) Clone added in v0.112.0

func (d Deps) Clone(s page.Site, conf config.AllProvider) (*Deps, error)

func (*Deps) Close added in v0.80.0

func (d *Deps) Close() error

func (*Deps) Compile added in v0.112.0

func (d *Deps) Compile(prototype *Deps) error

func (*Deps) Init added in v0.112.0

func (d *Deps) Init() error

func (Deps) MkdirTemp added in v0.140.0

func (d Deps) MkdirTemp(pattern string) (string, error)

MkdirTemp returns a temporary directory path that will be cleaned up on exit.

func (Deps) SendError added in v0.54.0

func (e Deps) SendError(err error)

SendError sends the error on a channel to be handled later. This can be used in situations where returning and aborting the current operation isn't practical.

func (*Deps) SetTempl added in v0.112.0

func (d *Deps) SetTempl(t *tpl.TemplateHandlers)

func (Deps) StartErrorCollector added in v0.54.0

func (e Deps) StartErrorCollector() chan error

func (Deps) StopErrorCollector added in v0.112.0

func (e Deps) StopErrorCollector()

func (*Deps) TextTmpl added in v0.45.1

func (d *Deps) TextTmpl() tpl.TemplateParseFinder

func (*Deps) Tmpl

func (d *Deps) Tmpl() tpl.TemplateHandler

type DepsCfg

type DepsCfg struct {
	// The logger to use. Only set in some tests.
	// TODO(bep) get rid of this.
	TestLogger loggers.Logger

	// The logging level to use.
	LogLevel logg.Level

	// Logging output.
	StdErr io.Writer

	// The console output.
	StdOut io.Writer

	// The file systems to use
	Fs *hugofs.Fs

	// The Site in use
	Site page.Site

	Configs *allconfig.Configs

	// Template handling.
	TemplateProvider ResourceProvider

	// i18n handling.
	TranslationProvider ResourceProvider

	// ChangesFromBuild for changes passed back to the server/watch process.
	ChangesFromBuild chan []identity.Identity
}

DepsCfg contains configuration options that can be used to configure Hugo on a global level, i.e. logging etc. Nil values will be given default values.

type Listeners added in v0.45.1

type Listeners[T any] struct {
	sync.Mutex
	// contains filtered or unexported fields
}

Listeners represents an event listener.

func (*Listeners[T]) Add added in v0.45.1

func (b *Listeners[T]) Add(f func(...T) bool)

Add adds a function to a Listeners instance.

func (*Listeners[T]) Notify added in v0.45.1

func (b *Listeners[T]) Notify(vs ...T)

Notify executes all listener functions.

type ResourceProvider

type ResourceProvider interface {
	NewResource(dst *Deps) error
	CloneResource(dst, src *Deps) error
}

ResourceProvider is used to create and refresh, and clone resources needed.

Jump to

Keyboard shortcuts

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