diff --git a/src/config/segment.go b/src/config/segment.go index 28d0452c..64b93d4b 100644 --- a/src/config/segment.go +++ b/src/config/segment.go @@ -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 } diff --git a/src/template/list.go b/src/template/list.go index f018ffc1..4a893451 100644 --- a/src/template/list.go +++ b/src/template/list.go @@ -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)