diff options
Diffstat (limited to 'helpers/path.go')
-rw-r--r-- | helpers/path.go | 46 |
1 files changed, 9 insertions, 37 deletions
diff --git a/helpers/path.go b/helpers/path.go index 57f02da68..44d53d018 100644 --- a/helpers/path.go +++ b/helpers/path.go @@ -277,6 +277,12 @@ func Ext(in string) string { return ext } +// FileAndExt takes a path and returns the file and extension separated, +// the extension including the delmiter, i.e. ".md". +func FileAndExt(in string) (string, string) { + return fileAndExt(in, fpb) +} + // Filename takes a path, strips out the extension, // and returns the name of the file. func Filename(in string) (name string) { @@ -348,40 +354,6 @@ func GetRelativePath(path, base string) (final string, err error) { return name, nil } -// GuessSection returns the section given a source path. -// A section is the part between the root slash and the second slash -// or before the first slash. -func GuessSection(in string) string { - parts := strings.Split(in, FilePathSeparator) - // This will include an empty entry before and after paths with leading and trailing slashes - // eg... /sect/one/ -> ["", "sect", "one", ""] - - // Needs to have at least a value and a slash - if len(parts) < 2 { - return "" - } - - // If it doesn't have a leading slash and value and file or trailing slash, then return "" - if parts[0] == "" && len(parts) < 3 { - return "" - } - - // strip leading slash - if parts[0] == "" { - parts = parts[1:] - } - - // if first directory is "content", return second directory - if parts[0] == "content" { - if len(parts) > 2 { - return parts[1] - } - return "" - } - - return parts[0] -} - // PathPrep prepares the path using the uglify setting to create paths on // either the form /section/name/index.html or /section/name.html. func PathPrep(ugly bool, in string) string { @@ -504,7 +476,7 @@ func SymbolicWalk(fs afero.Fs, root string, walker filepath.WalkFunc) error { } func getRealFileInfo(fs afero.Fs, path string) (os.FileInfo, string, error) { - fileInfo, err := lstatIfOs(fs, path) + fileInfo, err := LstatIfOs(fs, path) realPath := path if err != nil { @@ -516,7 +488,7 @@ func getRealFileInfo(fs afero.Fs, path string) (os.FileInfo, string, error) { if err != nil { return nil, "", fmt.Errorf("Cannot read symbolic link '%s', error was: %s", path, err) } - fileInfo, err = lstatIfOs(fs, link) + fileInfo, err = LstatIfOs(fs, link) if err != nil { return nil, "", fmt.Errorf("Cannot stat '%s', error was: %s", link, err) } @@ -539,7 +511,7 @@ func GetRealPath(fs afero.Fs, path string) (string, error) { // Code copied from Afero's path.go // if the filesystem is OsFs use Lstat, else use fs.Stat -func lstatIfOs(fs afero.Fs, path string) (info os.FileInfo, err error) { +func LstatIfOs(fs afero.Fs, path string) (info os.FileInfo, err error) { _, ok := fs.(*afero.OsFs) if ok { info, err = os.Lstat(path) |