summaryrefslogtreecommitdiffstats
path: root/parser
diff options
context:
space:
mode:
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2018-11-24 17:06:26 +0100
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2018-11-24 18:23:23 +0100
commit94ab125b27a29a65e5ea45efd99dd247084b4c37 (patch)
tree99281fbd9390aa04086ca8dc5c71fb7df37de086 /parser
parentdcfeed35c6e14c1ce593d23be9d2b89c66ce9bee (diff)
parser/pageparser: Fix when only shortcode and then summary
Fixes #5464
Diffstat (limited to 'parser')
-rw-r--r--parser/pageparser/pagelexer.go8
-rw-r--r--parser/pageparser/pagelexer_test.go10
-rw-r--r--parser/pageparser/pageparser_intro_test.go3
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) {