这是本节的多页打印视图。 点击此处打印.

返回本页常规视图.

更新 Docsy

Update Docsy - 更新 Docsy

https://www.docsy.dev/docs/updating/

​ 保持 Docsy 主题最新。

​ 我们希望与 Docsy 社区 一起持续改进本主题。如果您已经克隆了示例网站(或以 Hugo 模块或 Git 子模块的方式使用本主题),您可以轻松地自己更新 Docsy 主题。如果您已经将本主题本身克隆到自己的项目中,您也可以更新主题,但可能需要解决合并冲突。

​ 更新 Docsy 意味着您的站点将使用HEAD中最新的 Docsy 版本构建,并包含自添加 Docsy 子模块或上次更新以来已合并的所有新提交或更改。更新不会影响您在自己的项目中所做的任何修改,以 覆盖 Docsy 的外观和感觉,因为您的覆盖不会修改主题本身。有关自上次更新以来主题发生了什么更改的详细信息,请参见 Docsy 提交列表

​ 如果您一直将本主题作为 Git 子模块使用,您还可以将您的站点更新为使用 Docsy 作为 Hugo 模块。这是从其存储库中拉取 Hugo 主题的最新和最简单的方法。如果您还没有准备好迁移到 Hugo 模块,不用担心,您的站点仍然可以工作,您可以像以前一样继续更新子模块。


更新您的 Docsy Hugo 模块

使用 Hugo 模块更新 Docsy 主题至最新版本。

不使用 Hugo 模块更新 Docsy

使用子模块或 git pull 更新 Docsy 主题至最新版本。

迁移到 Hugo 模块

将现有站点转换为使用 Docsy 作为 Hugo 模块。

1 - 更新您的 Docsy Hugo 模块

Update your Docsy Hugo Module - 更新您的 Docsy Hugo 模块

https://www.docsy.dev/docs/updating/updating-hugo-module/

​ 使用 Hugo 模块更新你的 Docsy 主题至最新版本。

​ 当将 Docsy 主题作为 Hugo 模块使用时,更新主题非常简单。

​ 在命令提示符中,切换到现有站点的根目录。

1
cd /path/to/my-existing-site

​ 然后使用hugo的模块get子命令并带有update标志:

1
hugo mod get -u github.com/google/docsy

​ Hugo 自动拉取最新的主题版本。就是这样,你的更新完成了!

提示

​ 如果你想将你的模块设置为 Docsy 主题库中的某个版本,只需在更新主题时指定代表此版本的标签名称,例如:

1
hugo mod get -u github.com/google/docsy@v0.6.0

​ 你也可以指定一个提交哈希值,例如:

1
hugo mod get -u github.com/google/docsy@6c8a3afe

2 - 不使用 Hugo 模块更新 Docsy

Update Docsy without Hugo Modules - 不使用 Hugo 模块更新 Docsy

https://www.docsy.dev/docs/updating/updating-submodules/

​ 使用子模块或 git pull 更新 Docsy 主题至最新版本。

​ 如果你不使用 Hugo 模块,根据你在现有站点上安装 Docsy 的方式,使用以下两个程序之一来更新你的主题。

提示

​ 如果你打算更新你的站点,请考虑将你的站点转换为 Hugo 模块。转换后,更新 Docsy 就更简单了!

更新 Docsy 子模块

​ 如果你在项目中将 Docsy 主题作为子模块使用,则按如下方式更新子模块:

  1. 导航到本地项目的根目录,然后运行:

    1
    
    git submodule update --remote
    
  2. 将更改添加到项目中并提交更改:

    1
    2
    
    git add themes/
    git commit -m "Updating theme submodule"
    
  3. 将提交推送到项目存储库。例如运行:

    1
    
    git push origin master
    

Route 2:更新 Docsy 克隆版

​ 如果你将 Docsy 主题克隆到项目的 themes 文件夹中,则使用 git pull 命令:

  1. 导航到本地项目的 themes 目录:

    1
    
    cd themes
    
  2. 确保 origin 设置为 https://github.com/google/docsy.git

    1
    
    git remote -v
    
  3. 更新本地克隆版:

    1
    
    git pull origin master
    

​ 如果你对克隆主题进行了任何本地更改,则必须手动解决任何合并冲突。

3 - 迁移到Hugo模块

Migrate to Hugo Modules - 迁移到Hugo模块

https://www.docsy.dev/docs/updating/convert-site-to-module/

​ 将现有站点转换为使用Docsy作为Hugo模块

适用于急于求成的专家

​ 从命令行运行以下命令:

CLI:

=== “Unix shell”

```bash
cd /path/to/my-existing-site
hugo mod init github.com/me-at-github/my-existing-site
hugo mod get github.com/google/docsy@v0.6.0
sed -i '/theme = \["docsy"\]/d' config.toml
cat >> config.toml <<EOL
[module]
proxy = "direct"
[[module.imports]]
path = "github.com/google/docsy"
[[module.imports]]
path = "github.com/google/docsy/dependencies"
EOL
hugo server
```

=== “Windows command line”

```bash
cd  my-existing-site
hugo mod init github.com/me-at-github/my-existing-site
hugo mod get github.com/google/docsy@v0.6.0
findstr /v /c:"theme = [\"docsy\"]" config.toml > config.toml.temp
move /Y config.toml.temp config.toml
(echo [module]^

proxy = "direct"^

[[module.imports]]^

path = "github.com/google/docsy"^

[[module.imports]]^

path = "github.com/google/docsy/dependencies")>>config.toml
hugo server
```

