mirror of
https://github.com/gohugoio/hugo.git
synced 2024-05-11 05:54:58 +00:00
hugolib: Avoid index.md in /index/index.html
Hugo 0.20 broke some sites that grouped their blog post and images together in subfolders. This commit re-introduces that behaviour: * If the file base name resolves to the same as the base name for the output type (i.e. "index" for HTML), the user probably meant it, so we treat that as an `uglyURL`, i.e. `my-blog-post-1.md`=> `/my-blog-post-1/index.html` * The main use case for this is to group blog post and images together. * Note that for the top level folder there will be a potential name conflict with a `section` `index.html` (if enabled) * This issue will not be relevant for subfolders in sections * Hugo will soon add support for nested sections, but we will have to find a way to separate them from the rest (`/content/_mysubsection` maybe). Fixes #3396
This commit is contained in:
@@ -141,6 +141,15 @@ func createTargetPath(d targetPathDescriptor) string {
|
||||
|
||||
isUgly := d.UglyURLs && !d.Type.NoUgly
|
||||
|
||||
// If the page output format's base name is the same as the page base name,
|
||||
// we treat it as an ugly path, i.e.
|
||||
// my-blog-post-1/index.md => my-blog-post-1/index.html
|
||||
// (given the default values for that content file, i.e. no slug set etc.).
|
||||
// This introduces the behaviour from < Hugo 0.20, see issue #3396.
|
||||
if d.BaseName != "" && d.BaseName == d.Type.BaseName {
|
||||
isUgly = true
|
||||
}
|
||||
|
||||
if d.Kind != KindPage && len(d.Sections) > 0 {
|
||||
pagePath = filepath.Join(d.Sections...)
|
||||
needsBase = false
|
||||
|
Reference in New Issue
Block a user