From 02a7f59c281d6005074632967d54f046bfd0ac38 Mon Sep 17 00:00:00 2001 From: curegit <37978051+curegit@users.noreply.github.com> Date: Fri, 29 Mar 2024 12:57:31 +0900 Subject: [PATCH] hugolib: Fix regression in summary generation behavior since v0.123 Fix regression in content summarization so that we can use empty summary by using the manual summary divider. Since v0.123, there has been the regression that causes Hugo to use automatic summary generation when the manual summary results in an empty string, even if there is a `` summary divider. --- hugolib/page__content.go | 2 +- hugolib/page_test.go | 25 +++++++++++++++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/hugolib/page__content.go b/hugolib/page__content.go index 62e78c612..54f7be961 100644 --- a/hugolib/page__content.go +++ b/hugolib/page__content.go @@ -770,7 +770,7 @@ func (c *cachedContent) contentPlain(ctx context.Context, cp *pageContentOutput) result.readingTime = (result.wordCount + 212) / 213 } - if rendered.summary != "" { + if c.pi.hasSummaryDivider || rendered.summary != "" { result.summary = rendered.summary result.summaryTruncated = rendered.summaryTruncated } else if cp.po.p.m.pageConfig.Summary != "" { diff --git a/hugolib/page_test.go b/hugolib/page_test.go index f22a4d07c..8919c246c 100644 --- a/hugolib/page_test.go +++ b/hugolib/page_test.go @@ -63,6 +63,15 @@ Summary Next Line Some more text +` + + simplePageWithBlankSummary = `--- +title: SimpleWithBlankSummary +--- + + + +Some text. ` simplePageWithSummaryParameter = `--- @@ -351,6 +360,9 @@ func normalizeExpected(ext, str string) string { return expected case "rst": + if str == "" { + return "
" + } return fmt.Sprintf("
\n\n\n%s
", str) } } @@ -630,6 +642,19 @@ func TestPageWithDelimiter(t *testing.T) { testAllMarkdownEnginesForPages(t, assertFunc, nil, simplePageWithSummaryDelimiter) } +func TestPageWithBlankSummary(t *testing.T) { + t.Parallel() + assertFunc := func(t *testing.T, ext string, pages page.Pages) { + p := pages[0] + checkPageTitle(t, p, "SimpleWithBlankSummary") + checkPageContent(t, p, normalizeExpected(ext, "

Some text.

\n"), ext) + checkPageSummary(t, p, normalizeExpected(ext, ""), ext) + checkPageType(t, p, "page") + } + + testAllMarkdownEnginesForPages(t, assertFunc, nil, simplePageWithBlankSummary) +} + func TestPageWithSummaryParameter(t *testing.T) { t.Parallel() assertFunc := func(t *testing.T, ext string, pages page.Pages) {