shithub: hugo

Download patch

ref: 33c738116c26e2ac37f4bd48159e8e3197fd7b39
parent: 69a56420aec5bf5abb846701d4a5ec67fe060d96
author: Bjørn Erik Pedersen <[email protected]>
date: Wed Apr 24 10:05:37 EDT 2019

hugolib: Fix shortcode version=1 logic

Fixes #5831

--- a/hugolib/page__content.go
+++ b/hugolib/page__content.go
@@ -53,7 +53,7 @@
 		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) 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
 	}
 }
--- a/hugolib/shortcode.go
+++ b/hugolib/shortcode.go
@@ -201,6 +201,10 @@
 	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
 
--- a/hugolib/shortcode_test.go
+++ b/hugolib/shortcode_test.go
@@ -531,6 +531,13 @@
 **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 @@
 		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 @@
 			th := testHelper{s.Cfg, s.Fs, t}
 
 			expected := cast.ToStringSlice(test.expected)
-			th.assertFileContent(test.outFile, expected...)
+			th.assertFileContent(filepath.FromSlash(test.outFile), expected...)
 		})
 
 	}