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 {
|
func sectionsFromDir(dirname string) []string {
|
||||||
sections := strings.Split(dirname, helpers.FilePathSeparator)
|
dirname = strings.Trim(dirname, helpers.FilePathSeparator)
|
||||||
if len(sections) == 1 {
|
if dirname == "" {
|
||||||
if sections[0] == "" {
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
return sections
|
return strings.Split(dirname, helpers.FilePathSeparator)
|
||||||
}
|
|
||||||
if len(sections) > 1 && sections[0] == "" {
|
|
||||||
return sections[1:]
|
|
||||||
}
|
|
||||||
|
|
||||||
return sections
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
|
|
@ -134,7 +134,6 @@ func TestPageBundlerSite(t *testing.T) {
|
||||||
th.assertFileContent(filepath.FromSlash("/work/public/cpath/2017/pageslug/cindex.html"), "TheContent")
|
th.assertFileContent(filepath.FromSlash("/work/public/cpath/2017/pageslug/cindex.html"), "TheContent")
|
||||||
|
|
||||||
assert.Equal("/a/b/", leafBundle2.RelPermalink())
|
assert.Equal("/a/b/", leafBundle2.RelPermalink())
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
})
|
})
|
||||||
|
|
|
@ -21,6 +21,8 @@ import (
|
||||||
"regexp"
|
"regexp"
|
||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
|
"github.com/gohugoio/hugo/helpers"
|
||||||
)
|
)
|
||||||
|
|
||||||
// pathPattern represents a string which builds up a URL from attributes
|
// 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()
|
name := p.File.TranslationBaseName()
|
||||||
if name == "index" {
|
if name == "index" {
|
||||||
// Page bundles; the directory name will hopefully have a better name.
|
// 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
|
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 {
|
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)
|
baseDir = strings.TrimSuffix(baseDir, helpers.FilePathSeparator)
|
||||||
|
|
||||||
relDir := ""
|
relDir := ""
|
||||||
|
|
|
@ -14,9 +14,31 @@
|
||||||
package source
|
package source
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"path/filepath"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
|
"github.com/stretchr/testify/require"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestFileInfo(t *testing.T) {
|
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