Save auto-detected markup type in Page.Markup - hugo - [fork] hugo port for 9front
HTML git clone git@git.drkhsh.at/hugo.git
DIR Log
DIR Files
DIR Refs
DIR Submodules
DIR README
DIR LICENSE
---
DIR commit 9f6b5ad3b4f2ab7815a475cdf9d7dc354701ebb6
DIR parent e6e98bf52de8ad7d95808d4e0c57b9391aca966e
HTML Author: ypnos <github@lanrules.de>
Date: Sun, 20 Mar 2016 21:40:03 +0100
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
Diffstat:
M hugolib/page.go | 19 +++++++++----------
M hugolib/shortcode.go | 4 ++--
2 files changed, 11 insertions(+), 12 deletions(-)
---
DIR diff --git 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 {
DIR diff --git 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 <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)