forked from tangled.org/core
this repo has no description

appview: pages: enable fast-reload for executeRepo

authored by oppi.li and committed by Tangled d3fb0e59 76165f95

Changed files
+16 -8
appview
pages
+16 -8
appview/pages/pages.go
··· 198 return nil 199 } 200 201 - func (p *Pages) execute(name string, w io.Writer, params any) error { 202 // In dev mode, reload the template from disk before executing 203 if p.dev { 204 - if err := p.loadTemplateFromDisk(name); err != nil { 205 - log.Printf("warning: failed to reload template %s from disk: %v", name, err) 206 // Continue with the existing template 207 } 208 } 209 210 - tmpl, exists := p.t[name] 211 if !exists { 212 - return fmt.Errorf("template not found: %s", name) 213 } 214 215 - return tmpl.ExecuteTemplate(w, "layouts/base", params) 216 } 217 218 func (p *Pages) executePlain(name string, w io.Writer, params any) error { 219 - return p.t[name].Execute(w, params) 220 } 221 222 func (p *Pages) executeRepo(name string, w io.Writer, params any) error { 223 - return p.t[name].ExecuteTemplate(w, "layouts/repobase", params) 224 } 225 226 type LoginParams struct {
··· 198 return nil 199 } 200 201 + func (p *Pages) executeOrReload(templateName string, w io.Writer, base string, params any) error { 202 // In dev mode, reload the template from disk before executing 203 if p.dev { 204 + if err := p.loadTemplateFromDisk(templateName); err != nil { 205 + log.Printf("warning: failed to reload template %s from disk: %v", templateName, err) 206 // Continue with the existing template 207 } 208 } 209 210 + tmpl, exists := p.t[templateName] 211 if !exists { 212 + return fmt.Errorf("template not found: %s", templateName) 213 } 214 215 + if base == "" { 216 + return tmpl.Execute(w, params) 217 + } else { 218 + return tmpl.ExecuteTemplate(w, base, params) 219 + } 220 + } 221 + 222 + func (p *Pages) execute(name string, w io.Writer, params any) error { 223 + return p.executeOrReload(name, w, "layouts/base", params) 224 } 225 226 func (p *Pages) executePlain(name string, w io.Writer, params any) error { 227 + return p.executeOrReload(name, w, "", params) 228 } 229 230 func (p *Pages) executeRepo(name string, w io.Writer, params any) error { 231 + return p.executeOrReload(name, w, "layouts/repobase", params) 232 } 233 234 type LoginParams struct {