diff options
author | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2018-11-05 13:30:16 +0100 |
---|---|---|
committer | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2018-11-05 14:14:28 +0100 |
commit | d16a7a33ff1f22b9fa357189a901a4f1de4e65e7 (patch) | |
tree | 3860dd6ec35d7a22f157dc000d07fa2977e4866c | |
parent | 5b1edd281a493bdb27af4dc3c8fae7e10dd54830 (diff) |
Fix shortcode directly following a shortcode delimiter
Fixes #5402
-rw-r--r-- | hugolib/page_test.go | 17 | ||||
-rw-r--r-- | parser/pageparser/pagelexer.go | 3 | ||||
-rw-r--r-- | parser/pageparser/pageparser_intro_test.go | 3 |
3 files changed, 20 insertions, 3 deletions
diff --git a/hugolib/page_test.go b/hugolib/page_test.go index 18be64cee..b421a1b40 100644 --- a/hugolib/page_test.go +++ b/hugolib/page_test.go @@ -1513,7 +1513,13 @@ Content. b.WithContent("page-md-shortcode-same-line.md", `--- title: "Hugo" --- -This is a {{< sc >}}.<!--more-->Same line. +This is a {{< sc >}}<!--more-->Same line. +`) + + b.WithContent("page-md-shortcode-same-line-after.md", `--- +title: "Hugo" +--- +Summary<!--more-->{{< sc >}} `) b.WithContent("page-org-shortcode.org", `#+TITLE: T1 @@ -1547,8 +1553,13 @@ CONTENT:{{ .Content }} ) b.AssertFileContent("public/page-md-shortcode-same-line/index.html", - "SUMMARY:<p>This is a a shortcode.</p>:END", - "CONTENT:<p>This is a a shortcode.</p>\n\n<p>Same line.</p>\n", + "SUMMARY:<p>This is a a shortcode</p>:END", + "CONTENT:<p>This is a a shortcode</p>\n\n<p>Same line.</p>\n", + ) + + b.AssertFileContent("public/page-md-shortcode-same-line-after/index.html", + "SUMMARY:<p>Summary</p>:END", + "CONTENT:<p>Summary</p>\n\na shortcode", ) b.AssertFileContent("public/page-org-shortcode/index.html", diff --git a/parser/pageparser/pagelexer.go b/parser/pageparser/pagelexer.go index 565be2994..fcea560c4 100644 --- a/parser/pageparser/pagelexer.go +++ b/parser/pageparser/pagelexer.go @@ -247,6 +247,9 @@ func lexMainSection(l *pageLexer) stateFunc { // This makes it a little easier to reason about later. l.consumeSpace() l.emit(TypeLeadSummaryDivider) + + // We have already moved to the next. + continue } } diff --git a/parser/pageparser/pageparser_intro_test.go b/parser/pageparser/pageparser_intro_test.go index 60c431c10..f818848bd 100644 --- a/parser/pageparser/pageparser_intro_test.go +++ b/parser/pageparser/pageparser_intro_test.go @@ -68,11 +68,14 @@ var frontMatterTests = []lexerTest{ {"Summary divider ORG", tstORG + "\nSome text.\n# more\nSome text.\n", []Item{tstFrontMatterORG, tstSomeText, nti(TypeLeadSummaryDivider, "# more\n"), nti(tText, "Some text.\n"), tstEOF}}, {"Summary divider", "+++\nfoo = \"bar\"\n+++\n\nSome text.\n<!--more-->\nSome text.\n", []Item{tstFrontMatterTOML, tstSomeText, tstSummaryDivider, 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 + {"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}}, } func TestFrontMatter(t *testing.T) { t.Parallel() for i, test := range frontMatterTests { + items := collect([]byte(test.input), false, lexIntroSection) if !equal(items, test.items) { got := crLfReplacer.Replace(fmt.Sprint(items)) |