详细的转换说明

将Docsy主题模块作为站点的依赖项导入

​ 在命令提示符下,切换到现有站点的根目录。

1
cd /path/to/my-existing-site

​ 只有作为Hugo模块的站点才能导入其他Hugo模块。通过从站点目录中运行以下命令(将github.com/me/my-existing-site替换您的站点存储库),将现有站点转换为Hugo模块:

1
hugo mod init github.com/me/my-existing-site

​ 这将创建两个新文件,go.mod用于模块定义和go.sum用于保存模块验证的校验和。

​ 接下来,将Docsy主题模块声明为站点的依赖项。

1
hugo mod get github.com/google/docsy@v0.6.0

This command adds the docsy theme module to your definition file go.mod.

​ 此命令将docsy主题模块添加到您的定义文件go.mod中。

​ 更新您的配置文件

​ 在您的 config.toml/config.yaml/config.json 文件中,更新该主题设置以使用Hugo模块。找到以下行:

Configuration file:

=== “config.yaml”

```yaml
theme: docsy

```

=== “config.toml”

```toml
theme = ["docsy"]

```

=== “config.json”

```json
"theme": "docsy"

```

将此行更改为:

Configuration file:

=== “config.yaml”

```yaml
theme:
  - github.com/google/docsy
  - github.com/google/docsy/dependencies

```

=== “config.toml”

```toml
theme = ["github.com/google/docsy", "github.com/google/docsy/dependencies"]

```

=== “config.json”

```json
"theme": [
  "github.com/google/docsy",
  "github.com/google/docsy/dependencies"
]

```

​ 或者,您可以完全省略此行,并将其替换为以下代码段中给出的设置:

Configuration file:

=== “config.yaml”

```yaml
module:
  proxy: direct
  hugoVersion:
    extended: true
    min: 0.73.0
  imports:
    - path: github.com/google/docsy
      disable: false
    - path: github.com/google/docsy/dependencies
      disable: false
```

=== “config.toml”

```toml
[module]
  proxy = "direct"
  # uncomment line below for temporary local development of module
  # replacements = "github.com/google/docsy -> ../../docsy"
  [module.hugoVersion]
    extended = true
    min = "0.73.0"
  [[module.imports]]
    path = "github.com/google/docsy"
    disable = false
  [[module.imports]]
    path = "github.com/google/docsy/dependencies"
    disable = false
```

=== “config.json”

```json
{
  "module": {
    "proxy": "direct",
    "hugoVersion": {
      "extended": true,
      "min": "0.73.0"
    },
    "imports": [
      {
        "path": "github.com/google/docsy",
        "disable": false
      },
      {
        "path": "github.com/google/docsy/dependencies",
        "disable": false
      }
    ]
  }
}
```

​ 你可以在 Hugo 模块文档中找到这些配置设置的详细信息。根据你的环境,你可能需要进行一些微调,例如添加代理以在下载远程模块时使用。

提示

​ 在 Hugo 0.110.0 中,默认的配置基础文件名已更改为 hugo.toml。如果你使用的是 hugo 0.110 或更高版本,请考虑将你的 config.toml 重命名为 hugo.toml

注意

​ 如果你安装了多语言版本,请确保你的 config.toml 中的 [languages] 部分在带有模块导入的 [module] 部分之前声明。否则,你将遇到问题!

检查配置设置的有效性

​ 为了确保你的配置设置是正确的,请运行 hugo mod graph 命令,它会打印一个模块依赖项图:

1
2
3
4
5
6
hugo mod graph
hugo: collected modules in 1092 ms
github.com/me/my-existing-site github.com/google/docsy@v0.6.0
github.com/me/my-existing-site github.com/google/docsy/dependencies@v0.6.0
github.com/google/docsy/dependencies@v0.6.0 github.com/twbs/bootstrap@v5.2.3+incompatible
github.com/google/docsy/dependencies@v0.6.0 github.com/FortAwesome/Font-Awesome@v0.0.0-20230207192303-d02961b01815

​ 确保列出了 docsybootstrapFont-Awesome 的三行依赖项。如果没有,请仔细检查你的配置设置。

提示

​ 为了清理你的模块缓存,请执行命令 hugo mod clean

1
2
3
4
5
6
hugo mod clean
hugo: collected modules in 995 ms
hugo: cleaned module cache for "github.com/FortAwesome/Font-Awesome"
hugo: cleaned module cache for "github.com/google/docsy"
hugo: cleaned module cache for "github.com/google/docsy/dependencies"
hugo: cleaned module cache for "github.com/twbs/bootstrap"

清理你的仓库

​ 由于你的站点现在使用 Hugo 模块,你可以按照下面的说明从themes目录中删除 docsy。首先,切换到你站点的根目录:

1
cd /path/to/my-existing-site

先前将 Docsy 主题安装为 Git 克隆

​ 只需删除 themes 目录中的子目录 docsy

1
rm -rf themes/docsy

先前将 Docsy 主题安装为 Git 子模块

​ 如果您的 Docsy 主题是作为子模块安装的,请使用 git 的 rm 子命令删除 themes 目录中的子目录 docsy

1
git rm -rf themes/docsy

​ 现在,您可以提交更改到您的仓库中:

1
git commit -m "Removed docsy git submodule"

注意

​ 使用 rm -rf 命令时请小心,确保您不会意外删除任何生产数据文件!