1
0
Fork 0
mirror of https://github.com/miniflux/v2.git synced 2025-08-06 17:41:00 +00:00

perf(template): use ParseFS to directly parse the embedded template data

Use ParseFS to directly parse the embedded template data, instead of manually
reading it and then using Parse.
This commit is contained in:
Julien Voisin 2025-07-18 05:46:33 +02:00 committed by GitHub
parent dc81725788
commit 4336a0bd85
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 16 additions and 9 deletions

View file

@ -55,7 +55,6 @@ func (e *Engine) ParseTemplates() error {
}
commonTemplateContents.Write(fileData)
}
dirEntries, err = viewTemplateFiles.ReadDir("templates/views")
if err != nil {
return err
@ -86,15 +85,10 @@ func (e *Engine) ParseTemplates() error {
for _, dirEntry := range dirEntries {
templateName := dirEntry.Name()
fileData, err := standaloneTemplateFiles.ReadFile("templates/standalone/" + dirEntry.Name())
if err != nil {
return err
}
slog.Debug("Parsing template",
slog.String("template_name", templateName),
)
e.templates[templateName] = template.Must(template.New("base").Funcs(e.funcMap.Map()).Parse(string(fileData)))
e.templates[templateName] = template.Must(template.New("base").Funcs(e.funcMap.Map()).ParseFS(standaloneTemplateFiles, "templates/standalone/"+dirEntry.Name()))
}
return nil
@ -130,8 +124,7 @@ func (e *Engine) Render(name string, data map[string]interface{}) []byte {
})
var b bytes.Buffer
err := tpl.ExecuteTemplate(&b, "base", data)
if err != nil {
if err := tpl.ExecuteTemplate(&b, "base", data); err != nil {
panic(err)
}

View file

@ -0,0 +1,14 @@
// SPDX-FileCopyrightText: Copyright The Miniflux Authors. All rights reserved.
// SPDX-License-Identifier: Apache-2.0
package template // import "miniflux.app/v2/internal/template"
import (
"testing"
)
func TestParseTemplates(t *testing.T) {
if err := NewEngine(nil).ParseTemplates(); err != nil {
t.Fatal(err)
}
}