HUGO

Go modules multlingual observation

I am in a multilingual environment and have converted both my theme and a ‘piece’ of my content to modules. Its working. The posts on modules for dummies and also posts by @regis were super helpful. But… have I misunderstood something?

my content module is https:gitlab/me-me-me/kodi.git which contains a ‘docs’ directory,

in my config I currently have:

module:    
  imports:                                                                                                                                                                                  
    - path: gitlab.com/me-me-me/hugo-theme-xyz.git      
    - path: gitlab.com/me-me-me/kodi.git      
      disable: false         
      mounts:      
       - source: docs      
         target: content/this-does-not-exist      
         lang: fr

What I’ve understood is that the actual git project name minus the .git suffix will get mounted under content. The ‘source’ will be the directory inside that git project that will be visible in that mount.

What I found strange is that I had started by putting the target simply as content, and then my project was the only thing rendered on the site. Ok thats normal as its then replacing ‘content’. But I also find that the kodi.git module gets mounted under content/fr/kodi no matter what I put as the target as long is it’s content/anything

(No issues with the lang parameter. I have 3 languages and I can switch the project between them by changing the symbol in the mounts section.)

I also found this comment in the hugo docs confusing: When you add a mount, the default mount for the concerned target root is ignored: be sure to explicitly add it. https://gohugo.io/hugo-modules/configuration/

What does that mean in practice? Should I be adding to my config something like:

mounts:
  - source: content
    target: content

I have set my hugo options for troubleshooting to

--noHTTPCache --disableFastRender --destination=./public --renderToDisk=true -w --cleanDestinationDir --verbose

This is hugo 75. (I will update it now)

Anyway it is working. Just that target syntax is making me lose sleep…

I thought this was only for root module settings, (your project) but that may also be needed when imports are referencing default dir. You could try:

module:
  mounts:
    - source: content
      target: content
  imports:
    - path: gitlab.com/me-me-me/kodi
      disable: false
      mounts:
       - source: docs
         target: content/docs
         lang: fr