Switch to a more up to date TOML library - 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 20c4311df4e61edb449ec93837cdde96a700b879
DIR parent 81f04ef4f0acf518e78846d4d15c07c531a08546
HTML Author: Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Date: Sat, 20 Aug 2016 20:28:38 +0100
Switch to a more up to date TOML library
Fixes #2089
Diffstat:
M commands/new.go | 2 +-
M hugolib/menu_test.go | 9 +++++----
M parser/frontmatter.go | 24 +++++++++++++-----------
3 files changed, 19 insertions(+), 16 deletions(-)
---
DIR diff --git a/commands/new.go b/commands/new.go
@@ -317,7 +317,7 @@ func newContentPathSection(path string) (string, string) {
}
func createConfig(inpath string, kind string) (err error) {
- in := map[string]string{
+ in := map[string]interface{}{
"baseurl": "http://replace-this-with-your-hugo-site.com/",
"title": "My New Hugo Site",
"languageCode": "en-us",
DIR diff --git a/hugolib/menu_test.go b/hugolib/menu_test.go
@@ -20,7 +20,7 @@ import (
"path/filepath"
- "github.com/BurntSushi/toml"
+ toml "github.com/pelletier/go-toml"
"github.com/spf13/hugo/hugofs"
"github.com/spf13/hugo/source"
"github.com/spf13/viper"
@@ -701,11 +701,12 @@ func testSiteSetup(s *Site, t *testing.T) {
}
func tomlToMap(s string) (map[string]interface{}, error) {
- var data = make(map[string]interface{})
- if _, err := toml.Decode(s, &data); err != nil {
+ tree, err := toml.Load(s)
+
+ if err != nil {
return nil, err
}
- return data, nil
+ return tree.ToMap(), nil
}
DIR diff --git a/parser/frontmatter.go b/parser/frontmatter.go
@@ -19,7 +19,8 @@ import (
"fmt"
"strings"
- "github.com/BurntSushi/toml"
+ toml "github.com/pelletier/go-toml"
+
"gopkg.in/yaml.v2"
)
@@ -49,11 +50,8 @@ func InterfaceToConfig(in interface{}, mark rune) ([]byte, error) {
}
return b.Bytes(), nil
case rune(TOMLLead[0]):
- err := toml.NewEncoder(b).Encode(in)
- if err != nil {
- return nil, err
- }
- return b.Bytes(), nil
+ tree := toml.TreeFromMap(in.(map[string]interface{}))
+ return []byte(tree.String()), nil
case rune(JSONLead[0]):
by, err := json.MarshalIndent(in, "", " ")
if err != nil {
@@ -99,10 +97,8 @@ func InterfaceToFrontMatter(in interface{}, mark rune) ([]byte, error) {
return nil, err
}
- err = toml.NewEncoder(b).Encode(in)
- if err != nil {
- return nil, err
- }
+ tree := toml.TreeFromMap(in.(map[string]interface{}))
+ b.Write([]byte(tree.String()))
_, err = b.Write([]byte("\n" + TOMLDelimUnix))
if err != nil {
return nil, err
@@ -166,9 +162,15 @@ func DetectFrontMatter(mark rune) (f *frontmatterType) {
func HandleTOMLMetaData(datum []byte) (interface{}, error) {
m := map[string]interface{}{}
datum = removeTOMLIdentifier(datum)
- if _, err := toml.Decode(string(datum), &m); err != nil {
+
+ tree, err := toml.Load(string(datum))
+
+ if err != nil {
return m, err
}
+
+ m = tree.ToMap()
+
return m, nil
}