Misc doc, code refactoring to improve documentation

This commit is contained in:
Bjørn Erik Pedersen
2022-12-30 09:20:58 +01:00
parent 3c51625c71
commit e402d91ee1
47 changed files with 238 additions and 95 deletions

View File

@@ -15,11 +15,11 @@
package path
import (
"fmt"
_path "path"
"path/filepath"
"strings"
"github.com/gohugoio/hugo/common/paths"
"github.com/gohugoio/hugo/deps"
"github.com/spf13/cast"
)
@@ -36,17 +36,6 @@ type Namespace struct {
deps *deps.Deps
}
// DirFile holds the result from path.Split.
type DirFile struct {
Dir string
File string
}
// Used in test.
func (df DirFile) String() string {
return fmt.Sprintf("%s|%s", df.Dir, df.File)
}
// Ext returns the file name extension used by path.
// The extension is the suffix beginning at the final dot
// in the final slash-separated element of path;
@@ -117,15 +106,15 @@ func (ns *Namespace) BaseName(path any) (string, error) {
// The input path is passed into filepath.ToSlash converting any Windows slashes
// to forward slashes.
// The returned values have the property that path = dir+file.
func (ns *Namespace) Split(path any) (DirFile, error) {
func (ns *Namespace) Split(path any) (paths.DirFile, error) {
spath, err := cast.ToStringE(path)
if err != nil {
return DirFile{}, err
return paths.DirFile{}, err
}
spath = filepath.ToSlash(spath)
dir, file := _path.Split(spath)
return DirFile{Dir: dir, File: file}, nil
return paths.DirFile{Dir: dir, File: file}, nil
}
// Join joins any number of path elements into a single path, adding a

View File

@@ -18,6 +18,7 @@ import (
"testing"
qt "github.com/frankban/quicktest"
"github.com/gohugoio/hugo/common/paths"
"github.com/gohugoio/hugo/config"
"github.com/gohugoio/hugo/deps"
)
@@ -157,7 +158,7 @@ func TestJoin(t *testing.T) {
`baz/foo/bar.txt`,
},
{
[]any{"", "baz", DirFile{"big", "john"}, filepath.FromSlash(`foo/bar.txt`)},
[]any{"", "baz", paths.DirFile{Dir: "big", File: "john"}, filepath.FromSlash(`foo/bar.txt`)},
`baz/big|john/foo/bar.txt`,
},
{nil, ""},
@@ -186,10 +187,10 @@ func TestSplit(t *testing.T) {
path any
expect any
}{
{filepath.FromSlash(`foo/bar.txt`), DirFile{`foo/`, `bar.txt`}},
{filepath.FromSlash(`foo/bar/txt `), DirFile{`foo/bar/`, `txt `}},
{`foo.bar.txt`, DirFile{``, `foo.bar.txt`}},
{``, DirFile{``, ``}},
{filepath.FromSlash(`foo/bar.txt`), paths.DirFile{Dir: `foo/`, File: `bar.txt`}},
{filepath.FromSlash(`foo/bar/txt `), paths.DirFile{Dir: `foo/bar/`, File: `txt `}},
{`foo.bar.txt`, paths.DirFile{Dir: ``, File: `foo.bar.txt`}},
{``, paths.DirFile{Dir: ``, File: ``}},
// errors
{tstNoStringer{}, false},
} {