Make resources fetched via resources.Get and similar language agnostic
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Tue, 31 Jul 2018 18:04:36 +0000 (20:04 +0200)
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Tue, 31 Jul 2018 21:33:04 +0000 (23:33 +0200)
With the newly released Hugo Pipes, resources fetched and processed via `resources.Get` and similar was published to the relevant language sub folder when in multilingual mode.

The thought behind that was maximum flexibility with support for `assetDir` per language.

In practice this was a bad idea:

* You get duplication of identical content, with added processing time
* You end up with path issues that seem to be hard to find a way around (`@fa-font-path` is one example)

This commit changes that. Now there is only one `assetDir` and if you, as one example, need to generate a CSS per langugage, you need to set the paths yourself.

Fixes #5017

deps/deps.go
langs/language.go
resource/resource.go

index 5a97ec7f2c59d6b16fcbe50fba1d11b222cbda50..a0904483b095943f930a326847a1591a73050181 100644 (file)
@@ -221,10 +221,14 @@ func (d Deps) ForLanguage(cfg DepsCfg) (*Deps, error) {
                return nil, err
        }
 
+       // The resource cache is global so reuse.
+       // TODO(bep) clean up these inits.
+       resourceCache := d.ResourceSpec.ResourceCache
        d.ResourceSpec, err = resource.NewSpec(d.PathSpec, d.Log, cfg.MediaTypes)
        if err != nil {
                return nil, err
        }
+       d.ResourceSpec.ResourceCache = resourceCache
 
        d.Cfg = l
        d.Language = l
index 5eb09e10c0f4859f7dacbaf82895f231a22dee6b..7d77df4e37462f0eb85742d5f779c771bd3f056a 100644 (file)
@@ -33,6 +33,8 @@ var globalOnlySettings = map[string]bool{
        strings.ToLower("defaultContentLanguageInSubdir"): true,
        strings.ToLower("defaultContentLanguage"):         true,
        strings.ToLower("multilingual"):                   true,
+       strings.ToLower("assetDir"):                       true,
+       strings.ToLower("resourceDir"):                    true,
 }
 
 // Language manages specific-language configuration.
index 718d4d3037edf9ef4b6dfea137a556560897a07a..aedc7c22b05a8d8e7e9436b0d8686ba5d1bb0b31 100644 (file)
@@ -366,14 +366,6 @@ func (r *Spec) newResourceForFs(sourceFs afero.Fs, fd ResourceSourceDescriptor)
                }
        }
 
-       if fd.URLBase == "" {
-               fd.URLBase = r.GetURLLanguageBasePath()
-       }
-
-       if fd.TargetPathBase == "" {
-               fd.TargetPathBase = r.GetTargetLanguageBasePath()
-       }
-
        if fd.RelTargetFilename == "" {
                fd.RelTargetFilename = fd.Filename()
        }