ref: 9f6b5ad3b4f2ab7815a475cdf9d7dc354701ebb6
parent: e6e98bf52de8ad7d95808d4e0c57b9391aca966e
author: ypnos <[email protected]>
date: Sun Mar 20 17:40:03 EDT 2016
Save auto-detected markup type in Page.Markup If Page.Markup was not set by the user, it will now be set after guessing from the file extension. This means, Page.Markup will be set in any case. It can be used by a theme to differentiate between markup types. Fixes #1950
--- a/hugolib/page.go
+++ b/hugolib/page.go
@@ -264,7 +264,7 @@
}
}
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 @@
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 @@
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 {
--- a/hugolib/shortcode.go
+++ b/hugolib/shortcode.go
@@ -234,7 +234,7 @@
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 @@
// substitutions in <div>HUGOSHORTCODE-1</div> 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)