fix(segment): add to cache after rendering

This commit is contained in:
Jan De Dobbeleer 2024-11-07 20:33:32 +01:00 committed by Jan De Dobbeleer
parent 84d132ed76
commit ce027593b1
2 changed files with 9 additions and 11 deletions

View file

@ -115,14 +115,11 @@ func (segment *Segment) Execute(env runtime.Environment) {
return return
} }
if shouldHideForWidth(segment.env, segment.MinWidth, segment.MaxWidth) { if shouldHideForWidth(env, segment.MinWidth, segment.MaxWidth) {
return return
} }
if segment.writer.Enabled() { segment.Enabled = segment.writer.Enabled()
segment.Enabled = true
env.TemplateCache().AddSegmentData(segment.Name(), segment.writer)
}
} }
func (segment *Segment) Render() { func (segment *Segment) Render() {
@ -138,7 +135,8 @@ func (segment *Segment) Render() {
return return
} }
segment.writer.SetText(text) segment.SetText(text)
segment.env.TemplateCache().AddSegmentData(segment.Name(), segment.writer)
segment.setCache() segment.setCache()
} }

View file

@ -59,11 +59,6 @@ func (e *Engine) writeSegments(out chan result, block *config.Block) {
results[res.index] = res.segment results[res.index] = res.segment
name := res.segment.Name()
if !slices.Contains(executed, name) {
executed = append(executed, name)
}
segment := results[current] segment := results[current]
for segment != nil { for segment != nil {
@ -80,6 +75,11 @@ func (e *Engine) writeSegments(out chan result, block *config.Block) {
current++ current++
segment = results[current] segment = results[current]
name := res.segment.Name()
if !slices.Contains(executed, name) {
executed = append(executed, name)
}
} }
default: default:
runtime.Gosched() runtime.Gosched()