Thanks all for those informations. Since this post is now closed I hijack this thread to give some more hints.
After not succeeding to use modules even after reading those great post and the doc, even if I’m pretty comfortable with Hugo, I finally got some aha! moment when I realised that you need to understand somethings the Golang users know for a long time, but hidden for us poor mortals only using Hugo.
Do not hesitate to correct me if something is wrong or not really accurate. Here is the 2 simple things:
The path name module.
- If you want to create/develop a module, you create your git folder
module1-hugoas usual. - But the name module you give cannot be a local name (aka
module1-hugo). - It has to be with a domain name as prefix (aka
github.com/divinerites/module1-hugo) - So now you can initiate the Hugo module with the command :
hugo mod init github.com/divinerites/module1-hugo, and reference it later in yourpathdirective.
The version numbers
- Unless you’ll give a (semantic) tag version number (aka
v1.0.3) to your git commit, trying to use modules will fail with diverses error messages.
If you follow those 2 basic (for Go & Go modules users) recommandations, then using Hugo Modules is easy and so powerful (thanks Bep for this fantastic implementation).
May be just 2 other things, already in those great tutorials, but better say that again here:
- A useful basic commands to update only one module from your internet repository :
hugo mod get -u github.com/divinerites/module1-hugo - When you want to update/develop locally the beauty of modules is that you just add a
replacedirective for the module in your projectgo.mod, and bim bam boum, the local module folder is in use, with a fresh Hugo reload in millisecond. No need to do the merge/push/tag/update dance. Brilliant.
replace github.com/divinerites/module1-hugo => /Users/mycomputername/Documents/Git/module1-hugo