本地预览
在您提交新的 PR 之前,建议预览您的更改。预览可以帮助您捕获构建错误或 Markdown 格式问题。
本地预览您的更改
您可以构建网站的容器镜像,也可以在本地运行 Hugo。构建容器镜像速度较慢,但可以显示 Hugo shortcodes,这对于调试很有用。
说明
以下命令默认使用 Docker 作为容器引擎。设置CONTAINER_ENGINE 环境变量以覆盖此行为。在本地构建容器镜像
如果您正在测试 Hugo 工具本身的更改,则只需要此步骤。# Run this in a terminal (if required) make container-image获取本地仓库中的子模块依赖项
# Run this in a terminal make module-init在容器中启动 Hugo
# Run this in a terminal make container-serve在 Web 浏览器中,导航到
https://:1313。Hugo 会监视更改并在需要时重建站点。要停止本地 Hugo 实例,请返回终端并键入
Ctrl+C,或关闭终端窗口。
或者,安装并在您的计算机上使用 hugo 命令
安装 Hugo (Extended edition) 和 Node
website/netlify.toml中指定的版本。安装任何依赖项
npm ci在终端中,转到您的 Kubernetes 网站仓库并启动 Hugo 服务器
cd <path_to_your_repo>/website make serve如果您使用的是 Windows 机器或无法运行
make命令,请使用以下命令hugo server --buildFuture在 Web 浏览器中,导航到
https://:1313。Hugo 会监视更改并在需要时重建站点。要停止本地 Hugo 实例,请返回终端并键入
Ctrl+C,或关闭终端窗口。
故障排除
错误:无法转换资源:TOCSS:无法转换“scss/main.scss”(text/x-scss):您当前的 Hugo 版本中此功能不可用
Hugo 出于技术原因以两组二进制文件提供。当前网站仅基于 Hugo Extended 版本运行。在 发布页面 中查找名称中带有 extended 的存档。要确认,请运行 hugo version 并查找 extended 单词。
macOS 太多打开文件故障排除
如果您在 macOS 上运行 make serve 并收到以下错误
ERROR 2020/08/01 19:09:18 Error: listen tcp 127.0.0.1:1313: socket: too many open files
make: *** [serve] Error 1
尝试检查打开文件的当前限制
launchctl limit maxfiles
然后运行以下命令(改编自 https://gist.github.com/tombigel/d503800a282fcadbee14b537735d202c)
#!/bin/sh
# These are the original gist links, linking to my gists now.
# curl -O https://gist.githubusercontent.com/a2ikm/761c2ab02b7b3935679e55af5d81786a/raw/ab644cb92f216c019a2f032bbf25e258b01d87f9/limit.maxfiles.plist
# curl -O https://gist.githubusercontent.com/a2ikm/761c2ab02b7b3935679e55af5d81786a/raw/ab644cb92f216c019a2f032bbf25e258b01d87f9/limit.maxproc.plist
curl -O https://gist.githubusercontent.com/tombigel/d503800a282fcadbee14b537735d202c/raw/ed73cacf82906fdde59976a0c8248cce8b44f906/limit.maxfiles.plist
curl -O https://gist.githubusercontent.com/tombigel/d503800a282fcadbee14b537735d202c/raw/ed73cacf82906fdde59976a0c8248cce8b44f906/limit.maxproc.plist
sudo mv limit.maxfiles.plist /Library/LaunchDaemons
sudo mv limit.maxproc.plist /Library/LaunchDaemons
sudo chown root:wheel /Library/LaunchDaemons/limit.maxfiles.plist
sudo chown root:wheel /Library/LaunchDaemons/limit.maxproc.plist
sudo launchctl load -w /Library/LaunchDaemons/limit.maxfiles.plist
这适用于 Catalina 以及 Mojave macOS。
无法找到镜像 'gcr.io/k8s-staging-sig-docs/k8s-website-hugo:VERSION' 在本地
如果您运行 make container-serve 并看到此错误,这可能是由于对 Makefile 中定义的 $IMAGE_VERSION 中的特定文件所做的本地更改所致。
网站镜像版本控制包括一个哈希值,该哈希值是根据所列文件的内容生成的。例如,如果这些文件的哈希值为 1b9242684415,则网站镜像将命名为 k8s-website-hugo:v0.133.0-1b9242684415。执行 make container-serve 将尝试从 Kubernetes 网站的 GCR 中拉取这样的镜像。如果它不是当前版本,您将看到一个错误消息,提示该镜像不存在。
如果您需要在这些文件中进行更改并预览网站,则需要构建本地镜像,而不是拉取预构建的镜像。为此,请继续运行 make container-image。
其他问题
如果您在使用网站本地运行和/或预览更改时遇到其他问题,请随时在 kubernetes/website GitHub 仓库中 创建一个 issue。