ref: 851badcb7e819ad425c7eee2f30eee9a73bc37ea
parent: 63ffb916d67f9953320b402871c532c0b7a80efc
author: bep <[email protected]>
date: Sat Mar 7 08:22:02 EST 2015
There is only one s.PageTarget() - so we cannot change it, even tempoararily. We have to find another solution to this. ... Prevent 404.html from prettifying into 404/index.html Restore @realchaseadams's commit 348e123 "Force `UglyUrls` option to force `404.html` file name" which got lost after some refactoring (commit 8db3c0b). Remove the equivalent "force `UglyUrls`" code for `sitemap.xml` because the refactored code now calls `renderAndWriteXML()` which uses `WriteDestFile()` which does not prettify a filename. Fixes #939 (reverted from commit c4c19ad303cb11616a7291bdbeec997e59b6d24e)
--- a/hugolib/site.go
+++ b/hugolib/site.go
@@ -1249,12 +1249,6 @@
}
}
- // Force `UglyUrls` option to force `404.html` file name
- if !s.PageTarget().(*target.PagePub).UglyUrls {
- s.PageTarget().(*target.PagePub).UglyUrls = true
- defer func() { s.PageTarget().(*target.PagePub).UglyUrls = false }()
- }
-
n.Url = helpers.Urlize("404.html")
n.Title = "404 Page not found"
n.Permalink = s.permalink("404.html")
@@ -1274,6 +1268,8 @@
sitemapDefault := parseSitemap(viper.GetStringMap("Sitemap"))
+ optChanged := false
+
n := s.NewNode()
// Prepend homepage to the list of pages
@@ -1299,10 +1295,21 @@
}
}
+ // 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