all: Temporarily revert to BurntSushi for TOML front matter handling - hugo - [fork] hugo port for 9front
 (HTM) git clone git@git.drkhsh.at/hugo.git
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) Submodules
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit 0907a5c1c293755e6bf297246f07888448d81f8b
 (DIR) parent 3d9c4f513b0443648d7e88995e351df1739646d2
 (HTM) Author: Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
       Date:   Wed, 31 May 2017 13:10:46 +0300
       
       all: Temporarily revert to BurntSushi for TOML front matter handling
       
       We still have go-toml as a transitive dependency, and it is the way to go eventually, but we care about speed, so let us wait that one out.
       
       Note that the issue this fixes is about taxonomies, but I guess this is a general issue for sites with many pages that uses TOML as front matter.
       
       ```
       benchmark                              old ns/op     new ns/op     delta
       BenchmarkFrontmatterTags/TOML:1-4      23206         8543          -63.19%
       BenchmarkFrontmatterTags/TOML:11-4     80117         18495         -76.92%
       BenchmarkFrontmatterTags/TOML:21-4     140676        28727         -79.58%
       
       benchmark                              old allocs     new allocs     delta
       BenchmarkFrontmatterTags/TOML:1-4      173            60             -65.32%
       BenchmarkFrontmatterTags/TOML:11-4     625            138            -77.92%
       BenchmarkFrontmatterTags/TOML:21-4     1106           210            -81.01%
       
       benchmark                              old bytes     new bytes     delta
       BenchmarkFrontmatterTags/TOML:1-4      9231          2912          -68.45%
       BenchmarkFrontmatterTags/TOML:11-4     19808         5184          -73.83%
       BenchmarkFrontmatterTags/TOML:21-4     31200         7536          -75.85%
       ```
       
       See #3541
       Updates #3464
       
       Diffstat:
         M commands/new.go                     |       2 +-
         M hugolib/menu_old_test.go            |      13 ++++---------
         M parser/frontmatter.go               |      18 ++++--------------
       
       3 files changed, 9 insertions(+), 24 deletions(-)
       ---
 (DIR) diff --git a/commands/new.go b/commands/new.go
       @@ -355,7 +355,7 @@ func newContentPathSection(path string) (string, string) {
        }
        
        func createConfig(fs *hugofs.Fs, inpath string, kind string) (err error) {
       -        in := map[string]interface{}{
       +        in := map[string]string{
                        "baseURL":      "http://example.org/",
                        "title":        "My New Hugo Site",
                        "languageCode": "en-us",
 (DIR) diff --git a/hugolib/menu_old_test.go b/hugolib/menu_old_test.go
       @@ -25,7 +25,7 @@ import (
        
                "path/filepath"
        
       -        toml "github.com/pelletier/go-toml"
       +        "github.com/BurntSushi/toml"
                "github.com/spf13/hugo/source"
                "github.com/stretchr/testify/assert"
                "github.com/stretchr/testify/require"
       @@ -634,12 +634,7 @@ func setupMenuTests(t *testing.T, pageSources []source.ByteSource, configKeyValu
        }
        
        func tomlToMap(s string) (map[string]interface{}, error) {
       -        tree, err := toml.Load(s)
       -
       -        if err != nil {
       -                return nil, err
       -        }
       -
       -        return tree.ToMap(), nil
       -
       +        var data = make(map[string]interface{})
       +        _, err := toml.Decode(s, &data)
       +        return data, err
        }
 (DIR) diff --git a/parser/frontmatter.go b/parser/frontmatter.go
       @@ -20,8 +20,8 @@ import (
                "io"
                "strings"
        
       +        "github.com/BurntSushi/toml"
                "github.com/chaseadamsio/goorgeous"
       -        toml "github.com/pelletier/go-toml"
        
                "gopkg.in/yaml.v2"
        )
       @@ -52,13 +52,7 @@ func InterfaceToConfig(in interface{}, mark rune, w io.Writer) error {
                        return err
        
                case rune(TOMLLead[0]):
       -                tree, err := toml.TreeFromMap(in.(map[string]interface{}))
       -                if err != nil {
       -                        return err
       -                }
       -
       -                _, err = tree.WriteTo(w)
       -                return err
       +                return toml.NewEncoder(w).Encode(in)
                case rune(JSONLead[0]):
                        b, err := json.MarshalIndent(in, "", "   ")
                        if err != nil {
       @@ -176,14 +170,10 @@ func HandleTOMLMetaData(datum []byte) (interface{}, error) {
                m := map[string]interface{}{}
                datum = removeTOMLIdentifier(datum)
        
       -        tree, err := toml.LoadReader(bytes.NewReader(datum))
       -        if err != nil {
       -                return m, err
       -        }
       +        _, err := toml.Decode(string(datum), &m)
        
       -        m = tree.ToMap()
       +        return m, err
        
       -        return m, nil
        }
        
        // removeTOMLIdentifier removes, if necessary, beginning and ending TOML