mirror of
https://github.com/gohugoio/hugo.git
synced 2024-12-23 00:02:56 +00:00
dartsass: Fix nilpointer on Close when Dart Sass isn't installed
Fixes #13076
This commit is contained in:
parent
8fcd3c1487
commit
8d017a60fb
2 changed files with 10 additions and 7 deletions
|
@ -70,7 +70,7 @@ hello:
|
||||||
other: "Bonjour"
|
other: "Bonjour"
|
||||||
-- layouts/index.html --
|
-- layouts/index.html --
|
||||||
{{ $options := dict "inlineImports" true }}
|
{{ $options := dict "inlineImports" true }}
|
||||||
{{ $styles := resources.Get "css/styles.css" | resources.PostCSS $options }}
|
{{ $styles := resources.Get "css/styles.css" | css.PostCSS $options }}
|
||||||
Styles RelPermalink: {{ $styles.RelPermalink }}
|
Styles RelPermalink: {{ $styles.RelPermalink }}
|
||||||
{{ $cssContent := $styles.Content }}
|
{{ $cssContent := $styles.Content }}
|
||||||
Styles Content: Len: {{ len $styles.Content }}|
|
Styles Content: Len: {{ len $styles.Content }}|
|
||||||
|
|
|
@ -44,7 +44,7 @@ const dartSassStdinPrefix = "hugostdin:"
|
||||||
|
|
||||||
func New(fs *filesystems.SourceFilesystem, rs *resources.Spec) (*Client, error) {
|
func New(fs *filesystems.SourceFilesystem, rs *resources.Spec) (*Client, error) {
|
||||||
if !Supports() {
|
if !Supports() {
|
||||||
return &Client{dartSassNotAvailable: true}, nil
|
return &Client{}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
if hugo.DartSassBinaryName == "" {
|
if hugo.DartSassBinaryName == "" {
|
||||||
|
@ -89,22 +89,25 @@ func New(fs *filesystems.SourceFilesystem, rs *resources.Spec) (*Client, error)
|
||||||
}
|
}
|
||||||
|
|
||||||
type Client struct {
|
type Client struct {
|
||||||
dartSassNotAvailable bool
|
rs *resources.Spec
|
||||||
rs *resources.Spec
|
sfs *filesystems.SourceFilesystem
|
||||||
sfs *filesystems.SourceFilesystem
|
workFs afero.Fs
|
||||||
workFs afero.Fs
|
|
||||||
|
|
||||||
|
// This may be nil if Dart Sass is not available.
|
||||||
transpiler *godartsass.Transpiler
|
transpiler *godartsass.Transpiler
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Client) ToCSS(res resources.ResourceTransformer, args map[string]any) (resource.Resource, error) {
|
func (c *Client) ToCSS(res resources.ResourceTransformer, args map[string]any) (resource.Resource, error) {
|
||||||
if c.dartSassNotAvailable {
|
if c.transpiler == nil {
|
||||||
return res.Transform(resources.NewFeatureNotAvailableTransformer(transformationName, args))
|
return res.Transform(resources.NewFeatureNotAvailableTransformer(transformationName, args))
|
||||||
}
|
}
|
||||||
return res.Transform(&transform{c: c, optsm: args})
|
return res.Transform(&transform{c: c, optsm: args})
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Client) Close() error {
|
func (c *Client) Close() error {
|
||||||
|
if c.transpiler == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
return c.transpiler.Close()
|
return c.transpiler.Close()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue