diff --git a/hugolib/site.go b/hugolib/site.go
index 00dbba74f..f3d6dccff 100644
--- a/hugolib/site.go
+++ b/hugolib/site.go
@@ -1268,8 +1268,6 @@ func (s *Site) RenderSitemap() error {
sitemapDefault := parseSitemap(viper.GetStringMap("Sitemap"))
- optChanged := false
-
n := s.NewNode()
// Prepend homepage to the list of pages
@@ -1295,23 +1293,12 @@ func (s *Site) RenderSitemap() error {
}
}
- // Force `UglyUrls` option to force `sitemap.xml` file name
- switch s.PageTarget().(type) {
- case *target.Filesystem:
- s.PageTarget().(*target.PagePub).UglyUrls = true
- optChanged = true
- }
-
smLayouts := []string{"sitemap.xml", "_default/sitemap.xml", "_internal/_default/sitemap.xml"}
if err := s.renderAndWriteXML("sitemap", "sitemap.xml", n, s.appendThemeTemplates(smLayouts)...); err != nil {
return err
}
- if optChanged {
- s.PageTarget().(*target.PagePub).UglyUrls = viper.GetBool("UglyUrls")
- }
-
return nil
}
diff --git a/hugolib/site_test.go b/hugolib/site_test.go
index 848ead7e6..92781ca18 100644
--- a/hugolib/site_test.go
+++ b/hugolib/site_test.go
@@ -50,6 +50,20 @@ more text
`
)
+func createAndRenderPages(t *testing.T, s *Site) {
+ if err := s.CreatePages(); err != nil {
+ t.Fatalf("Unable to create pages: %s", err)
+ }
+
+ if err := s.BuildSiteMeta(); err != nil {
+ t.Fatalf("Unable to build site metadata: %s", err)
+ }
+
+ if err := s.RenderPages(); err != nil {
+ t.Fatalf("Unable to render pages. %s", err)
+ }
+}
+
func templatePrep(s *Site) {
s.Tmpl = tpl.New()
s.Tmpl.LoadTemplates(s.absLayoutDir())
@@ -293,6 +307,77 @@ func TestDraftAndFutureRender(t *testing.T) {
viper.Set("BuildFuture", false)
}
+// Issue #939
+func Test404ShouldAlwaysHaveUglyUrls(t *testing.T) {
+ for _, uglyUrls := range []bool{true, false} {
+ doTest404ShouldAlwaysHaveUglyUrls(t, uglyUrls)
+ }
+}
+
+func doTest404ShouldAlwaysHaveUglyUrls(t *testing.T, uglyUrls bool) {
+ viper.Set("verbose", true)
+ viper.Set("baseurl", "http://auth/bub")
+ viper.Set("DisableSitemap", false)
+ viper.Set("DisableRSS", false)
+
+ viper.Set("UglyUrls", uglyUrls)
+
+ sources := []source.ByteSource{
+ {filepath.FromSlash("sect/doc1.html"), []byte("---\nmarkup: markdown\n---\n# title\nsome *content*")},
+ }
+
+ s := &Site{
+ Source: &source.InMemorySource{ByteSource: sources},
+ Targets: targetList{Page: &target.PagePub{UglyUrls: uglyUrls}},
+ }
+
+ s.initializeSiteInfo()
+ templatePrep(s)
+
+ must(s.addTemplate("index.html", "Home Sweet Home"))
+ must(s.addTemplate("_default/single.html", "{{.Content}}"))
+ must(s.addTemplate("404.html", "Page Not Found"))
+
+ // make sure the XML files also end up with ugly urls
+ must(s.addTemplate("rss.xml", "
some content
\n"}, + {filepath.FromSlash("404.html"), "Page Not Found"}, + {filepath.FromSlash("index.xml"), "\n