diff options
author | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2017-03-09 19:19:29 +0100 |
---|---|---|
committer | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2017-03-27 15:43:56 +0200 |
commit | 6bf010fed432e5574e19fd2946ee6397d895950e (patch) | |
tree | 75282ccbd526adc8dba62f9392db282b3bcec49f /hugolib/site_test.go | |
parent | c8fff9501d424882a42f750800d9982ec47df640 (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.go | 81 |
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/", }, } |