mirror of
https://github.com/gohugoio/hugo.git
synced 2025-08-29 22:29:56 +02:00
Create pages from _content.gotmpl
Closes #12427 Closes #12485 Closes #6310 Closes #5074
This commit is contained in:
@@ -20,6 +20,7 @@ import (
|
||||
|
||||
"github.com/gohugoio/hugo/hugofs/glob"
|
||||
"github.com/gohugoio/hugo/media"
|
||||
"github.com/gohugoio/hugo/resources/page/pagemeta"
|
||||
"github.com/gohugoio/hugo/resources/resource"
|
||||
|
||||
"github.com/spf13/cast"
|
||||
@@ -90,7 +91,33 @@ func (r *metaResource) updateParams(params map[string]any) {
|
||||
r.changed = true
|
||||
}
|
||||
|
||||
func CloneWithMetadataIfNeeded(m []map[string]any, r resource.Resource) resource.Resource {
|
||||
// cloneWithMetadataFromResourceConfigIfNeeded clones the given resource with the given metadata if the resource supports it.
|
||||
func cloneWithMetadataFromResourceConfigIfNeeded(rc *pagemeta.ResourceConfig, r resource.Resource) resource.Resource {
|
||||
wmp, ok := r.(resource.WithResourceMetaProvider)
|
||||
if !ok {
|
||||
return r
|
||||
}
|
||||
|
||||
if rc.Name == "" && rc.Title == "" && len(rc.Params) == 0 {
|
||||
// No metadata.
|
||||
return r
|
||||
}
|
||||
|
||||
if rc.Title == "" {
|
||||
rc.Title = rc.Name
|
||||
}
|
||||
|
||||
wrapped := &metaResource{
|
||||
name: rc.Name,
|
||||
title: rc.Title,
|
||||
params: rc.Params,
|
||||
}
|
||||
|
||||
return wmp.WithResourceMeta(wrapped)
|
||||
}
|
||||
|
||||
// CloneWithMetadataFromMapIfNeeded clones the given resource with the given metadata if the resource supports it.
|
||||
func CloneWithMetadataFromMapIfNeeded(m []map[string]any, r resource.Resource) resource.Resource {
|
||||
wmp, ok := r.(resource.WithResourceMetaProvider)
|
||||
if !ok {
|
||||
return r
|
||||
|
Reference in New Issue
Block a user