]> git.maquefel.me Git - brevno-suite/hugo/commitdiff
Fix dart sass import regression
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Tue, 20 Feb 2024 13:46:03 +0000 (14:46 +0100)
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Tue, 20 Feb 2024 16:00:32 +0000 (17:00 +0100)
Fixes #12072

commands/server.go
hugolib/filesystems/basefs.go
hugolib/filesystems/basefs_test.go
hugolib/pagecollections.go
resources/resource_transformers/js/options.go
resources/resource_transformers/tocss/dartsass/transform.go
resources/resource_transformers/tocss/scss/tocss.go

index 78155521f3473d3ba43f670abc8898369f81632b..d08bc5277932c06f5efabbe7aa8b09f6c3652329 100644 (file)
@@ -1087,7 +1087,7 @@ func (s *staticSyncer) syncsStaticEvents(staticEvents []fsnotify.Event) error {
 
                        fromPath := ev.Name
 
-                       relPath, found := sourceFs.MakePathRelative(fromPath)
+                       relPath, found := sourceFs.MakePathRelative(fromPath, true)
 
                        if !found {
                                // Not member of this virtual host.
index b37fb8cb40c543f3252c57df70f4110915b3bc03..25c58d516b9e6b9b31a0efa18a4365913db31f41 100644 (file)
@@ -336,7 +336,7 @@ func (s *SourceFilesystems) ResolvePaths(filename string, checkExists bool) []hu
 // It will return an empty string if the filename is not a member of a static filesystem.
 func (s SourceFilesystems) MakeStaticPathRelative(filename string) string {
        for _, staticFs := range s.Static {
-               rel, _ := staticFs.MakePathRelative(filename)
+               rel, _ := staticFs.MakePathRelative(filename, true)
                if rel != "" {
                        return rel
                }
@@ -345,8 +345,8 @@ func (s SourceFilesystems) MakeStaticPathRelative(filename string) string {
 }
 
 // MakePathRelative creates a relative path from the given filename.
-func (d *SourceFilesystem) MakePathRelative(filename string) (string, bool) {
-       cps, err := d.ReverseLookup(filename)
+func (d *SourceFilesystem) MakePathRelative(filename string, checkExists bool) (string, bool) {
+       cps, err := d.ReverseLookup(filename, checkExists)
        if err != nil {
                panic(err)
        }
@@ -358,11 +358,11 @@ func (d *SourceFilesystem) MakePathRelative(filename string) (string, bool) {
 }
 
 // ReverseLookup returns the component paths for the given filename.
-func (d *SourceFilesystem) ReverseLookup(filename string) ([]hugofs.ComponentPath, error) {
+func (d *SourceFilesystem) ReverseLookup(filename string, checkExists bool) ([]hugofs.ComponentPath, error) {
        var cps []hugofs.ComponentPath
        hugofs.WalkFilesystems(d.Fs, func(fs afero.Fs) bool {
                if rfs, ok := fs.(hugofs.ReverseLookupProvder); ok {
-                       if c, err := rfs.ReverseLookup(filename, true); err == nil {
+                       if c, err := rfs.ReverseLookup(filename, checkExists); err == nil {
                                cps = append(cps, c...)
                        }
                }
index 5398055ed84f999dbffbc4d2adc37e1d95dc3ae0..ebbb378d31729f5f62a369df13727b26adaf6de0 100644 (file)
@@ -380,11 +380,11 @@ Main.
 `
        b := hugolib.Test(t, files)
 
-       rel, found := b.H.BaseFs.Assets.MakePathRelative(filepath.FromSlash("/themes/t1/src/main.js"))
+       rel, found := b.H.BaseFs.Assets.MakePathRelative(filepath.FromSlash("/themes/t1/src/main.js"), true)
        b.Assert(found, qt.Equals, true)
        b.Assert(rel, qt.Equals, filepath.FromSlash("foo/bar/main.js"))
 
-       rel, found = b.H.BaseFs.Assets.MakePathRelative(filepath.FromSlash("/bar.txt"))
+       rel, found = b.H.BaseFs.Assets.MakePathRelative(filepath.FromSlash("/bar.txt"), true)
        b.Assert(found, qt.Equals, true)
        b.Assert(rel, qt.Equals, filepath.FromSlash("foo/baz.txt"))
 }
@@ -460,7 +460,7 @@ Home.
        b.AssertFileContent("public/index.html", "Home.")
 
        stat := func(path string) hugofs.FileMetaInfo {
-               ps, err := b.H.BaseFs.Content.ReverseLookup(filepath.FromSlash(path))
+               ps, err := b.H.BaseFs.Content.ReverseLookup(filepath.FromSlash(path), true)
                b.Assert(err, qt.IsNil)
                b.Assert(ps, qt.HasLen, 1)
                first := ps[0]
index 505b10bd77296f579c3aebd64bd4b56f604da3a6..58c646334b4e768bde96b52386447efff8be3ca1 100644 (file)
@@ -243,7 +243,7 @@ func (c *pageFinder) getContentNodeFromRefReverseLookup(ref string, fi hugofs.Fi
 
        realFilename := filepath.Join(dir, ref)
 
-       pcs, err := s.BaseFs.Content.ReverseLookup(realFilename)
+       pcs, err := s.BaseFs.Content.ReverseLookup(realFilename, true)
        if err != nil {
                return nil, err
        }
index df32e7012980449e2937f8a9cf1eef98fe14143f..1c29ad67cf97c40757b5debcbc0e0c6137ca128b 100644 (file)
@@ -218,7 +218,7 @@ func createBuildPlugins(depsManager identity.Manager, c *Client, opts Options) (
                isStdin := args.Importer == stdinImporter
                var relDir string
                if !isStdin {
-                       rel, found := fs.MakePathRelative(args.Importer)
+                       rel, found := fs.MakePathRelative(args.Importer, true)
                        if !found {
                                // Not in any of the /assets folders.
                                // This is an import from a node_modules, let
index 73eca6a53849197c9049b168155984eedf7cff65..a9600f380ad404170c9020d52aea4ed54dde7423 100644 (file)
@@ -138,12 +138,13 @@ func (t importResolver) CanonicalizeURL(url string) (string, error) {
        if url == sass.HugoVarsNamespace {
                return url, nil
        }
+
        filePath, isURL := paths.UrlToFilename(url)
        var prevDir string
        var pathDir string
        if isURL {
                var found bool
-               prevDir, found = t.c.sfs.MakePathRelative(filepath.Dir(filePath))
+               prevDir, found = t.c.sfs.MakePathRelative(filepath.Dir(filePath), false)
 
                if !found {
                        // Not a member of this filesystem, let Dart Sass handle it.
index a4c4e6d8ecc3ae5c6685415d81865a30bdef58fd..a3f2a5289a7cdb97a32fb33f548121d2a3bae7f0 100644 (file)
@@ -86,7 +86,7 @@ func (t *toCSSTransformation) Transform(ctx *resources.ResourceTransformationCtx
                if prev == "stdin" {
                        prevDir = baseDir
                } else {
-                       prevDir, _ = t.c.sfs.MakePathRelative(filepath.Dir(prev))
+                       prevDir, _ = t.c.sfs.MakePathRelative(filepath.Dir(prev), false)
 
                        if prevDir == "" {
                                // Not a member of this filesystem. Let LibSASS handle it.