summaryrefslogtreecommitdiffstats
path: root/hugolib/site_test.go
diff options
context:
space:
mode:
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2017-03-09 19:19:29 +0100
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2017-03-27 15:43:56 +0200
commit6bf010fed432e5574e19fd2946ee6397d895950e (patch)
tree75282ccbd526adc8dba62f9392db282b3bcec49f /hugolib/site_test.go
parentc8fff9501d424882a42f750800d9982ec47df640 (diff)
hugolib: Refactor/-work the permalink/target path logic
This is a pretty fundamental change in Hugo, but absolutely needed if we should have any hope of getting "multiple outputs" done. This commit's goal is to say: * Every file target path is created by `createTargetPath`, i.e. one function for all. * That function takes every page and site parameter into account, to avoid fragile string parsing to uglify etc. later on. * The path creation logic has full test coverage. * All permalinks, paginator URLs etc. are then built on top of that same logic. Fixes #1252 Fixes #2110 Closes #2374 Fixes #1885 Fixes #3102 Fixes #3179 Fixes #1641 Fixes #1989
Diffstat (limited to 'hugolib/site_test.go')
-rw-r--r--hugolib/site_test.go81
1 files changed, 16 insertions, 65 deletions
diff --git a/hugolib/site_test.go b/hugolib/site_test.go
index b8a5eb211..8204ee99e 100644
--- a/hugolib/site_test.go
+++ b/hugolib/site_test.go
@@ -958,7 +958,9 @@ func TestRefLinking(t *testing.T) {
// refLink doesn't use the location of the current page to work out reflinks
okresults := map[string]string{
- "index.md": "/",
+ // 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": "/index/",
"common.md": "/level2/common/",
"3-root.md": "/level2/level3/3-root/",
}
@@ -979,110 +981,59 @@ func TestSourceRelativeLinksing(t *testing.T) {
okresults := map[string]resultMap{
"index.md": map[string]string{
"/docs/rootfile.md": "/rootfile/",
- "/docs/index.md": "/",
"rootfile.md": "/rootfile/",
- "index.md": "/",
+ "index.md": "/index/",
"level2/2-root.md": "/level2/2-root/",
- "level2/index.md": "/level2/",
"/docs/level2/2-root.md": "/level2/2-root/",
- "/docs/level2/index.md": "/level2/",
"level2/level3/3-root.md": "/level2/level3/3-root/",
- "level2/level3/index.md": "/level2/level3/",
"/docs/level2/level3/3-root.md": "/level2/level3/3-root/",
- "/docs/level2/level3/index.md": "/level2/level3/",
"/docs/level2/2-root/": "/level2/2-root/",
- "/docs/level2/": "/level2/",
"/docs/level2/2-root": "/level2/2-root/",
- "/docs/level2": "/level2/",
"/level2/2-root/": "/level2/2-root/",
- "/level2/": "/level2/",
"/level2/2-root": "/level2/2-root/",
- "/level2": "/level2/",
}, "rootfile.md": map[string]string{
"/docs/rootfile.md": "/rootfile/",
- "/docs/index.md": "/",
"rootfile.md": "/rootfile/",
- "index.md": "/",
"level2/2-root.md": "/level2/2-root/",
- "level2/index.md": "/level2/",
"/docs/level2/2-root.md": "/level2/2-root/",
- "/docs/level2/index.md": "/level2/",
"level2/level3/3-root.md": "/level2/level3/3-root/",
- "level2/level3/index.md": "/level2/level3/",
"/docs/level2/level3/3-root.md": "/level2/level3/3-root/",
- "/docs/level2/level3/index.md": "/level2/level3/",
}, "level2/2-root.md": map[string]string{
"../rootfile.md": "/rootfile/",
- "../index.md": "/",
"/docs/rootfile.md": "/rootfile/",
- "/docs/index.md": "/",
"2-root.md": "/level2/2-root/",
- "index.md": "/level2/",
"../level2/2-root.md": "/level2/2-root/",
- "../level2/index.md": "/level2/",
"./2-root.md": "/level2/2-root/",
- "./index.md": "/level2/",
- "/docs/level2/index.md": "/level2/",
"/docs/level2/2-root.md": "/level2/2-root/",
"level3/3-root.md": "/level2/level3/3-root/",
- "level3/index.md": "/level2/level3/",
- "../level2/level3/index.md": "/level2/level3/",
"../level2/level3/3-root.md": "/level2/level3/3-root/",
- "/docs/level2/level3/index.md": "/level2/level3/",
"/docs/level2/level3/3-root.md": "/level2/level3/3-root/",
}, "level2/index.md": map[string]string{
"../rootfile.md": "/rootfile/",
- "../index.md": "/",
"/docs/rootfile.md": "/rootfile/",
- "/docs/index.md": "/",
"2-root.md": "/level2/2-root/",
- "index.md": "/level2/",
"../level2/2-root.md": "/level2/2-root/",
- "../level2/index.md": "/level2/",
"./2-root.md": "/level2/2-root/",
- "./index.md": "/level2/",
- "/docs/level2/index.md": "/level2/",
"/docs/level2/2-root.md": "/level2/2-root/",
"level3/3-root.md": "/level2/level3/3-root/",
- "level3/index.md": "/level2/level3/",
- "../level2/level3/index.md": "/level2/level3/",
"../level2/level3/3-root.md": "/level2/level3/3-root/",
- "/docs/level2/level3/index.md": "/level2/level3/",
"/docs/level2/level3/3-root.md": "/level2/level3/3-root/",
}, "level2/level3/3-root.md": map[string]string{
- "../../rootfile.md": "/rootfile/",
- "../../index.md": "/",
- "/docs/rootfile.md": "/rootfile/",
- "/docs/index.md": "/",
- "../2-root.md": "/level2/2-root/",
- "../index.md": "/level2/",
- "/docs/level2/2-root.md": "/level2/2-root/",
- "/docs/level2/index.md": "/level2/",
- "3-root.md": "/level2/level3/3-root/",
- "index.md": "/level2/level3/",
- "./3-root.md": "/level2/level3/3-root/",
- "./index.md": "/level2/level3/",
- // "../level2/level3/3-root.md": "/level2/level3/3-root/",
- // "../level2/level3/index.md": "/level2/level3/",
+ "../../rootfile.md": "/rootfile/",
+ "/docs/rootfile.md": "/rootfile/",
+ "../2-root.md": "/level2/2-root/",
+ "/docs/level2/2-root.md": "/level2/2-root/",
+ "3-root.md": "/level2/level3/3-root/",
+ "./3-root.md": "/level2/level3/3-root/",
"/docs/level2/level3/3-root.md": "/level2/level3/3-root/",
- "/docs/level2/level3/index.md": "/level2/level3/",
}, "level2/level3/index.md": map[string]string{
- "../../rootfile.md": "/rootfile/",
- "../../index.md": "/",
- "/docs/rootfile.md": "/rootfile/",
- "/docs/index.md": "/",
- "../2-root.md": "/level2/2-root/",
- "../index.md": "/level2/",
- "/docs/level2/2-root.md": "/level2/2-root/",
- "/docs/level2/index.md": "/level2/",
- "3-root.md": "/level2/level3/3-root/",
- "index.md": "/level2/level3/",
- "./3-root.md": "/level2/level3/3-root/",
- "./index.md": "/level2/level3/",
- // "../level2/level3/3-root.md": "/level2/level3/3-root/",
- // "../level2/level3/index.md": "/level2/level3/",
+ "../../rootfile.md": "/rootfile/",
+ "/docs/rootfile.md": "/rootfile/",
+ "../2-root.md": "/level2/2-root/",
+ "/docs/level2/2-root.md": "/level2/2-root/",
+ "3-root.md": "/level2/level3/3-root/",
+ "./3-root.md": "/level2/level3/3-root/",
"/docs/level2/level3/3-root.md": "/level2/level3/3-root/",
- "/docs/level2/level3/index.md": "/level2/level3/",
},
}