Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/gohugoio/hugo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--hugolib/page_permalink_test.go40
-rw-r--r--hugolib/site_render.go4
-rw-r--r--resources/page/page_paths.go5
3 files changed, 47 insertions, 2 deletions
diff --git a/hugolib/page_permalink_test.go b/hugolib/page_permalink_test.go
index ed6eb11e3..9df10cd53 100644
--- a/hugolib/page_permalink_test.go
+++ b/hugolib/page_permalink_test.go
@@ -104,3 +104,43 @@ Content
}
}
+
+func TestRelativeURLInFrontMatter(t *testing.T) {
+
+ config := `
+
+defaultContentLanguage = "en"
+defaultContentLanguageInSubdir = false
+
+[Languages]
+[Languages.en]
+weight = 10
+contentDir = "content/en"
+[Languages.nn]
+weight = 20
+contentDir = "content/nn"
+
+`
+
+ pageTempl := `---
+title: "A page"
+url: %q
+---
+
+Some content.
+`
+
+ b := newTestSitesBuilder(t).WithConfigFile("toml", config)
+ b.WithContent("content/en/blog/page1.md", fmt.Sprintf(pageTempl, "myblog/p1/"))
+ b.WithContent("content/en/blog/_index.md", fmt.Sprintf(pageTempl, "this-is-my-english-blog"))
+ b.WithContent("content/nn/blog/page1.md", fmt.Sprintf(pageTempl, "myblog/p1/"))
+ b.WithContent("content/nn/blog/_index.md", fmt.Sprintf(pageTempl, "this-is-my-blog"))
+
+ b.Build(BuildCfg{})
+
+ b.AssertFileContent("public/nn/myblog/p1/index.html", "Single: A page|Hello|nn|RelPermalink: /nn/myblog/p1/|")
+ b.AssertFileContent("public/nn/this-is-my-blog/index.html", "List Page 1|A page|Hello|/nn/this-is-my-blog/|")
+ b.AssertFileContent("public/this-is-my-english-blog/index.html", "List Page 1|A page|Hello|/this-is-my-english-blog/|")
+ b.AssertFileContent("public/myblog/p1/index.html", "Single: A page|Hello|en|RelPermalink: /myblog/p1/|Permalink: /myblog/p1/|")
+
+}
diff --git a/hugolib/site_render.go b/hugolib/site_render.go
index 3c0897d2e..cf3755b92 100644
--- a/hugolib/site_render.go
+++ b/hugolib/site_render.go
@@ -208,7 +208,7 @@ func (s *Site) render404() error {
s: s,
kind: kind404,
urlPaths: pagemeta.URLPath{
- URL: path.Join(s.GetURLLanguageBasePath(), "404.html"),
+ URL: "404.html",
},
},
output.HTMLFormat,
@@ -271,7 +271,7 @@ func (s *Site) renderRobotsTXT() error {
s: s,
kind: kindRobotsTXT,
urlPaths: pagemeta.URLPath{
- URL: path.Join(s.GetURLLanguageBasePath(), "robots.txt"),
+ URL: "robots.txt",
},
},
output.RobotsTxtFormat)
diff --git a/resources/page/page_paths.go b/resources/page/page_paths.go
index 160c225b1..89616d421 100644
--- a/resources/page/page_paths.go
+++ b/resources/page/page_paths.go
@@ -124,6 +124,11 @@ func CreateTargetPaths(d TargetPathDescriptor) (tp TargetPaths) {
}
+ if d.URL != "" && !strings.HasPrefix(d.URL, "/") {
+ // Treat this as a context relative URL
+ d.ForcePrefix = true
+ }
+
pagePath := slash
var (