dartsass: Resolve directory paths to directory index files - hugo - [fork] hugo port for 9front
HTML git clone git@git.drkhsh.at/hugo.git
DIR Log
DIR Files
DIR Refs
DIR Submodules
DIR README
DIR LICENSE
---
DIR commit 2bc27657d8b75eabdeaf4df8b354efed8e079169
DIR parent 28f621d4a73ca7e97e23b33cbf3780ddab188d24
HTML Author: Joe Mooring <joe.mooring@veriphor.com>
Date: Fri, 13 Sep 2024 15:54:23 -0700
dartsass: Resolve directory paths to directory index files
Closes #12849
Diffstat:
M resources/resource_transformers/to… | 40 +++++++++++++++++++++++++++++++
M resources/resource_transformers/to… | 6 +++++-
2 files changed, 45 insertions(+), 1 deletion(-)
---
DIR diff --git a/resources/resource_transformers/tocss/dartsass/dartsass_integration_test.go b/resources/resource_transformers/tocss/dartsass/dartsass_integration_test.go
@@ -562,3 +562,43 @@ Styles: {{ $r.RelPermalink }}
b.AssertFileContent("public/index.html", "Styles: /scss/main.css")
}
+
+// Issue 12849
+func TestDirectoryIndexes(t *testing.T) {
+ t.Parallel()
+
+ files := `
+-- hugo.toml --
+disableKinds = ['page','section','rss','sitemap','taxonomy','term']
+
+[[module.mounts]]
+source = 'assets'
+target = 'assets'
+
+[[module.imports]]
+path = "github.com/gohugoio/hugoTestModule2"
+
+[[module.imports.mounts]]
+source = "miscellaneous/sass"
+target = "assets/sass"
+-- go.mod --
+module hugo-github-issue-12849
+-- layouts/index.html --
+{{ $opts := dict "transpiler" "dartsass" "outputStyle" "compressed" }}
+{{ (resources.Get "sass/main.scss" | toCSS $opts).Content }}
+-- assets/sass/main.scss --
+@use "foo"; // directory with index file from OS file system
+@use "bar"; // directory with index file from module mount
+-- assets/sass/foo/_index.scss --
+.foo {color: red;}
+`
+
+ b := hugolib.NewIntegrationTestBuilder(
+ hugolib.IntegrationTestConfig{
+ T: t,
+ NeedsOsFS: true,
+ TxtarString: files,
+ }).Build()
+
+ b.AssertFileContent("public/index.html", ".foo{color:red}.bar{color:green}")
+}
DIR diff --git a/resources/resource_transformers/tocss/dartsass/transform.go b/resources/resource_transformers/tocss/dartsass/transform.go
@@ -165,7 +165,11 @@ func (t importResolver) CanonicalizeURL(url string) (string, error) {
} else if strings.HasPrefix(name, "_") {
namePatterns = []string{"_%s.scss", "_%s.sass", "_%s.css"}
} else {
- namePatterns = []string{"_%s.scss", "%s.scss", "_%s.sass", "%s.sass", "_%s.css", "%s.css"}
+ namePatterns = []string{
+ "_%s.scss", "%s.scss", "%s/_index.scss",
+ "_%s.sass", "%s.sass", "%s/_index.sass",
+ "_%s.css", "%s.css",
+ }
}
name = strings.TrimPrefix(name, "_")