hugo

Unnamed repository; edit this file 'description' to name the repository.

git clone git://git.shimmy1996.com/hugo.git
commit 33c738116c26e2ac37f4bd48159e8e3197fd7b39
parent 69a56420aec5bf5abb846701d4a5ec67fe060d96
Author: Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Date:   Wed, 24 Apr 2019 14:05:37 +0200

hugolib: Fix shortcode version=1 logic

Fixes #5831

Diffstat:
Mhugolib/page__content.go | 8++++----
Mhugolib/shortcode.go | 4++++
Mhugolib/shortcode_test.go | 12+++++++++++-
3 files changed, 19 insertions(+), 5 deletions(-)
diff --git a/hugolib/page__content.go b/hugolib/page__content.go
@@ -53,7 +53,7 @@ func (p pageContent) contentToRender(renderedShortcodes map[string]string) []byt
 		case pageContentReplacement:
 			c = append(c, v.val...)
 		case *shortcode:
-			if v.doMarkup || !p.renderable {
+			if !p.renderable || !v.insertPlaceholder() {
 				// Insert the rendered shortcode.
 				renderedShortcode, found := renderedShortcodes[v.placeholder]
 				if !found {
@@ -127,9 +127,9 @@ func (p *pageContentMap) AddReplacement(val []byte, source pageparser.Item) {
 
 func (p *pageContentMap) AddShortcode(s *shortcode) {
 	p.items = append(p.items, s)
-	if s.doMarkup {
-		p.hasMarkdownShortcode = true
-	} else {
+	if s.insertPlaceholder() {
 		p.hasNonMarkdownShortcode = true
+	} else {
+		p.hasMarkdownShortcode = true
 	}
 }
diff --git a/hugolib/shortcode.go b/hugolib/shortcode.go
@@ -201,6 +201,10 @@ type shortcode struct {
 	length int // the length in bytes in the source file
 }
 
+func (s shortcode) insertPlaceholder() bool {
+	return !s.doMarkup || s.info.Config.Version == 1
+}
+
 func (s shortcode) innerString() string {
 	var sb strings.Builder
 
diff --git a/hugolib/shortcode_test.go b/hugolib/shortcode_test.go
@@ -531,6 +531,13 @@ tags:
 **Tags:** {{< tags >}}`,
 			filepath.FromSlash("public/sect/doc11/index.html"),
 			"<p><strong>Tags:</strong> 2</p>\n"},
+		{"sect/doc12.md", `---
+title: "Foo"
+---
+
+{{% html-indented-v1 %}}`,
+			"public/sect/doc12/index.html",
+			"<h1>Hugo!</h1>"},
 	}
 
 	sources := make([][2]string, len(tests))
@@ -545,6 +552,9 @@ tags:
 		templ.AddTemplate("_internal/shortcodes/b.html", `b`)
 		templ.AddTemplate("_internal/shortcodes/c.html", `c`)
 		templ.AddTemplate("_internal/shortcodes/d.html", `d`)
+		templ.AddTemplate("_internal/shortcodes/html-indented-v1.html", "{{ $_hugo_config := `{ \"version\": 1 }` }}"+`
+    <h1>Hugo!</h1>
+`)
 		templ.AddTemplate("_internal/shortcodes/menu.html", `{{ len (index .Page.Menus "main").Children }}`)
 		templ.AddTemplate("_internal/shortcodes/tags.html", `{{ len .Page.Site.Taxonomies.tags }}`)
 
@@ -577,7 +587,7 @@ tags:
 			th := testHelper{s.Cfg, s.Fs, t}
 
 			expected := cast.ToStringSlice(test.expected)
-			th.assertFileContent(test.outFile, expected...)
+			th.assertFileContent(filepath.FromSlash(test.outFile), expected...)
 		})
 
 	}