diff options
author | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2019-04-24 14:05:37 +0200 |
---|---|---|
committer | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2019-04-24 15:35:04 +0200 |
commit | 33c738116c26e2ac37f4bd48159e8e3197fd7b39 (patch) | |
tree | cafcca99e66f0ce0d2686180e891f09c5bfc6cdd | |
parent | 69a56420aec5bf5abb846701d4a5ec67fe060d96 (diff) |
hugolib: Fix shortcode version=1 logic
Fixes #5831
-rw-r--r-- | hugolib/page__content.go | 8 | ||||
-rw-r--r-- | hugolib/shortcode.go | 4 | ||||
-rw-r--r-- | hugolib/shortcode_test.go | 12 |
3 files changed, 19 insertions, 5 deletions
diff --git a/hugolib/page__content.go b/hugolib/page__content.go index 1b40c2ae7..593c5b9a1 100644 --- 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 index 68455d30f..895d0dcf2 100644 --- 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 index ea56bf792..42eef61ae 100644 --- 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...) }) } |