Create a struct with all of Hugo's config options

Primary motivation is documentation, but it will also hopefully simplify the code.

Also,

* Lower case the default output format names; this is in line with the custom ones (map keys) and how
it's treated all the places. This avoids doing `stringds.EqualFold` everywhere.

Closes #10896
Closes #10620
This commit is contained in:
Bjørn Erik Pedersen
2023-01-04 18:24:36 +01:00
parent 6aededf6b4
commit 241b21b0fd
337 changed files with 13377 additions and 14898 deletions

View File

@@ -23,6 +23,7 @@ import (
qt "github.com/frankban/quicktest"
"github.com/gohugoio/hugo/config"
"github.com/gohugoio/hugo/config/testconfig"
"github.com/gohugoio/hugo/deps"
"github.com/gohugoio/hugo/hugofs"
"github.com/spf13/afero"
@@ -82,10 +83,14 @@ func TestNSConfig(t *testing.T) {
t.Parallel()
c := qt.New(t)
v := config.NewWithTestDefaults()
afs := afero.NewMemMapFs()
v := config.New()
v.Set("workingDir", "/a/b")
conf := testconfig.GetTestConfig(afs, v)
bcfg := conf.BaseConfig()
fs := hugofs.NewFrom(afs, bcfg)
ns := New(&deps.Deps{Fs: hugofs.NewMem(v)})
ns := New(&deps.Deps{Fs: fs, Conf: conf})
for _, test := range configTests {
@@ -99,7 +104,7 @@ func TestNSConfig(t *testing.T) {
// cast path to string for afero.WriteFile
sp, err := cast.ToStringE(test.path)
c.Assert(err, qt.IsNil)
afero.WriteFile(ns.deps.Fs.Source, filepath.Join(v.GetString("workingDir"), sp), test.input, 0755)
afero.WriteFile(ns.deps.Fs.Source, filepath.Join(bcfg.WorkingDir, sp), test.input, 0755)
result, err := ns.Config(test.path)