From 26640525a313ef284c26866e5138b7189e841a22 Mon Sep 17 00:00:00 2001 From: curegit <37978051+curegit@users.noreply.github.com> Date: Sat, 6 Apr 2024 00:43:55 +0900 Subject: [PATCH] hugolib: Fix regression for blank summaries 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) {