配置

Hugo 从您 Hugo 站点根目录下的 hugo.yaml 文件中读取配置。 配置文件是您可以配置站点所有方面的地方。 查看此站点的配置文件 exampleSite/hugo.yaml 在 GitHub 上,以全面了解可用的设置和最佳实践。

导航

菜单

右上角的菜单在配置文件的 menu.main 部分中定义:

hugo.yaml
menu:
  main:
    - name: 文档
      pageRef: /docs
      weight: 1
    - name: 博客
      pageRef: /blog
      weight: 2
    - name: 关于
      pageRef: /about
      weight: 3
    - name: 搜索
      weight: 4
      params:
        type: search
    - name: GitHub
      weight: 5
      url: "https://github.com/imfing/hextra"
      params:
        icon: github

有不同类型的菜单项:

  1. 使用 pageRef 链接到站点内的页面
    - name: 文档
      pageRef: /docs
  2. 使用 url 链接到外部 URL
    - name: GitHub
      url: "https://github.com"
  3. 使用 type: search 的搜索栏
    - name: 搜索
      params:
        type: search
  4. 图标
    - name: GitHub
      params:
        icon: github

这些菜单项可以通过设置 weight 参数进行排序。

徽标和标题

要修改默认徽标,编辑 hugo.yaml 并在 static 目录下添加徽标文件的路径。 您还可以更改用户点击徽标时重定向的链接,以及设置徽标的宽度和高度(以像素为单位)。

hugo.yaml
params:
  navbar:
    displayTitle: true
    displayLogo: true
    logo:
      path: images/logo.svg
      dark: images/logo-dark.svg
      link: /
      width: 40
      height: 20

侧边栏

主侧边栏

主侧边栏是根据内容目录的结构自动生成的。 有关更多详细信息,请参阅 组织文件 页面。

要从左侧边栏中排除单个页面,请在页面的 front matter 中设置 sidebar.exclude 参数:

content/docs/guide/configuration.md
---
title: 配置
sidebar:
  exclude: true
---

额外链接

侧边栏的额外链接在配置文件的 menu.sidebar 部分中定义:

hugo.yaml
menu:
  sidebar:
    - name: 更多
      params:
        type: separator
      weight: 1
    - name: "关于"
      pageRef: "/about"
      weight: 2
    - name: "Hugo 文档 ↗"
      url: "https://gohugo.io/documentation/"
      weight: 3

右侧边栏

目录

目录是根据内容文件中的标题自动生成的。可以通过在页面的 front matter 中设置 toc: false 来禁用它。

content/docs/guide/configuration.md
---
title: 配置
toc: false
---

页面编辑链接

要配置页面编辑链接,我们可以在配置文件中设置 params.editURL.base 参数:

hugo.yaml
params:
  editURL:
    enable: true
    base: "https://github.com/your-username/your-repo/edit/main"

编辑链接将根据提供的 URL 作为根目录自动为每个页面生成。 如果要为特定页面设置编辑链接,可以在页面的 front matter 中设置 editURL 参数:

content/docs/guide/configuration.md
---
title: 配置
editURL: "https://example.com/edit/this/page"
---

页脚

版权

要修改网站页脚中显示的版权文本,您需要创建一个名为 i18n/en.yaml 的文件。 在此文件中,指定您的新版权文本,如下所示:

i18n/en.yaml
copyright: "© 2024 您的文本"

作为参考,可以在 GitHub 仓库中找到示例 i18n/en.yaml 文件。此外,您可以在版权文本中使用 Markdown 格式。

其他

网站图标

要为您的站点自定义 网站图标,请将图标文件放在 static 文件夹下,以覆盖 主题的默认网站图标

    • android-chrome-192x192.png
    • android-chrome-512x512.png
    • apple-touch-icon.png
    • favicon-16x16.png
    • favicon-32x32.png
    • favicon-dark.svg
    • favicon.ico
    • favicon.svg
    • site.webmanifest
  • 在您的项目中包含 favicon.icofavicon.svgfavicon-dark.svg 文件,以确保您的站点图标正确显示。

    虽然 favicon.ico 通常用于旧版浏览器,但 favicon.svgfavicon-dark.svg 受现代浏览器支持。 使用 favicon.iofavycon 等工具生成此类图标。

    主题配置

    使用 theme 设置来配置默认主题模式和切换按钮,允许访问者在浅色或深色模式之间切换。

    hugo.yaml
    params:
      theme:
        # light | dark | system
        default: system
        displayToggle: true

    theme.default 的选项:

    • light - 始终使用浅色模式
    • dark - 始终使用深色模式
    • system - 与操作系统设置同步(默认)

    theme.displayToggle 参数允许您显示一个切换按钮以更改主题。 当设置为 true 时,访问者可以在浅色或深色模式之间切换,覆盖默认设置。

    页面宽度

    页面的宽度可以通过配置文件中的 params.page.width 参数进行自定义:

    hugo.yaml
    params:
      page:
        # full (100%), wide (90rem), normal (1280px)
        width: wide

    有三个可用选项:fullwidenormal。默认情况下,页面宽度设置为 normal

    同样,导航栏和页脚的宽度可以通过 params.navbar.widthparams.footer.width 参数进行自定义。

    搜索索引

    默认启用由 FlexSearch 提供的全文搜索。 要自定义搜索索引,请在配置文件中设置 params.search.flexsearch.index 参数:

    hugo.yaml
    params:
      # 搜索
      search:
        enable: true
        type: flexsearch
    
        flexsearch:
          # 按以下内容索引页面:content | summary | heading | title
          index: content

    flexsearch.index 的选项:

    • content - 页面的完整内容(默认)
    • summary - 页面的摘要,请参阅 Hugo 内容摘要 了解更多详细信息
    • heading - 一级和二级标题
    • title - 仅包括页面标题

    要自定义搜索分词,请在配置文件中设置 params.search.flexsearch.tokenize 参数:

    hugo.yaml
    params:
        # ...
        flexsearch:
          # full | forward | reverse | strict 
          tokenize: forward

    flexsearch.tokenize 的选项:

    • strict - 索引整个单词
    • forward - 向前方向逐步索引单词
    • reverse - 双向逐步索引单词
    • full - 索引所有可能的组合

    要从搜索索引中排除页面,请在页面的 front matter 中设置 excludeSearch: true

    content/docs/guide/configuration.md
    ---
    title: 配置
    excludeSearch: true
    ---

    Google Analytics

    要启用 Google Analytics,请在 hugo.yaml 中设置 services.googleAnalytics.ID 标志:

    hugo.yaml
    services:
      googleAnalytics:
        ID: G-MEASUREMENT_ID