mirror of
https://github.com/gohugoio/hugo.git
synced 2024-11-21 20:46:30 -05:00
parent
32c967551b
commit
1aacfced39
3 changed files with 31 additions and 9 deletions
|
@ -62,7 +62,8 @@ func (h *HugoSites) newPage(m *pageMeta) (*pageState, *paths.Path, error) {
|
||||||
|
|
||||||
if pcfg.Path != "" {
|
if pcfg.Path != "" {
|
||||||
s := m.pageConfig.Path
|
s := m.pageConfig.Path
|
||||||
if !paths.HasExt(s) {
|
// Paths from content adapters should never have any extension.
|
||||||
|
if pcfg.IsFromContentAdapter || !paths.HasExt(s) {
|
||||||
var (
|
var (
|
||||||
isBranch bool
|
isBranch bool
|
||||||
isBranchSet bool
|
isBranchSet bool
|
||||||
|
|
|
@ -477,3 +477,20 @@ baseURL = "https://example.com"
|
||||||
b.AssertFileExists("public/docs/p1/index.html", true)
|
b.AssertFileExists("public/docs/p1/index.html", true)
|
||||||
b.AssertFileExists("public/docs/p2/index.html", false)
|
b.AssertFileExists("public/docs/p2/index.html", false)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestPagesFromGoPathsWithDotsIssue12493(t *testing.T) {
|
||||||
|
t.Parallel()
|
||||||
|
|
||||||
|
files := `
|
||||||
|
-- hugo.toml --
|
||||||
|
disableKinds = ['home','section','rss','sitemap','taxonomy','term']
|
||||||
|
-- content/_content.gotmpl --
|
||||||
|
{{ .AddPage (dict "path" "s-1.2.3/p-4.5.6" "title" "p-4.5.6") }}
|
||||||
|
-- layouts/_default/single.html --
|
||||||
|
{{ .Title }}
|
||||||
|
`
|
||||||
|
|
||||||
|
b := hugolib.Test(t, files)
|
||||||
|
|
||||||
|
b.AssertFileExists("public/s-1.2.3/p-4.5.6/index.html", true)
|
||||||
|
}
|
||||||
|
|
|
@ -151,14 +151,6 @@ func (p *PageConfig) Compile(basePath string, pagesFromData bool, ext string, lo
|
||||||
p.Path = path.Join(basePath, p.Path)
|
p.Path = path.Join(basePath, p.Path)
|
||||||
}
|
}
|
||||||
|
|
||||||
if pagesFromData {
|
|
||||||
// Note that NormalizePathStringBasic will make sure that we don't preserve the unnormalized path.
|
|
||||||
// We do that when we create pages from the file system; mostly for backward compatibility,
|
|
||||||
// but also because people tend to use use the filename to name their resources (with spaces and all),
|
|
||||||
// and this isn't relevant when creating resources from an API where it's easy to add textual meta data.
|
|
||||||
p.Path = paths.NormalizePathStringBasic(p.Path)
|
|
||||||
}
|
|
||||||
|
|
||||||
if p.Content.Markup == "" && p.Content.MediaType == "" {
|
if p.Content.Markup == "" && p.Content.MediaType == "" {
|
||||||
if ext == "" {
|
if ext == "" {
|
||||||
ext = "md"
|
ext = "md"
|
||||||
|
@ -190,6 +182,18 @@ func (p *PageConfig) Compile(basePath string, pagesFromData bool, ext string, lo
|
||||||
p.Content.Markup = p.ContentMediaType.SubType
|
p.Content.Markup = p.ContentMediaType.SubType
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if pagesFromData {
|
||||||
|
if p.Kind == "" {
|
||||||
|
p.Kind = kinds.KindPage
|
||||||
|
}
|
||||||
|
|
||||||
|
// Note that NormalizePathStringBasic will make sure that we don't preserve the unnormalized path.
|
||||||
|
// We do that when we create pages from the file system; mostly for backward compatibility,
|
||||||
|
// but also because people tend to use use the filename to name their resources (with spaces and all),
|
||||||
|
// and this isn't relevant when creating resources from an API where it's easy to add textual meta data.
|
||||||
|
p.Path = paths.NormalizePathStringBasic(p.Path)
|
||||||
|
}
|
||||||
|
|
||||||
if p.Cascade != nil {
|
if p.Cascade != nil {
|
||||||
cascade, err := page.DecodeCascade(logger, p.Cascade)
|
cascade, err := page.DecodeCascade(logger, p.Cascade)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
Loading…
Reference in a new issue