本地预览

在您提交新的 PR 之前,建议预览您的更改。预览可以帮助您捕获构建错误或 Markdown 格式问题。

本地预览您的更改

您可以构建网站的容器镜像,也可以在本地运行 Hugo。构建容器镜像速度较慢,但可以显示 Hugo shortcodes,这对于调试很有用。

  1. 在本地构建容器镜像
    如果您正在测试 Hugo 工具本身的更改,则只需要此步骤。

    # Run this in a terminal (if required)
    make container-image
    
  2. 获取本地仓库中的子模块依赖项

    # Run this in a terminal
    make module-init
    
  3. 在容器中启动 Hugo

    # Run this in a terminal
    make container-serve
    
  4. 在 Web 浏览器中,导航到 https://:1313。Hugo 会监视更改并在需要时重建站点。

  5. 要停止本地 Hugo 实例,请返回终端并键入 Ctrl+C,或关闭终端窗口。

或者,安装并在您的计算机上使用 hugo 命令

  1. 安装 Hugo (Extended edition)Node website/netlify.toml 中指定的版本。

  2. 安装任何依赖项

    npm ci
    
  3. 在终端中,转到您的 Kubernetes 网站仓库并启动 Hugo 服务器

    cd <path_to_your_repo>/website
    make serve
    

    如果您使用的是 Windows 机器或无法运行 make 命令,请使用以下命令

    hugo server --buildFuture
    
  4. 在 Web 浏览器中,导航到 https://:1313。Hugo 会监视更改并在需要时重建站点。

  5. 要停止本地 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

上次修改时间为 2025 年 4 月 1 日下午 6:56 PST:添加本地预览页面;将故障排除移动到那里 (e4d216e4ab)