URI: 
       better handling of detecting markup format - 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 d0ef3d43bd33cc1c0ea7a4aac91059f941987ad8
   DIR parent f432b187a0ec52629ad1b9d993a5c3203e3699d5
  HTML Author: spf13 <steve.francia@gmail.com>
       Date:   Fri,  6 Dec 2013 23:56:51 -0500
       
       better handling of detecting markup format
       
       Diffstat:
         M hugolib/page.go                     |      30 ++++++++++++++++++++++--------
         M hugolib/site_test.go                |       2 ++
       
       2 files changed, 24 insertions(+), 8 deletions(-)
       ---
   DIR diff --git a/hugolib/page.go b/hugolib/page.go
       @@ -490,17 +490,35 @@ func (p *Page) ExecuteTemplate(layout string) *bytes.Buffer {
        }
        
        func (page *Page) guessMarkupType() string {
       +        // First try the explicitly set markup from the frontmatter
                if page.Markup != "" {
       -                return page.Markup
       +                format := guessType(page.Markup)
       +                if format != "unknown" {
       +                        return format
       +                }
                }
        
       -        if strings.HasSuffix(page.FileName, ".md") {
       -                return "md"
       +        // Then try to guess from the extension
       +        ext := strings.ToLower(path.Ext(page.FileName))
       +        if strings.HasPrefix(ext, ".") {
       +                return guessType(ext[1:])
                }
        
                return "unknown"
        }
        
       +func guessType(in string) string {
       +        switch in {
       +        case "md", "markdown", "mdown":
       +                return "markdown"
       +        case "rst":
       +                return "rst"
       +        case "html", "htm":
       +                return "html"
       +        }
       +        return "unknown"
       +}
       +
        func (page *Page) parse(reader io.Reader) error {
                p, err := parser.ReadFrom(reader)
                if err != nil {
       @@ -530,14 +548,10 @@ func (page *Page) parse(reader io.Reader) error {
        
        func (page *Page) Convert() error {
                switch page.guessMarkupType() {
       -        case "md", "markdown", "mdown":
       +        case "markdown":
                        page.convertMarkdown(bytes.NewReader([]byte(page.Content)))
                case "rst":
                        page.convertRestructuredText(bytes.NewReader([]byte(page.Content)))
       -        case "html":
       -                fallthrough
       -        default:
       -                page.Content = template.HTML(page.Content)
                }
                return nil
        }
   DIR diff --git a/hugolib/site_test.go b/hugolib/site_test.go
       @@ -229,6 +229,7 @@ func TestSkipRender(t *testing.T) {
                        {"sect/doc5.html", []byte("<!doctype html><html>{{ template \"head\" }}<body>body5</body></html>"), "sect"},
                        {"sect/doc6.html", []byte("<!doctype html><html>{{ template \"head_abs\" }}<body>body5</body></html>"), "sect"},
                        {"doc7.html", []byte("<html><body>doc7 content</body></html>"), ""},
       +                {"sect/doc8.html", []byte("---\nmarkup: md\n---\n# title\nsome *content*"), "sect"},
                }
        
                s := &Site{
       @@ -267,6 +268,7 @@ func TestSkipRender(t *testing.T) {
                        {"sect/doc5.html", "<!doctype html><html><head><script src=\"script.js\"></script></head><body>body5</body></html>"},
                        {"sect/doc6.html", "<!doctype html><html><head><script src=\"http://auth/bub/script.js\"></script></head><body>body5</body></html>"},
                        {"doc7.html", "<html><body>doc7 content</body></html>"},
       +                {"sect/doc8.html", "<h1>title</h1>\n\n<p>some <em>content</em></p>\n"},
                }
        
                for _, test := range tests {