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 c4c19ad303)
This commit is contained in:
bep 2015-03-07 13:22:02 +01:00
parent 63ffb916d6
commit 851badcb7e

View file

@ -1249,12 +1249,6 @@ func (s *Site) RenderHomePage() error {
} }
} }
// 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.Url = helpers.Urlize("404.html")
n.Title = "404 Page not found" n.Title = "404 Page not found"
n.Permalink = s.permalink("404.html") n.Permalink = s.permalink("404.html")
@ -1274,6 +1268,8 @@ func (s *Site) RenderSitemap() error {
sitemapDefault := parseSitemap(viper.GetStringMap("Sitemap")) sitemapDefault := parseSitemap(viper.GetStringMap("Sitemap"))
optChanged := false
n := s.NewNode() n := s.NewNode()
// Prepend homepage to the list of pages // Prepend homepage to the list of pages
@ -1299,12 +1295,23 @@ 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"} smLayouts := []string{"sitemap.xml", "_default/sitemap.xml", "_internal/_default/sitemap.xml"}
if err := s.renderAndWriteXML("sitemap", "sitemap.xml", n, s.appendThemeTemplates(smLayouts)...); err != nil { if err := s.renderAndWriteXML("sitemap", "sitemap.xml", n, s.appendThemeTemplates(smLayouts)...); err != nil {
return err return err
} }
if optChanged {
s.PageTarget().(*target.PagePub).UglyUrls = viper.GetBool("UglyUrls")
}
return nil return nil
} }