summaryrefslogtreecommitdiffstats
path: root/hugolib/site_test.go
diff options
context:
space:
mode:
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2017-04-27 09:33:40 +0200
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2017-04-27 09:50:13 +0200
commitfea4fd86a324bf9679df23f8289887d91b42e919 (patch)
treef0f939afeea5188359ab34e55c40e936a3ed3392 /hugolib/site_test.go
parent656f818867ab3e3dd9a9cc067e6da2e54bd6548b (diff)
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
Diffstat (limited to 'hugolib/site_test.go')
-rw-r--r--hugolib/site_test.go16
1 files changed, 10 insertions, 6 deletions
diff --git a/hugolib/site_test.go b/hugolib/site_test.go
index 1df3c81c7..3868055e9 100644
--- a/hugolib/site_test.go
+++ b/hugolib/site_test.go
@@ -959,11 +959,13 @@ func TestRefLinking(t *testing.T) {
}{
// Note: There are no magic in the index.md name. This was fixed in Hugo 0.20.
// Before that, index.md would wrongly resolve to "/".
- {"index.md", "", true, "/index/"},
+ // See #3396 -- there is an ambiguity in the examples below, even if they do work.
+ // TODO(bep) better test cases
+ {"index.md", "", true, "/"},
{"common.md", "", true, "/level2/common/"},
{"3-root.md", "", true, "/level2/level3/3-root/"},
- {"index.md", "amp", true, "/amp/index/"},
- {"index.md", "amp", false, "http://auth/amp/index/"},
+ {"index.md", "amp", true, "/amp/"},
+ {"index.md", "amp", false, "http://auth/amp/"},
} {
if out, err := site.Info.refLink(test.link, currentPage, test.relative, test.outputFormat); err != nil || out != test.expected {
t.Errorf("[%d] Expected %s to resolve to (%s), got (%s) - error: %s", i, test.link, test.expected, out, err)
@@ -981,9 +983,11 @@ func TestSourceRelativeLinksing(t *testing.T) {
okresults := map[string]resultMap{
"index.md": map[string]string{
- "/docs/rootfile.md": "/rootfile/",
- "rootfile.md": "/rootfile/",
- "index.md": "/index/",
+ "/docs/rootfile.md": "/rootfile/",
+ "rootfile.md": "/rootfile/",
+ // See #3396 -- this may potentially be ambiguous (i.e. name conflict with home page).
+ // But the user have chosen so. This index.md patterns is more relevant in /sub-folders.
+ "index.md": "/",
"level2/2-root.md": "/level2/2-root/",
"/docs/level2/2-root.md": "/level2/2-root/",
"level2/level3/3-root.md": "/level2/level3/3-root/",