From 33c738116c26e2ac37f4bd48159e8e3197fd7b39 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Erik=20Pedersen?= Date: Wed, 24 Apr 2019 14:05:37 +0200 Subject: [PATCH] hugolib: Fix shortcode version=1 logic Fixes #5831 --- hugolib/page__content.go | 8 ++++---- hugolib/shortcode.go | 4 ++++ 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"), "

Tags: 2

\n"}, + {"sect/doc12.md", `--- +title: "Foo" +--- + +{{% html-indented-v1 %}}`, + "public/sect/doc12/index.html", + "

Hugo!

"}, } 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 }` }}"+` +

Hugo!

+`) 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...) }) }