mirror of
https://github.com/gohugoio/hugo.git
synced 2024-11-21 20:46:30 -05:00
parent
3cdf19e9b7
commit
1b0780dbeb
5 changed files with 35 additions and 15 deletions
|
@ -1940,18 +1940,11 @@ func (p *Page) addLangPathPrefixIfFlagSet(outfile string, should bool) string {
|
|||
}
|
||||
|
||||
func sectionsFromDir(dirname string) []string {
|
||||
sections := strings.Split(dirname, helpers.FilePathSeparator)
|
||||
if len(sections) == 1 {
|
||||
if sections[0] == "" {
|
||||
dirname = strings.Trim(dirname, helpers.FilePathSeparator)
|
||||
if dirname == "" {
|
||||
return nil
|
||||
}
|
||||
return sections
|
||||
}
|
||||
if len(sections) > 1 && sections[0] == "" {
|
||||
return sections[1:]
|
||||
}
|
||||
|
||||
return sections
|
||||
return strings.Split(dirname, helpers.FilePathSeparator)
|
||||
}
|
||||
|
||||
const (
|
||||
|
|
|
@ -134,7 +134,6 @@ func TestPageBundlerSite(t *testing.T) {
|
|||
th.assertFileContent(filepath.FromSlash("/work/public/cpath/2017/pageslug/cindex.html"), "TheContent")
|
||||
|
||||
assert.Equal("/a/b/", leafBundle2.RelPermalink())
|
||||
|
||||
}
|
||||
|
||||
})
|
||||
|
|
|
@ -21,6 +21,8 @@ import (
|
|||
"regexp"
|
||||
"strconv"
|
||||
"strings"
|
||||
|
||||
"github.com/gohugoio/hugo/helpers"
|
||||
)
|
||||
|
||||
// pathPattern represents a string which builds up a URL from attributes
|
||||
|
@ -160,7 +162,8 @@ func pageToPermalinkFilename(p *Page, _ string) (string, error) {
|
|||
name := p.File.TranslationBaseName()
|
||||
if name == "index" {
|
||||
// Page bundles; the directory name will hopefully have a better name.
|
||||
_, name = filepath.Split(p.File.Dir())
|
||||
dir := strings.TrimSuffix(p.File.Dir(), helpers.FilePathSeparator)
|
||||
_, name = filepath.Split(dir)
|
||||
}
|
||||
|
||||
return p.s.PathSpec.URLize(name), nil
|
||||
|
|
|
@ -162,9 +162,12 @@ func (fi *FileInfo) init() {
|
|||
}
|
||||
|
||||
func (sp *SourceSpec) NewFileInfo(baseDir, filename string, fi os.FileInfo) *FileInfo {
|
||||
dir, name := filepath.Split(filename)
|
||||
|
||||
dir = strings.TrimSuffix(dir, helpers.FilePathSeparator)
|
||||
dir, name := filepath.Split(filename)
|
||||
if !strings.HasSuffix(dir, helpers.FilePathSeparator) {
|
||||
dir = dir + helpers.FilePathSeparator
|
||||
}
|
||||
|
||||
baseDir = strings.TrimSuffix(baseDir, helpers.FilePathSeparator)
|
||||
|
||||
relDir := ""
|
||||
|
|
|
@ -14,9 +14,31 @@
|
|||
package source
|
||||
|
||||
import (
|
||||
"path/filepath"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestFileInfo(t *testing.T) {
|
||||
assert := require.New(t)
|
||||
|
||||
s := newTestSourceSpec()
|
||||
|
||||
for _, this := range []struct {
|
||||
base string
|
||||
filename string
|
||||
assert func(f *FileInfo)
|
||||
}{
|
||||
{"/a/", filepath.FromSlash("/a/b/page.md"), func(f *FileInfo) {
|
||||
assert.Equal(filepath.FromSlash("/a/b/page.md"), f.Filename())
|
||||
assert.Equal(filepath.FromSlash("b/"), f.Dir())
|
||||
assert.Equal(filepath.FromSlash("b/page.md"), f.Path())
|
||||
|
||||
}},
|
||||
} {
|
||||
f := s.NewFileInfo(this.base, this.filename, nil)
|
||||
this.assert(f)
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue