diff --git a/categories/categories.html b/categories/categories.html
deleted file mode 100644
index ea099c9..0000000
--- a/categories/categories.html
+++ /dev/null
@@ -1,38 +0,0 @@
-{{define "category x"}}Category {{. | beautifulName}}{{end}}
-{{define "category list heading"}}Category list{{end}}
-
-{{define "category card"}}
-{{$hyphaName := .HyphaName}}
-{{$givenPermission := .GivenPermissionToModify}}
-
-{{end}}
\ No newline at end of file
diff --git a/categories/view_card.html b/categories/view_card.html
new file mode 100644
index 0000000..1f145c2
--- /dev/null
+++ b/categories/view_card.html
@@ -0,0 +1,35 @@
+{{define "category card"}}
+ {{$hyphaName := .HyphaName}}
+ {{$givenPermission := .GivenPermissionToModify}}
+
+{{end}}
\ No newline at end of file
diff --git a/categories/view_list.html b/categories/view_list.html
index 8cd79da..fdd21db 100644
--- a/categories/view_list.html
+++ b/categories/view_list.html
@@ -1,6 +1,7 @@
+{{define "title"}}Category list{{end}}
{{define "body"}}
- {{block `category list heading` .}}Category list{{end}}
+ {{template "title"}}
{{if len .Categories}}
{{range .Categories}}
diff --git a/categories/view_page.html b/categories/view_page.html
index 6d45d51..569df58 100644
--- a/categories/view_page.html
+++ b/categories/view_page.html
@@ -1,3 +1,4 @@
+{{define "title"}}Category {{.CatName | beautifulName}}{{end}}
{{define "body"}}
{{$catName := .CatName}}
diff --git a/categories/views.go b/categories/views.go
index 370edf5..d44dd71 100644
--- a/categories/views.go
+++ b/categories/views.go
@@ -3,7 +3,6 @@ package categories
import (
"embed"
"github.com/bouncepaw/mycorrhiza/cfg"
- "github.com/bouncepaw/mycorrhiza/util"
"github.com/bouncepaw/mycorrhiza/viewutil"
"log"
"strings"
@@ -26,27 +25,22 @@ const categoriesRu = `
var (
//go:embed *.html
- fs embed.FS
- m = template.Must
- baseEn, baseRu *template.Template
- viewListChain, viewPageChain viewutil.Chain
- categoryTemplatesEn *template.Template
- categoryTemplatesRu *template.Template
+ fs embed.FS
+ m = template.Must
+ baseEn, baseRu *template.Template
+ viewListChain, viewPageChain, viewCardChain viewutil.Chain
)
func prepareViews() {
- categoryTemplatesEn = template.Must(template.
- New("category").
- Funcs(
- template.FuncMap{
- "beautifulName": util.BeautifulName,
- }).
- ParseFS(fs, "categories.html"))
- categoryTemplatesRu = template.Must(template.Must(categoryTemplatesEn.Clone()).Parse(categoriesRu))
baseEn = m(viewutil.BaseEn.Clone())
baseRu = m(viewutil.BaseRu.Clone())
+ viewCardChain = viewutil.
+ En(
+ m(m(baseEn.Clone()).ParseFS(fs, "view_card.html"))).
+ Ru(
+ m(m(m(baseRu.Clone()).ParseFS(fs, "view_card.html")).Parse(categoriesRu)))
viewListChain = viewutil.
En(
m(m(baseEn.Clone()).ParseFS(fs, "view_list.html"))).
@@ -59,35 +53,15 @@ func prepareViews() {
m(m(m(baseRu.Clone()).ParseFS(fs, "view_page.html")).Parse(categoriesRu)))
}
-func localizedCatTemplates(meta viewutil.Meta) *template.Template {
- if meta.Lc.Locale == "ru" {
- return categoryTemplatesRu
- }
- return categoryTemplatesEn
-}
-
-func localizedCatTemplateAsString(meta viewutil.Meta, name string, datum ...interface{}) string {
- var buf strings.Builder
- var err error
- if len(datum) == 1 {
- err = localizedCatTemplates(meta).ExecuteTemplate(&buf, name, datum[0])
- } else {
- err = localizedCatTemplates(meta).ExecuteTemplate(&buf, name, nil)
- }
- if err != nil {
- log.Println(err)
- return ""
- }
- return buf.String()
+type cardData struct {
+ HyphaName string
+ Categories []string
+ GivenPermissionToModify bool
}
func CategoryCard(meta viewutil.Meta, hyphaName string) string {
var buf strings.Builder
- err := localizedCatTemplates(meta).ExecuteTemplate(&buf, "category card", struct {
- HyphaName string
- Categories []string
- GivenPermissionToModify bool
- }{
+ err := viewCardChain.Get(meta).ExecuteTemplate(&buf, "category card", cardData{
hyphaName,
WithHypha(hyphaName),
meta.U.CanProceed("add-to-category"),
@@ -109,7 +83,6 @@ func categoryPage(meta viewutil.Meta, catName string) {
if err := viewPageChain.Get(meta).ExecuteTemplate(meta.W, "page", pageData{
BaseData: viewutil.BaseData{
Meta: meta,
- Title: localizedCatTemplateAsString(meta, "category x", catName),
HeaderLinks: cfg.HeaderLinks,
CommonScripts: cfg.CommonScripts,
},
@@ -130,7 +103,6 @@ func categoryList(meta viewutil.Meta) {
if err := viewListChain.Get(meta).ExecuteTemplate(meta.W, "page", listData{
BaseData: viewutil.BaseData{
Meta: meta,
- Title: localizedCatTemplateAsString(meta, "category list heading"),
HeaderLinks: cfg.HeaderLinks,
CommonScripts: cfg.CommonScripts,
},
diff --git a/viewutil/base.html b/viewutil/base.html
index d6fcbc7..c604709 100644
--- a/viewutil/base.html
+++ b/viewutil/base.html
@@ -4,7 +4,7 @@
- {{.Title}}
+ {{block "title" .}}{{end}}
diff --git a/viewutil/viewutil.go b/viewutil/viewutil.go
index fc0963c..af37550 100644
--- a/viewutil/viewutil.go
+++ b/viewutil/viewutil.go
@@ -52,15 +52,18 @@ func localizedBaseWithWeirdBody(meta Meta) *template.Template {
}
return BaseEn
}()
- return m(m(t.Clone()).Parse(`{{define "body"}}{{.Body}}{{end}}`))
+ return m(m(t.Clone()).Parse(`
+{{define "body"}}{{.Body}}{{end}}
+{{define "title"}}{{.Title}}{{end}}
+`))
}
type BaseData struct {
Meta Meta
- Title string
HeadElements []string
HeaderLinks []cfg.HeaderLink
CommonScripts []string
+ Title string // TODO: remove
Body string // TODO: remove
}