URI: 
       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)