hugolib: Add option to disable rendering of 404 page

Fixes #1889
Closes #2037
This commit is contained in:
digitalcraftsman 2016-04-03 00:22:31 +02:00 committed by Bjørn Erik Pedersen
parent 72bda5ad26
commit b7efbdc12f
3 changed files with 13 additions and 1 deletions

View file

@ -127,6 +127,7 @@ var (
canonifyURLs bool
cleanDestination bool
enableRobotsTXT bool
disable404 bool
disableRSS bool
disableSitemap bool
draft bool
@ -214,6 +215,7 @@ func initHugoBuildCommonFlags(cmd *cobra.Command) {
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 @@ func loadDefaultSettings() {
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)
@ -357,6 +360,9 @@ func InitializeConfig(subCmdVs ...*cobra.Command) error {
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)
}

View file

@ -96,7 +96,9 @@ Following is a list of Hugo-defined variables that you can configure and their c
# 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.

View file

@ -1769,6 +1769,10 @@ func (s *Site) renderHomePage() error {
}
}
if viper.GetBool("Disable404") {
return nil
}
// TODO(bep) reusing the Home Node smells trouble
n.URL = helpers.URLize("404.html")
n.IsHome = false