mirror of
https://github.com/miniflux/v2.git
synced 2025-08-11 17:51:01 +00:00
refactor(template): make use of template.ParseFS
This commit is contained in:
parent
b3fce752d2
commit
2565ff930c
2 changed files with 14 additions and 42 deletions
|
@ -8,7 +8,6 @@ import (
|
|||
"embed"
|
||||
"html/template"
|
||||
"log/slog"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"miniflux.app/v2/internal/locale"
|
||||
|
@ -41,60 +40,31 @@ func NewEngine(router *mux.Router) *Engine {
|
|||
|
||||
// ParseTemplates parses template files embed into the application.
|
||||
func (e *Engine) ParseTemplates() error {
|
||||
var commonTemplateContents strings.Builder
|
||||
funcMap := e.funcMap.Map()
|
||||
commonTemplates := template.Must(template.New("").Funcs(funcMap).ParseFS(commonTemplateFiles, "templates/common/*.html"))
|
||||
|
||||
dirEntries, err := commonTemplateFiles.ReadDir("templates/common")
|
||||
dirEntries, err := viewTemplateFiles.ReadDir("templates/views")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
for _, dirEntry := range dirEntries {
|
||||
fileData, err := commonTemplateFiles.ReadFile("templates/common/" + dirEntry.Name())
|
||||
fullName := "templates/views/" + dirEntry.Name()
|
||||
slog.Debug("Parsing template", slog.String("template_name", fullName))
|
||||
commonTemplatesClone, err := commonTemplates.Clone()
|
||||
if err != nil {
|
||||
return err
|
||||
panic("Unable to clone the common template")
|
||||
}
|
||||
commonTemplateContents.Write(fileData)
|
||||
}
|
||||
|
||||
dirEntries, err = viewTemplateFiles.ReadDir("templates/views")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
for _, dirEntry := range dirEntries {
|
||||
templateName := dirEntry.Name()
|
||||
fileData, err := viewTemplateFiles.ReadFile("templates/views/" + dirEntry.Name())
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
var templateContents strings.Builder
|
||||
templateContents.WriteString(commonTemplateContents.String())
|
||||
templateContents.Write(fileData)
|
||||
|
||||
slog.Debug("Parsing template",
|
||||
slog.String("template_name", templateName),
|
||||
)
|
||||
|
||||
e.templates[templateName] = template.Must(template.New("main").Funcs(e.funcMap.Map()).Parse(templateContents.String()))
|
||||
e.templates[dirEntry.Name()] = template.Must(commonTemplatesClone.ParseFS(viewTemplateFiles, fullName))
|
||||
}
|
||||
|
||||
dirEntries, err = standaloneTemplateFiles.ReadDir("templates/standalone")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
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)))
|
||||
fullName := "templates/standalone/" + dirEntry.Name()
|
||||
slog.Debug("Parsing template", slog.String("template_name", fullName))
|
||||
e.templates[dirEntry.Name()] = template.Must(template.New(dirEntry.Name()).Funcs(funcMap).ParseFS(standaloneTemplateFiles, fullName))
|
||||
}
|
||||
|
||||
return nil
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
{{ define "base" }}
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
|
@ -11,4 +12,5 @@
|
|||
<body>
|
||||
<p>{{ t "page.offline.message" }} - <a href="{{ route "unread" }}">{{ t "page.offline.refresh_page" }}</a>.</p>
|
||||
</body>
|
||||
</html>
|
||||
</html>
|
||||
{{end}}
|
Loading…
Add table
Add a link
Reference in a new issue