hugolib: Fix shortcode version=1 logic
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Wed, 24 Apr 2019 12:05:37 +0000 (14:05 +0200)
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Wed, 24 Apr 2019 13:35:04 +0000 (15:35 +0200)
Fixes #5831

hugolib/page__content.go
hugolib/shortcode.go
hugolib/shortcode_test.go

index 1b40c2ae70958b07eff0e7f5751fbe640f66d0f9..593c5b9a123d72522a4a8914e76da1163937d9fa 100644 (file)
@@ -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
        }
 }
index 68455d30f460edbdf1fc9f23df338a647a3f80b3..895d0dcf2d8b93df3d8cb2523e58387733ecf33d 100644 (file)
@@ -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
 
index ea56bf79281ff91512c73fa69c5c91be46c678c0..42eef61ae0addf45afc5d0c25735d6fd3efa2c6c 100644 (file)
@@ -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...)
                })
 
        }