shithub: hugo

Download patch

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