Create a struct with all of Hugo's config options

Primary motivation is documentation, but it will also hopefully simplify the code.

Also,

* Lower case the default output format names; this is in line with the custom ones (map keys) and how
it's treated all the places. This avoids doing `stringds.EqualFold` everywhere.

Closes #10896
Closes #10620
This commit is contained in:
Bjørn Erik Pedersen
2023-01-04 18:24:36 +01:00
parent 6aededf6b4
commit 241b21b0fd
337 changed files with 13377 additions and 14898 deletions

View File

@@ -154,7 +154,7 @@ type baseResourceInternal interface {
ReadSeekCloser() (hugio.ReadSeekCloser, error)
// Internal
// For internal use.
cloneWithUpdates(*transformationUpdate) (baseResource, error)
tryTransformedFileCache(key string, u *transformationUpdate) io.ReadCloser
@@ -274,10 +274,11 @@ func (l *genericResource) Data() any {
}
func (l *genericResource) Key() string {
if l.spec.BasePath == "" {
basePath := l.spec.Cfg.BaseURL().BasePath
if basePath == "" {
return l.RelPermalink()
}
return strings.TrimPrefix(l.RelPermalink(), l.spec.BasePath)
return strings.TrimPrefix(l.RelPermalink(), basePath)
}
func (l *genericResource) MediaType() media.Type {
@@ -297,7 +298,7 @@ func (l *genericResource) Params() maps.Params {
}
func (l *genericResource) Permalink() string {
return l.spec.PermalinkForBaseURL(l.relPermalinkForRel(l.relTargetDirFile.path(), true), l.spec.BaseURL.HostURL())
return l.spec.PermalinkForBaseURL(l.relPermalinkForRel(l.relTargetDirFile.path(), true), l.spec.Cfg.BaseURL().HostURL())
}
func (l *genericResource) Publish() error {
@@ -410,7 +411,7 @@ func (r *genericResource) tryTransformedFileCache(key string, u *transformationU
return nil
}
u.sourceFilename = &fi.Name
mt, _ := r.spec.MediaTypes.GetByType(meta.MediaTypeV)
mt, _ := r.spec.MediaTypes().GetByType(meta.MediaTypeV)
u.mediaType = mt
u.data = meta.MetaData
u.targetPath = meta.Target
@@ -506,7 +507,7 @@ func (r *genericResource) openPublishFileForWriting(relTargetPath string) (io.Wr
}
func (l *genericResource) permalinkFor(target string) string {
return l.spec.PermalinkForBaseURL(l.relPermalinkForRel(target, true), l.spec.BaseURL.HostURL())
return l.spec.PermalinkForBaseURL(l.relPermalinkForRel(target, true), l.spec.Cfg.BaseURL().HostURL())
}
func (l *genericResource) relPermalinkFor(target string) string {