fix(templates): restore resolving logic

resolves #5848
This commit is contained in:
Jan De Dobbeleer 2024-11-07 17:58:18 +01:00 committed by Jan De Dobbeleer
parent 5ec18f230f
commit 84d132ed76
2 changed files with 13 additions and 4 deletions

View file

@ -119,10 +119,6 @@ func (segment *Segment) Execute(env runtime.Environment) {
return
}
if len(segment.Templates) != 0 {
segment.Template = segment.Templates.Resolve(segment.writer, "", segment.TemplatesLogic)
}
if segment.writer.Enabled() {
segment.Enabled = true
env.TemplateCache().AddSegmentData(segment.Name(), segment.writer)
@ -277,6 +273,11 @@ func (segment *Segment) folderKey() string {
}
func (segment *Segment) string() string {
result := segment.Templates.Resolve(segment.writer, "", segment.TemplatesLogic)
if len(result) != 0 {
return result
}
if len(segment.Template) == 0 {
segment.Template = segment.writer.Template()
}
@ -328,6 +329,10 @@ func (segment *Segment) evaluateNeeds() {
value += strings.Join(segment.BackgroundTemplates, "")
}
if len(segment.Templates) != 0 {
value += strings.Join(segment.Templates, "")
}
if !strings.Contains(value, ".Segments.") {
return
}

View file

@ -18,6 +18,10 @@ func (l List) Empty() bool {
}
func (l List) Resolve(context any, defaultValue string, logic Logic) string {
if l.Empty() {
return defaultValue
}
switch logic {
case FirstMatch:
return l.FirstMatch(context, defaultValue)