diff --git a/hugolib/page.go b/hugolib/page.go index 2342e368f..cff84737b 100644 --- a/hugolib/page.go +++ b/hugolib/page.go @@ -264,7 +264,7 @@ func (p *Page) renderBytes(content []byte) []byte { } } return helpers.RenderBytes( - &helpers.RenderingContext{Content: content, PageFmt: p.guessMarkupType(), + &helpers.RenderingContext{Content: content, PageFmt: p.determineMarkupType(), DocumentID: p.UniqueID(), Config: p.getRenderingConfig(), LinkResolver: fn, FileResolver: fileFn}) } @@ -279,7 +279,7 @@ func (p *Page) renderContent(content []byte) []byte { return p.Node.Site.SourceRelativeLinkFile(ref, p) } } - return helpers.RenderBytesWithTOC(&helpers.RenderingContext{Content: content, PageFmt: p.guessMarkupType(), + return helpers.RenderBytesWithTOC(&helpers.RenderingContext{Content: content, PageFmt: p.determineMarkupType(), DocumentID: p.UniqueID(), Config: p.getRenderingConfig(), LinkResolver: fn, FileResolver: fileFn}) } @@ -801,16 +801,15 @@ func (p *Page) Render(layout ...string) template.HTML { return tpl.ExecuteTemplateToHTML(p, l...) } -func (p *Page) guessMarkupType() string { - // First try the explicitly set markup from the frontmatter - if p.Markup != "" { - format := helpers.GuessType(p.Markup) - if format != "unknown" { - return format - } +func (p *Page) determineMarkupType() string { + // Try markup explicitly set in the frontmatter + p.Markup = helpers.GuessType(p.Markup) + if p.Markup == "unknown" { + // Fall back to file extension (might also return "unknown") + p.Markup = helpers.GuessType(p.Source.Ext()) } - return helpers.GuessType(p.Source.Ext()) + return p.Markup } func (p *Page) parse(reader io.Reader) error { diff --git a/hugolib/shortcode.go b/hugolib/shortcode.go index 782f0e21a..36d2058f1 100644 --- a/hugolib/shortcode.go +++ b/hugolib/shortcode.go @@ -234,7 +234,7 @@ func renderShortcode(sc shortcode, parent *ShortcodeWithPage, p *Page, t tpl.Tem if sc.doMarkup { newInner := helpers.RenderBytes(&helpers.RenderingContext{ - Content: []byte(inner), PageFmt: p.guessMarkupType(), + Content: []byte(inner), PageFmt: p.determineMarkupType(), DocumentID: p.UniqueID(), Config: p.getRenderingConfig()}) // If the type is “unknown” or “markdown”, we assume the markdown @@ -250,7 +250,7 @@ func renderShortcode(sc shortcode, parent *ShortcodeWithPage, p *Page, t tpl.Tem // substitutions in
HUGOSHORTCODE-1
which prevents the // generation, but means that you can’t use shortcodes inside of // markdown structures itself (e.g., `[foo]({{% ref foo.md %}})`). - switch p.guessMarkupType() { + switch p.determineMarkupType() { case "unknown", "markdown": if match, _ := regexp.MatchString(innerNewlineRegexp, inner); !match { cleaner, err := regexp.Compile(innerCleanupRegexp)