diff options
Diffstat (limited to 'parser')
-rw-r--r-- | parser/pageparser/pagelexer.go | 8 | ||||
-rw-r--r-- | parser/pageparser/pagelexer_test.go | 10 | ||||
-rw-r--r-- | parser/pageparser/pageparser_intro_test.go | 3 |
3 files changed, 12 insertions, 9 deletions
diff --git a/parser/pageparser/pagelexer.go b/parser/pageparser/pagelexer.go index fcea560c4..8106758a9 100644 --- a/parser/pageparser/pagelexer.go +++ b/parser/pageparser/pagelexer.go @@ -216,7 +216,7 @@ func lexMainSection(l *pageLexer) stateFunc { } l2 = l.index(leftDelimSc) - skip := minPositiveIndex(l1, l2) + skip := minIndex(l1, l2) if skip > 0 { l.pos += skip @@ -730,12 +730,12 @@ func (l *pageLexer) currentRightShortcodeDelim() []byte { // helper functions -// returns the min index > 0 -func minPositiveIndex(indices ...int) int { +// returns the min index >= 0 +func minIndex(indices ...int) int { min := -1 for _, j := range indices { - if j <= 0 { + if j < 0 { continue } if min == -1 { diff --git a/parser/pageparser/pagelexer_test.go b/parser/pageparser/pagelexer_test.go index 5c85df017..70def3091 100644 --- a/parser/pageparser/pagelexer_test.go +++ b/parser/pageparser/pagelexer_test.go @@ -19,11 +19,11 @@ import ( "github.com/stretchr/testify/require" ) -func TestMinPositiveIndex(t *testing.T) { +func TestMinIndex(t *testing.T) { assert := require.New(t) - assert.Equal(1, minPositiveIndex(4, 1, 2, 3)) - assert.Equal(2, minPositiveIndex(4, 0, -2, 2, 5)) - assert.Equal(-1, minPositiveIndex()) - assert.Equal(-1, minPositiveIndex(-2, -3)) + assert.Equal(1, minIndex(4, 1, 2, 3)) + assert.Equal(0, minIndex(4, 0, -2, 2, 5)) + assert.Equal(-1, minIndex()) + assert.Equal(-1, minIndex(-2, -3)) } diff --git a/parser/pageparser/pageparser_intro_test.go b/parser/pageparser/pageparser_intro_test.go index f818848bd..ba48a3ee3 100644 --- a/parser/pageparser/pageparser_intro_test.go +++ b/parser/pageparser/pageparser_intro_test.go @@ -39,6 +39,7 @@ var ( tstSomeText = nti(tText, "\nSome text.\n") tstSummaryDivider = nti(TypeLeadSummaryDivider, "<!--more-->\n") tstHtmlStart = nti(TypeHTMLStart, "<") + tstNewline = nti(tText, "\n") tstORG = ` #+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}}, // 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}}, + // 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) { |