mirror of
https://github.com/gohugoio/hugo.git
synced 2024-11-21 20:46:30 -05:00
parser/pageparser: Fix when only shortcode and then summary
Fixes #5464
This commit is contained in:
parent
dcfeed35c6
commit
94ab125b27
4 changed files with 26 additions and 9 deletions
|
@ -1508,6 +1508,15 @@ title: "Hugo"
|
||||||
This is a {{< sc >}}.
|
This is a {{< sc >}}.
|
||||||
<!--more-->
|
<!--more-->
|
||||||
Content.
|
Content.
|
||||||
|
`)
|
||||||
|
|
||||||
|
// https://github.com/gohugoio/hugo/issues/5464
|
||||||
|
b.WithContent("page-md-only-shortcode.md", `---
|
||||||
|
title: "Hugo"
|
||||||
|
---
|
||||||
|
{{< sc >}}
|
||||||
|
<!--more-->
|
||||||
|
{{< sc >}}
|
||||||
`)
|
`)
|
||||||
|
|
||||||
b.WithContent("page-md-shortcode-same-line.md", `---
|
b.WithContent("page-md-shortcode-same-line.md", `---
|
||||||
|
@ -1570,6 +1579,11 @@ CONTENT:{{ .Content }}
|
||||||
"SUMMARY:<p>Summary.</p>:END",
|
"SUMMARY:<p>Summary.</p>:END",
|
||||||
"CONTENT:<p>Summary.</p>\n\n<p>Content.\t</p>\n",
|
"CONTENT:<p>Summary.</p>\n\n<p>Content.\t</p>\n",
|
||||||
)
|
)
|
||||||
|
|
||||||
|
b.AssertFileContent("public/page-md-only-shortcode/index.html",
|
||||||
|
"SUMMARY:a shortcode:END",
|
||||||
|
"CONTENT:a shortcode\n\na shortcode\n",
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO(bep) this may be useful for other tests.
|
// TODO(bep) this may be useful for other tests.
|
||||||
|
|
|
@ -216,7 +216,7 @@ func lexMainSection(l *pageLexer) stateFunc {
|
||||||
}
|
}
|
||||||
|
|
||||||
l2 = l.index(leftDelimSc)
|
l2 = l.index(leftDelimSc)
|
||||||
skip := minPositiveIndex(l1, l2)
|
skip := minIndex(l1, l2)
|
||||||
|
|
||||||
if skip > 0 {
|
if skip > 0 {
|
||||||
l.pos += skip
|
l.pos += skip
|
||||||
|
@ -730,12 +730,12 @@ func (l *pageLexer) currentRightShortcodeDelim() []byte {
|
||||||
|
|
||||||
// helper functions
|
// helper functions
|
||||||
|
|
||||||
// returns the min index > 0
|
// returns the min index >= 0
|
||||||
func minPositiveIndex(indices ...int) int {
|
func minIndex(indices ...int) int {
|
||||||
min := -1
|
min := -1
|
||||||
|
|
||||||
for _, j := range indices {
|
for _, j := range indices {
|
||||||
if j <= 0 {
|
if j < 0 {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
if min == -1 {
|
if min == -1 {
|
||||||
|
|
|
@ -19,11 +19,11 @@ import (
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestMinPositiveIndex(t *testing.T) {
|
func TestMinIndex(t *testing.T) {
|
||||||
assert := require.New(t)
|
assert := require.New(t)
|
||||||
assert.Equal(1, minPositiveIndex(4, 1, 2, 3))
|
assert.Equal(1, minIndex(4, 1, 2, 3))
|
||||||
assert.Equal(2, minPositiveIndex(4, 0, -2, 2, 5))
|
assert.Equal(0, minIndex(4, 0, -2, 2, 5))
|
||||||
assert.Equal(-1, minPositiveIndex())
|
assert.Equal(-1, minIndex())
|
||||||
assert.Equal(-1, minPositiveIndex(-2, -3))
|
assert.Equal(-1, minIndex(-2, -3))
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -39,6 +39,7 @@ var (
|
||||||
tstSomeText = nti(tText, "\nSome text.\n")
|
tstSomeText = nti(tText, "\nSome text.\n")
|
||||||
tstSummaryDivider = nti(TypeLeadSummaryDivider, "<!--more-->\n")
|
tstSummaryDivider = nti(TypeLeadSummaryDivider, "<!--more-->\n")
|
||||||
tstHtmlStart = nti(TypeHTMLStart, "<")
|
tstHtmlStart = nti(TypeHTMLStart, "<")
|
||||||
|
tstNewline = nti(tText, "\n")
|
||||||
|
|
||||||
tstORG = `
|
tstORG = `
|
||||||
#+TITLE: T1
|
#+TITLE: T1
|
||||||
|
@ -70,6 +71,8 @@ var frontMatterTests = []lexerTest{
|
||||||
{"Summary divider same line", "+++\nfoo = \"bar\"\n+++\n\nSome text.<!--more-->Some text.\n", []Item{tstFrontMatterTOML, nti(tText, "\nSome text."), nti(TypeLeadSummaryDivider, "<!--more-->"), nti(tText, "Some text.\n"), tstEOF}},
|
{"Summary divider same line", "+++\nfoo = \"bar\"\n+++\n\nSome text.<!--more-->Some text.\n", []Item{tstFrontMatterTOML, nti(tText, "\nSome text."), nti(TypeLeadSummaryDivider, "<!--more-->"), nti(tText, "Some text.\n"), tstEOF}},
|
||||||
// https://github.com/gohugoio/hugo/issues/5402
|
// https://github.com/gohugoio/hugo/issues/5402
|
||||||
{"Summary and shortcode, no space", "+++\nfoo = \"bar\"\n+++\n\nSome text.\n<!--more-->{{< sc1 >}}\nSome text.\n", []Item{tstFrontMatterTOML, tstSomeText, nti(TypeLeadSummaryDivider, "<!--more-->"), tstLeftNoMD, tstSC1, tstRightNoMD, tstSomeText, tstEOF}},
|
{"Summary and shortcode, no space", "+++\nfoo = \"bar\"\n+++\n\nSome text.\n<!--more-->{{< sc1 >}}\nSome text.\n", []Item{tstFrontMatterTOML, tstSomeText, nti(TypeLeadSummaryDivider, "<!--more-->"), tstLeftNoMD, tstSC1, tstRightNoMD, tstSomeText, tstEOF}},
|
||||||
|
// https://github.com/gohugoio/hugo/issues/5464
|
||||||
|
{"Summary and shortcode only", "+++\nfoo = \"bar\"\n+++\n{{< sc1 >}}\n<!--more-->\n{{< sc2 >}}", []Item{tstFrontMatterTOML, tstLeftNoMD, tstSC1, tstRightNoMD, tstNewline, tstSummaryDivider, tstLeftNoMD, tstSC2, tstRightNoMD, tstEOF}},
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestFrontMatter(t *testing.T) {
|
func TestFrontMatter(t *testing.T) {
|
||||||
|
|
Loading…
Reference in a new issue