mirror of
https://github.com/gohugoio/hugo.git
synced 2025-08-19 21:21:39 +02:00
Switch to go-toml v2
We have been using `go-toml` for language files only. This commit makes it the only TOML library. It's spec compliant and very fast. A benchark building a site with 200 pages with TOML front matter: ```bash name old time/op new time/op delta SiteNew/Regular_TOML_front_matter-16 48.5ms ± 1% 47.1ms ± 1% -2.85% (p=0.029 n=4+4) name old alloc/op new alloc/op delta SiteNew/Regular_TOML_front_matter-16 16.9MB ± 0% 16.7MB ± 0% -1.56% (p=0.029 n=4+4) name old allocs/op new allocs/op delta SiteNew/Regular_TOML_front_matter-16 302k ± 0% 296k ± 0% -2.20% (p=0.029 n=4+4) ``` Note that the front matter unmarshaling is only a small part of building a site, so the above is very good. Fixes #8801
This commit is contained in:
@@ -20,7 +20,7 @@ import (
|
||||
|
||||
"github.com/gohugoio/hugo/parser/metadecoders"
|
||||
|
||||
"github.com/BurntSushi/toml"
|
||||
toml "github.com/pelletier/go-toml/v2"
|
||||
|
||||
yaml "gopkg.in/yaml.v2"
|
||||
)
|
||||
|
@@ -31,9 +31,9 @@ func TestInterfaceToConfig(t *testing.T) {
|
||||
// TOML
|
||||
{map[string]interface{}{}, metadecoders.TOML, nil, false},
|
||||
{
|
||||
map[string]interface{}{"title": "test 1"},
|
||||
map[string]interface{}{"title": "test' 1"},
|
||||
metadecoders.TOML,
|
||||
[]byte("title = \"test 1\"\n"),
|
||||
[]byte("title = \"test' 1\"\n"),
|
||||
false,
|
||||
},
|
||||
|
||||
|
@@ -24,7 +24,7 @@ import (
|
||||
"github.com/gohugoio/hugo/common/herrors"
|
||||
"github.com/niklasfasching/go-org/org"
|
||||
|
||||
"github.com/BurntSushi/toml"
|
||||
toml "github.com/pelletier/go-toml/v2"
|
||||
"github.com/pkg/errors"
|
||||
"github.com/spf13/afero"
|
||||
"github.com/spf13/cast"
|
||||
|
Reference in New Issue
Block a user