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"
|
"embed"
|
||||||
"html/template"
|
"html/template"
|
||||||
"log/slog"
|
"log/slog"
|
||||||
"strings"
|
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"miniflux.app/v2/internal/locale"
|
"miniflux.app/v2/internal/locale"
|
||||||
|
@ -41,60 +40,31 @@ func NewEngine(router *mux.Router) *Engine {
|
||||||
|
|
||||||
// ParseTemplates parses template files embed into the application.
|
// ParseTemplates parses template files embed into the application.
|
||||||
func (e *Engine) ParseTemplates() error {
|
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 {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, dirEntry := range dirEntries {
|
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 {
|
if err != nil {
|
||||||
return err
|
panic("Unable to clone the common template")
|
||||||
}
|
}
|
||||||
commonTemplateContents.Write(fileData)
|
e.templates[dirEntry.Name()] = template.Must(commonTemplatesClone.ParseFS(viewTemplateFiles, fullName))
|
||||||
}
|
|
||||||
|
|
||||||
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()))
|
|
||||||
}
|
}
|
||||||
|
|
||||||
dirEntries, err = standaloneTemplateFiles.ReadDir("templates/standalone")
|
dirEntries, err = standaloneTemplateFiles.ReadDir("templates/standalone")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, dirEntry := range dirEntries {
|
for _, dirEntry := range dirEntries {
|
||||||
templateName := dirEntry.Name()
|
fullName := "templates/standalone/" + dirEntry.Name()
|
||||||
fileData, err := standaloneTemplateFiles.ReadFile("templates/standalone/" + dirEntry.Name())
|
slog.Debug("Parsing template", slog.String("template_name", fullName))
|
||||||
if err != nil {
|
e.templates[dirEntry.Name()] = template.Must(template.New(dirEntry.Name()).Funcs(funcMap).ParseFS(standaloneTemplateFiles, fullName))
|
||||||
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)))
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
{{ define "base" }}
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
|
@ -12,3 +13,4 @@
|
||||||
<p>{{ t "page.offline.message" }} - <a href="{{ route "unread" }}">{{ t "page.offline.refresh_page" }}</a>.</p>
|
<p>{{ t "page.offline.message" }} - <a href="{{ route "unread" }}">{{ t "page.offline.refresh_page" }}</a>.</p>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
{{end}}
|
Loading…
Add table
Add a link
Reference in a new issue