这是本节的多页打印视图。
点击此处打印 .
返回本页常规视图 .
更新Docsy 保持 Docsy 主题最新
我们希望与 along with the Docsy community .
一起持续改进本主题。如果您已经克隆了示例网站(或以 Hugo 模块或 Git 子模块的方式使用本主题),您可以轻松地自己更新 Docsy 主题。如果您已经将本主题本身克隆到自己的项目中,您也可以更新主题,但可能需要解决合并冲突。
更新 Docsy 意味着您的站点将使用HEAD
中最新的 Docsy 版本构建,并包含自添加 Docsy 子模块或上次更新以来已合并的所有新提交或更改。更新不会影响您在自己的项目中所做的任何修改,以override the Docsy look and feel ,因为您的覆盖不会修改主题本身。有关自上次更新以来主题发生了什么更改的详细信息,请参见 Docsy 提交列表 。
如果您一直将本主题作为 Git 子模块使用,您还可以将您的站点更新为使用 Docsy as a Hugo Module 。这是从其存储库中拉取 Hugo 主题的最新和最简单的方法。如果您还没有准备好迁移到 Hugo 模块,不用担心,您的站点仍然可以工作,您可以像以前一样继续更新子模块。
1 - 不使用Hugo模块更新Docsy 使用子模块或 git pull
更新 Docsy 主题至最新版本。
如果你不使用 Hugo 模块,根据你在现有站点上安装 Docsy 的方式,使用以下两个程序之一来更新你的主题。
cd /path/to/my-existing-site
Then invoke hugo’s module get
subcommand with the update flag:
hugo mod get -u github.com/google/docsy
Hugo automatically pulls in the latest theme version. That’s it, your update is
done!
Tip 如果你打算更新你的站点,请考虑将你的站点转换为 Hugo 模块 。转换后,更新 Docsy 就更简单了!
hugo mod get -u github.com/google/docsy@vmain
Instead of a version tag, you can also specify a commit hash, for example:
hugo mod get -u github.com/google/docsy@6c8a3afe
2 - 使用子模块模块更新Docsy 使用子模块或“git pull”将 Docsy 主题更新到最新版本。
如果您没有使用 Hugo 模块,根据您选择在现有站点上安装 Docsy 的方式,请使用以下两个过程之一来更新您的主题。
Tip 如果您打算更新您的网站,请考虑 [将您的网站转换为 Hugo 模块](/docs/updating/convert-site-to-module/)。转换后,更新 Docsy 就更简单了!更新你的 Docsy 子模块 如果您在项目中使用 [Docsy 主题作为子模块](/docs/get-started/other-options/#option-1-docsy-as-a-git-submodule),则更新子模块的方法如下:
切换到本地项目的根目录,然后运行:
git submodule update --remote
添加更改并将其提交到您的项目:
git add themes/
git commit -m "Updating theme submodule"
将提交推送到您的项目存储库。例如,运行:
路线 2:更新您的 Docsy 克隆 如果您 [将 Docsy 主题](/docs/get-started/other-options/#option-2-clone-the-docsy-theme) 克隆到项目中的“Themes”文件夹,然后使用“git pull”命令:
导航到本地项目中的“主题”目录:
确保将“origin”设置为“https://github.com/google/docsy.git”:
更新本地克隆:
如果对克隆的主题进行了任何本地更改,则必须手动解决任何合并冲突。
3 - 迁移到Hugo模块 将现有站点转换为使用Docsy作为Hugo模块
适用于急于求成的专家 从命令行运行以下命令:
CLI:
Unix shell
Windows command line cd /path/to/my-existing-site
hugo mod init github.com/me-at-github/my-existing-site
hugo mod get github.com/google/docsy@vmain
sed -i '/theme = \["docsy"\]/d' config.toml
mv config.toml hugo.toml
cat >> hugo.toml <<EOL
[module]
proxy = "direct"
[[module.imports]]
path = "github.com/google/docsy"
EOL
hugo server
cd my-existing-site
hugo mod init github.com/me-at-github/my-existing-site
hugo mod get github.com/google/docsy@vmain
findstr /v /c:"theme = [\" docsy\"]" config.toml > hugo.toml
( echo [module]^
proxy = "direct" ^
[[module.imports]]^
path = "github.com/google/docsy" )>> hugo.toml
hugo server
详细的转换说明 将Docsy主题模块作为站点的依赖项导入 在命令提示符下,切换到现有站点的根目录。
cd /path/to/my-existing-site
只有作为Hugo模块的站点才能导入其他Hugo模块。通过从站点目录中运行以下命令(将github.com/me/my-existing-site
替换您的站点存储库),将现有站点转换为Hugo模块:
hugo mod init github.com/me/my-existing-site
这将创建两个新文件,go.mod
用于模块定义和go.sum
用于保存模块验证的校验和。
接下来,将Docsy主题模块声明为站点的依赖项。
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:
hugo.toml
config.yaml
config.json 将此行更改为:
Configuration file:
hugo.toml
config.yaml
hugo.json theme = [ "github.com/google/docsy" ]
theme :
- github.com/google/docsy
"theme" : [
"github.com/google/docsy"
]
或者,您可以完全省略此行,并将其替换为以下代码段中给出的设置:
Configuration file:
hugo.toml
hugo.yaml
hugo.json [ 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 :
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
{
"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 模块文档 中找到这些配置设置的详细信息。根据你的环境,你可能需要进行一些微调,例如添加代理以在下载远程模块时使用。
Tip 在 Hugo 0.110.0 中,默认的配置基础文件名已更改为 hugo.toml
。如果你使用的是 hugo 0.110 或更高版本,请考虑将你的 config.toml
重命名为 hugo.toml
!
Attention 如果你安装了多语言版本,请确保你的 config.toml
中的 [languages]
部分在带有模块导入的 [module]
部分之前声明。否则,你将遇到问题!检查配置设置的有效性 为了确保你的配置设置是正确的,请运行 hugo mod graph
命令,它会打印一个模块依赖项图:
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
确保列出了 docsy
、bootstrap
和 Font-Awesome
的三行依赖项。如果没有,请仔细检查你的配置设置。
提示
为了清理你的模块缓存,请执行命令 hugo mod clean
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
。首先,切换到你站点的根目录:
cd /path/to/my-existing-site
先前将 Docsy 主题安装为 Git 克隆 只需删除 themes
目录中的子目录 docsy
:
先前将 Docsy 主题安装为 Git 子模块 如果您的 Docsy 主题是作为子模块安装的,请使用 git 的 rm
子命令删除 themes
目录中的子目录 docsy
:
现在,您可以提交更改到您的仓库中:
git commit -m "Removed docsy git submodule"
Attention 使用 rm -rf
命令时请小心,确保您不会意外删除任何生产数据文件!