ref: b7efbdc12f0a96639b445f7920b6477d88beb744
parent: 72bda5ad268866e02bfab7ccf76d9224db6ec7b6
author: digitalcraftsman <[email protected]>
date: Sat Apr 2 20:22:31 EDT 2016
hugolib: Add option to disable rendering of 404 page Fixes #1889 Closes #2037
--- a/commands/hugo.go
+++ b/commands/hugo.go
@@ -127,6 +127,7 @@
canonifyURLs bool
cleanDestination bool
enableRobotsTXT bool
+ disable404 bool
disableRSS bool
disableSitemap bool
draft bool
@@ -214,6 +215,7 @@
cmd.Flags().BoolVar(&cleanDestination, "cleanDestinationDir", false, "Remove files from destination not found in static directories")
cmd.Flags().BoolVarP(&draft, "buildDrafts", "D", false, "include content marked as draft")
cmd.Flags().BoolVarP(&future, "buildFuture", "F", false, "include content with publishdate in the future")
+ cmd.Flags().BoolVar(&disable404, "disable404", false, "Do not render 404 page")
cmd.Flags().BoolVar(&disableRSS, "disableRSS", false, "Do not build RSS files")
cmd.Flags().BoolVar(&disableSitemap, "disableSitemap", false, "Do not build Sitemap file")
cmd.Flags().StringVarP(&source, "source", "s", "", "filesystem path to read files relative from")
@@ -266,6 +268,7 @@
viper.SetDefault("cleanDestinationDir", false)
viper.SetDefault("Watch", false)
viper.SetDefault("MetaDataFormat", "toml")
+ viper.SetDefault("Disable404", false)
viper.SetDefault("DisableRSS", false)
viper.SetDefault("DisableSitemap", false)
viper.SetDefault("DisableRobotsTXT", false)
@@ -356,6 +359,9 @@
}
if flagChanged(cmdV.Flags(), "canonifyURLs") {
viper.Set("CanonifyURLs", canonifyURLs)
+ }
+ if flagChanged(cmdV.Flags(), "disable404") {
+ viper.Set("Disable404", disable404)
}
if flagChanged(cmdV.Flags(), "disableRSS") {
viper.Set("DisableRSS", disableRSS)
--- a/docs/content/overview/configuration.md
+++ b/docs/content/overview/configuration.md
@@ -96,7 +96,9 @@
# Do not build Sitemap file
disableSitemap: false
# Build robots.txt file
- enableRobotsTXT: false
+ enableRobotsTXT: false
+ # Do not render 404 page
+ disable404: false
# edit new content with this editor, if provided
editor: ""
# Enable Emoji emoticons support for page content.
--- a/hugolib/site.go
+++ b/hugolib/site.go
@@ -1769,6 +1769,10 @@
}
}
+ if viper.GetBool("Disable404") {
+ return nil
+ }
+
// TODO(bep) reusing the Home Node smells trouble
n.URL = helpers.URLize("404.html")
n.IsHome = false