雨果主题子模块标记为脏,不更新



我使用Hugo Whiteplain主题作为通过Netlify托管的个人网站。我正在学习教程。当我在GitHub Desktop上推送/发布时,我被告知我的git子模块是脏的。因此,我无法更改主题的背景颜色。

[submodule "themes/whiteplain"]
path = themes/whiteplain
url = https://github.com/taikii/whiteplain.git

我该怎么做才能重新控制我的主题?我可以在不依赖这个脏子模块的情况下更改颜色吗?

有很多方法可以自定义Hugo主题。例如,您可以:

  • 直接编辑主题,让它偏离原始项目
  • 创建一个fork并将其用作主题以获取更新从最初的主题,同时开发自己的版本
  • 在网站内部编辑主题

最后一个选项意味着你不接触主题本身,而是按照相同的路径结构,在网站树中复制你想要编辑的任何文件,然后编辑该文件。

对于任何自定义文件(布局、css、scs等(中既存在于网站树下又存在于主题树下的任何元素,Hugo将优先考虑网站树下文件中的元素。

对于您站点树中没有的任何元素,Hugo将使用主题树中的内容。这意味着您不必复制整个主题,甚至不必复制站点中的整个文件,只需复制要自定义的元素。

如果你选择这种方法,并且按照Git子模块手册将主题设置为子模块,你就永远不会陷入脏子模块的境地。

示例

假设您想要编辑主题的背景颜色,并且变量在scss文件中定义为:

your_site
+ themes
+ theme_name
+ assets
+ scss
_content.scss

您需要保留树结构并在以下位置创建一个文件:

your_site
+ assets
+ scss
_content.scss

您可以从头开始创建文件,但更简单的选择是从主题中复制文件并粘贴到那里。在该文件中,您可以随心所欲地自定义背景颜色(或任何其他设置(。

备注

我发现这种定制主题的方式(实际上是Hugo文档中建议的方式(是最简单的。

这种方法不是最佳的一种情况是,如果您计划为多个网站使用相同的主题自定义版本。在这种情况下,创建原始主题的分支更有意义,因为您可以将自定义主题(您的分支(添加为所有这些网站的子模块,因此您的自定义是可移植的。

最新更新