From ae48507d66db1fbe9b8fd5e3589941bee362a7ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Erik=20Pedersen?= Date: Thu, 23 Feb 2023 08:38:51 +0100 Subject: [PATCH] Fix shortcode error when closing without .Inner Fixes #10672 --- hugolib/shortcode.go | 10 +--------- hugolib/shortcode_test.go | 2 +- 2 files changed, 2 insertions(+), 10 deletions(-) diff --git a/hugolib/shortcode.go b/hugolib/shortcode.go index d3430cb8170..13fe913a686 100644 --- a/hugolib/shortcode.go +++ b/hugolib/shortcode.go @@ -564,10 +564,6 @@ func (s *shortcodeHandler) extractShortcode(ordinal, level int, source []byte, p closed := false const errorPrefix = "failed to extract shortcode" - fail := func(err error, i pageparser.Item) error { - return s.parseError(fmt.Errorf("%s: %w", errorPrefix, err), source, i.Pos()) - } - Loop: for { currItem := pt.Next() @@ -607,10 +603,6 @@ Loop: // we trust the template on this: // if there's no inner, we're done if !sc.isInline { - if sc.info == nil { - // This should not happen. - return sc, fail(errors.New("BUG: template info not set"), currItem) - } if !sc.info.ParseInfo().IsInner { return sc, nil } @@ -625,7 +617,7 @@ Loop: // return that error, more specific continue } - return sc, fail(fmt.Errorf("shortcode %q has no .Inner, yet a closing tag was provided", next.ValStr(source)), next) + return nil, fmt.Errorf("%s: shortcode %q does not evaluate .Inner or .InnerDeindent, yet a closing tag was provided", errorPrefix, next.ValStr(source)) } } if next.IsRightShortcodeDelim() { diff --git a/hugolib/shortcode_test.go b/hugolib/shortcode_test.go index cd17e78749a..eac3de2ce2c 100644 --- a/hugolib/shortcode_test.go +++ b/hugolib/shortcode_test.go @@ -875,7 +875,7 @@ title: "No Inner!" "layouts/shortcodes/noinner.html", `No inner here.`) err := b.BuildE(BuildCfg{}) - b.Assert(err.Error(), qt.Contains, filepath.FromSlash(`"content/mypage.md:4:21": failed to extract shortcode: shortcode "noinner" has no .Inner, yet a closing tag was provided`)) + 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`)) } func TestShortcodeStableOutputFormatTemplates(t *testing.T) {