]> git.maquefel.me Git - brevno-suite/hugo/commitdiff
Fix shortcode name in error message on self-closing shortcodes with no .Inner
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Tue, 4 Feb 2025 10:18:26 +0000 (11:18 +0100)
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Wed, 5 Feb 2025 15:35:02 +0000 (16:35 +0100)
Fixes #13344

hugolib/shortcode.go
hugolib/shortcode_test.go

index 69e891adbf7619fbfc19d68fceb60437acaea080..9a2bb7aeb09d1afaa085cd25ff38cbb18f37234a 100644 (file)
@@ -650,7 +650,11 @@ Loop:
                                                // return that error, more specific
                                                continue
                                        }
-                                       return nil, fmt.Errorf("%s: shortcode %q does not evaluate .Inner or .InnerDeindent, yet a closing tag was provided", errorPrefix, next.ValStr(source))
+                                       name := sc.name
+                                       if name == "" {
+                                               name = next.ValStr(source)
+                                       }
+                                       return nil, fmt.Errorf("%s: shortcode %q does not evaluate .Inner or .InnerDeindent, yet a closing tag was provided", errorPrefix, name)
                                }
                        }
                        if next.IsRightShortcodeDelim() {
index 92812bf660db84ea2f820d6a293846bfa16c483e..5799de45279a32b7d40e8daf5fff970610a5c9a3 100644 (file)
@@ -831,19 +831,35 @@ title: "Hugo Rocks!"
 func TestShortcodeNoInner(t *testing.T) {
        t.Parallel()
 
-       b := newTestSitesBuilder(t)
-
-       b.WithContent("mypage.md", `---
+       files := `
+-- hugo.toml --
+baseURL = "https://example.org"
+disableKinds = ["term", "taxonomy", "home", "section"]
+-- content/mypage.md --
+---
 title: "No Inner!"
 ---
+
 {{< noinner >}}{{< /noinner >}}
 
+-- layouts/shortcodes/noinner.html --
+No inner here.
+-- layouts/_default/single.html --
+Content: {{ .Content }}|
 
-`).WithTemplatesAdded(
-               "layouts/shortcodes/noinner.html", `No inner here.`)
+`
+
+       b, err := TestE(t, files)
+
+       assert := func() {
+               b.Assert(err.Error(), qt.Contains, filepath.FromSlash(`failed to extract shortcode: shortcode "noinner" does not evaluate .Inner or .InnerDeindent, yet a closing tag was provided`))
+       }
 
-       err := b.BuildE(BuildCfg{})
-       b.Assert(err.Error(), qt.Contains, filepath.FromSlash(`"content/mypage.md:4:16": failed to extract shortcode: shortcode "noinner" does not evaluate .Inner or .InnerDeindent, yet a closing tag was provided`))
+       assert()
+
+       b, err = TestE(t, strings.Replace(files, `{{< noinner >}}{{< /noinner >}}`, `{{< noinner />}}`, 1))
+
+       assert()
 }
 
 func TestShortcodeStableOutputFormatTemplates(t *testing.T) {