mirror of
https://github.com/gohugoio/hugo.git
synced 2025-08-18 21:11:19 +02:00
@@ -306,19 +306,51 @@ func (p *pageMeta) Weight() int {
|
||||
return p.weight
|
||||
}
|
||||
|
||||
func (pm *pageMeta) setMetadata(p *pageState, frontmatter map[string]interface{}) error {
|
||||
if frontmatter == nil {
|
||||
func (pm *pageMeta) setMetadata(bucket *pagesMapBucket, p *pageState, frontmatter map[string]interface{}) error {
|
||||
if frontmatter == nil && bucket.cascade == nil {
|
||||
return errors.New("missing frontmatter data")
|
||||
}
|
||||
|
||||
pm.params = make(map[string]interface{})
|
||||
|
||||
// Needed for case insensitive fetching of params values
|
||||
maps.ToLower(frontmatter)
|
||||
if frontmatter != nil {
|
||||
// Needed for case insensitive fetching of params values
|
||||
maps.ToLower(frontmatter)
|
||||
if p.IsNode() {
|
||||
// Check for any cascade define on itself.
|
||||
if cv, found := frontmatter["cascade"]; found {
|
||||
cvm := cast.ToStringMap(cv)
|
||||
if bucket.cascade == nil {
|
||||
bucket.cascade = cvm
|
||||
} else {
|
||||
for k, v := range cvm {
|
||||
bucket.cascade[k] = v
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if bucket != nil && bucket.cascade != nil {
|
||||
for k, v := range bucket.cascade {
|
||||
if _, found := frontmatter[k]; !found {
|
||||
frontmatter[k] = v
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
frontmatter = make(map[string]interface{})
|
||||
for k, v := range bucket.cascade {
|
||||
frontmatter[k] = v
|
||||
}
|
||||
}
|
||||
|
||||
var mtime time.Time
|
||||
if p.File().FileInfo() != nil {
|
||||
mtime = p.File().FileInfo().ModTime()
|
||||
var contentBaseName string
|
||||
if !p.File().IsZero() {
|
||||
contentBaseName = p.File().ContentBaseName()
|
||||
if p.File().FileInfo() != nil {
|
||||
mtime = p.File().FileInfo().ModTime()
|
||||
}
|
||||
}
|
||||
|
||||
var gitAuthorDate time.Time
|
||||
@@ -331,7 +363,7 @@ func (pm *pageMeta) setMetadata(p *pageState, frontmatter map[string]interface{}
|
||||
Params: pm.params,
|
||||
Dates: &pm.Dates,
|
||||
PageURLs: &pm.urlPaths,
|
||||
BaseFilename: p.File().ContentBaseName(),
|
||||
BaseFilename: contentBaseName,
|
||||
ModTime: mtime,
|
||||
GitAuthorDate: gitAuthorDate,
|
||||
}
|
||||
@@ -546,7 +578,7 @@ func (pm *pageMeta) setMetadata(p *pageState, frontmatter map[string]interface{}
|
||||
|
||||
if isCJKLanguage != nil {
|
||||
pm.isCJKLanguage = *isCJKLanguage
|
||||
} else if p.s.siteCfg.hasCJKLanguage {
|
||||
} else if p.s.siteCfg.hasCJKLanguage && p.source.parsed != nil {
|
||||
if cjkRe.Match(p.source.parsed.Input()) {
|
||||
pm.isCJKLanguage = true
|
||||
} else {
|
||||
|
Reference in New Issue
Block a user