+++
title = 'hugo预览所有内容'
date = 2024-06-29T21:15:00+08:00
+++
问题
使用hugo server生成的pages数量是10,使用hugo server -D生成的是20 怎么让hugo server生成20个页面
$ hugo server
Watching for changes in /Users/devinhao/Documents/gohugo/test/{archetypes,assets,content,data,i18n,layouts,static,themes}
Watching for config changes in /Users/devinhao/Documents/gohugo/test/hugo.toml
Start building sites …
hugo v0.128.0+extended darwin/arm64 BuildDate=2024-06-25T16:15:48Z VendorInfo=brew
| EN
-------------------+-----
Pages | 10
Paginator pages | 0
Non-page files | 0
Static files | 12
Processed images | 0
Aliases | 4
Cleaned | 0
Built in 10 ms
Environment: "development"
Serving pages from disk
Running in Fast Render Mode. For full rebuilds on change: hugo server --disableFastRender
Web Server is available at http://localhost:1313/ (bind address 127.0.0.1)
Press Ctrl+C to stop
显示如下:

$ hugo server -D
Watching for changes in /Users/devinhao/Documents/gohugo/test/{archetypes,assets,content,data,i18n,layouts,static,themes}
Watching for config changes in /Users/devinhao/Documents/gohugo/test/hugo.toml
Start building sites …
hugo v0.128.0+extended darwin/arm64 BuildDate=2024-06-25T16:15:48Z VendorInfo=brew
WARN deprecated: .Site.DisqusShortname was deprecated in Hugo v0.120.0 and will be removed in a future release. Use .Site.Config.Services.Disqus.Shortname instead.
| EN
-------------------+-----
Pages | 19
Paginator pages | 0
Non-page files | 0
Static files | 12
Processed images | 0
Aliases | 4
Cleaned | 0
Built in 47 ms
Environment: "development"
Serving pages from disk
Running in Fast Render Mode. For full rebuilds on change: hugo server --disableFastRender
Web Server is available at http://localhost:1313/ (bind address 127.0.0.1)
Press Ctrl+C to stop
显示如下:

解决方案
经过查阅官方文档,需要检查的地方如下:
1.文章的markdown文件中是否有写draft=true,默认标记了就不会发布
+++
title = 'My First Post'
date = 2023-10-03T18:58:55+08:00
draft = true
+++
2.hugo.yaml文件中是否配置了buildDrafts = true、buildFuture = true、buildExpired = true
3.直接使用hugo -D -F -E会打印所有内容(包含草稿)
在 Hugo 中,hugo server 命令默认只会生成已发布的内容。如果你想让 hugo server 生成所有内容,包括草稿、未来发布的内容和过期的内容,你可以使用 -D(草稿)、-F(未来发布)和 -E(过期)标志。
要使 hugo server 始终生成所有内容,你可以使用以下命令:
hugo server -D -F -E
如果你只关心生成草稿内容(因为默认情况下 hugo server 不会生成草稿),那么只需要使用 -D 标志:
hugo server -D
这将确保在本地开发服务器上生成草稿内容,从而看到所有 19 个页面。
配置文件设置
如果你希望在每次运行 hugo server 时都包含草稿、未来发布的内容和过期的内容,可以在配置文件 config.toml 中设置这些选项。
在 config.toml 文件中添加以下内容:
buildDrafts = true
buildFuture = true
buildExpired = true
这样,你只需运行 hugo server 就可以生成所有内容。
示例
假设你的 config.toml 文件内容如下:
baseURL = "http://example.org/"
languageCode = 'en-us'
title = 'Devin'
theme = "paper"
disqusShortname = 'Awesome' # use disqus comments
#每次运行 hugo server 时都默认包含所有内容
buildDrafts = true
buildFuture = true
buildExpired = true
保存后,运行 hugo server:
hugo server
这样,Hugo 会根据配置文件中的设置生成所有内容,包括草稿、未来发布的内容和过期的内容。
总结
通过使用 -D、-F 和 -E 标志,你可以在运行 hugo server 时生成所有内容。此外,通过在配置文件中设置 buildDrafts、buildFuture 和 buildExpired 选项,可以使这些设置持久化,从而每次运行 hugo server 都会生成所有内容。
参考资料
欢迎关注我的公众号“辣个男人Devin”,新鲜技术文章第一时间推送。