Hugo-Eureka 主题安装指南

发布时间 2023-04-03 11:54:03作者: 佳凌雾杨

前言

虽然官方教程已经把主题安装方法说的挺清楚了,但是真正摸上手还是觉得这个主题坑比较多。

玩别人的主题的时候,不会随便弄一下就报错,但是这个主题怎么搞都报错。

其中一个重要原因就是不管哪种方法都需要为hugo-modules设置代理

下面对这个主题相关的步骤做了一个简单梳理,也希望可以帮到更多人。 (毕竟这个主题作者是我校友)

准备

首先Hugo的安装,下载hugo.exe然后把其路径丢到系统变量里面,这个就不用多说了吧。不会请百度。

不论何种方法都需要通过go下载编译hugo的更新模块,因此请务必安装Go语言开发包:go.dev 同样记得给安装路径加系统变量

如果是Hugo Modules方法,请按照教程下载初始化模板

如果是Git Submodules方法,请下载git:Git - Downloads (git-scm.com)

方法

以下方法以Windows系统为说明,Mac请照葫芦。

  • 在需要创建博客的文件夹,如:D://sample-blog/ 打开指令行(cmd/powershell均可):
hugo new site sample
  • 这个时候sample-blog/sample就是这个博客的路径:
    • 对于Hugo Modules方法,请直接把下好的文件丢到sample文件夹里面覆盖,不要丢到主题文件夹里面了。
    • 对于Git Submodules方法,请按以下方法拷贝,然后将exampleSite中的config文件夹复制到项目根目录下:
cd sample
git init //git目录初始化
Initialized empty Git repository in D:/sample-blog/sample/.git/
git submodule add https://github.com/wangchucheng/hugo-eureka.git themes/eureka
...
cd themes/eureka
git checkout <eureka_version> //切换eureka为release分支版本,记得改版本号。
  • 对config文件夹的内容进行配置,配置后删除原先的config.toml文件即可。然后:

    • 对于Hugo Modules方法,将config/_default/config.yaml中的theme: eureka注释并将theme: wangchucheng.com/hugo-eureka取消注释。
    • 对于Git Submodules方法,不要改。
  • 设置gohugo-modules代理(这一步并不需要什么代理哈)

    (参考文章:七牛云 - Goproxy.cnHugo Module 代理 - Razon Yang)

    • 在终端输入:
    $ go env -w GO111MODULE=on
    $ go env -w GOPROXY=https://goproxy.cn,direct
    
    • 在配置文件加入:
    [module]
      proxy = 'https://goproxy.cn'
    

    或者

    module:
      proxy: https://goproxy.cn
    

    这边只选取了主流的两种配置文件格式,其他设置代理的方法请参考上面提到的文章。

  • 拷贝exampleSite或自定义博客内容,然后通过hugo serverhugo指令查看是否有生成错误。

不过因为我也是小白,我只能保证这个方法不会出基础性的问题,其他不保证。

补充

我之前一直试的Hugo模块法,试了一下Git子模块法把坑摸了一下,也盘点一下。

Git下载问题

Git方法里面下载主题子模块需要设置git代理,这个就需要飞机了,下面的端口号请按实际情况调整。

git config --global http.proxy http://127.0.0.1:7890
git config --global https.proxy http://127.0.0.1:7890

取消代理:

git config --global --unset http.proxy
git config --global --unset https.proxy

部分模块缺失问题

直接使用主分支会报错:

Error: module "wangchucheng.com/hugo-marble/utils" not found; either add it as a Hugo Module or store it in "D:\\sample-blog\\sample\\themes".: module does not exist

因此需要切换分支,方法官方教程也写了,就是git checkout <eureka_version>

这一步具体操作:

  1. 打开https://github.com/wangchucheng/hugo-eureka/releases 查看最新版本号对应的commit编号。如v0.9.3 对应 749f68c。
  2. 输入对应commit编号进行切换,如git checkout 749f68c

这样就能正常部署了。

改进

Hugo模块方法的官方模板对于国内玩家非常不友好,因此我fork一个改了一下:

https://github.com/joyingwol/hugo-eureka-starters

使用这个压缩包,安装好相关软件,设好变量,再覆盖文件夹以后理论上立马就能hugo初始化了。