diff --git a/PageHandlers/Index.go b/PageHandlers/Index.go index cf322a6..f8cb73a 100644 --- a/PageHandlers/Index.go +++ b/PageHandlers/Index.go @@ -3,30 +3,16 @@ package PageHandlers import ( _ "embed" "fmt" - "html/template" "net/http" "strconv" "ytdlp-viewer/DirectoryIndexers" ) -//go:embed templates/index.html -var indexTmplSource string -var indexTmpl *template.Template - type IndexPageData struct { FileCount string Files map[string]DirectoryIndexers.VideoFile } -func init() { - var err error - indexTmpl = template.New("index.tmpl") - indexTmpl, err = indexTmpl.Parse(indexTmplSource) - if err != nil { - fmt.Println(err) - } -} - func Index(writer http.ResponseWriter, request *http.Request, FL *DirectoryIndexers.FileList) { FL.RLock() defer FL.RUnlock() @@ -36,7 +22,9 @@ func Index(writer http.ResponseWriter, request *http.Request, FL *DirectoryIndex Files: FL.Files, } - err := indexTmpl.Execute(writer, data) + fmt.Println(tmpl["index.html"].Name()) + + err := tmpl["index.html"].ExecuteTemplate(writer, "base", data) if err != nil { fmt.Println(err) } diff --git a/PageHandlers/Search.go b/PageHandlers/Search.go index 4b9e7fc..7b747a4 100644 --- a/PageHandlers/Search.go +++ b/PageHandlers/Search.go @@ -3,7 +3,6 @@ package PageHandlers import ( _ "embed" "fmt" - "html/template" "log" "net/http" "strconv" @@ -11,19 +10,6 @@ import ( "ytdlp-viewer/DirectoryIndexers" ) -//go:embed templates/search.html -var searchTmplSource string -var searchTmpl *template.Template - -func init() { - var err error - searchTmpl = template.New("search.tmpl") - searchTmpl, err = searchTmpl.Parse(searchTmplSource) - if err != nil { - fmt.Println(err) - } -} - type SearchPageData struct { Results []DirectoryIndexers.VideoFile ResultCount string @@ -59,7 +45,7 @@ func SearchHandler(writer http.ResponseWriter, request *http.Request, FL *Direct SearchTerm: keys[0], } - err := searchTmpl.Execute(writer, data) + err := tmpl["search.html"].ExecuteTemplate(writer, "base", data) if err != nil { fmt.Println(err) } diff --git a/PageHandlers/Templates.go b/PageHandlers/Templates.go new file mode 100644 index 0000000..cd76a5b --- /dev/null +++ b/PageHandlers/Templates.go @@ -0,0 +1,58 @@ +package PageHandlers + +import ( + _ "embed" + "fmt" + "html/template" +) + +//go:embed templates/index.html +var indexTmplSource string + +//go:embed templates/view.html +var viewTmplSource string + +//go:embed templates/search.html +var searchTmplSource string + +//go:embed templates/base.html +var baseTmplSource string + +var tmpl map[string]*template.Template + +func init() { + tmpl = make(map[string]*template.Template) + + var err error + tmpl["index.html"] = template.New("index.html") + tmpl["index.html"], err = tmpl["index.html"].Parse(baseTmplSource) + if err != nil { + fmt.Println(err) + } + tmpl["index.html"], err = tmpl["index.html"].Parse(indexTmplSource) + if err != nil { + fmt.Println(err) + } + + fmt.Println(tmpl["index.html"].Name()) + + tmpl["search.html"] = template.New("search.html") + tmpl["search.html"], err = tmpl["search.html"].Parse(searchTmplSource) + if err != nil { + fmt.Println(err) + } + tmpl["search.html"], err = tmpl["search.html"].Parse(baseTmplSource) + if err != nil { + fmt.Println(err) + } + + tmpl["view.html"] = template.New("view.html") + tmpl["view.html"], err = tmpl["view.html"].Parse(viewTmplSource) + if err != nil { + fmt.Println(err) + } + tmpl["view.html"], err = tmpl["view.html"].Parse(baseTmplSource) + if err != nil { + fmt.Println(err) + } +} diff --git a/PageHandlers/View.go b/PageHandlers/View.go index 2ab8cec..32c9110 100644 --- a/PageHandlers/View.go +++ b/PageHandlers/View.go @@ -3,16 +3,11 @@ package PageHandlers import ( _ "embed" "fmt" - "html/template" "log" "net/http" "ytdlp-viewer/DirectoryIndexers" ) -//go:embed templates/view.html -var viewTmplSource string -var viewTmpl *template.Template - type ViewPageData struct { Title string Filename string @@ -20,15 +15,6 @@ type ViewPageData struct { Extension string } -func init() { - var err error - viewTmpl = template.New("view.tmpl") - viewTmpl, err = viewTmpl.Parse(viewTmplSource) - if err != nil { - fmt.Println(err) - } -} - func View(writer http.ResponseWriter, request *http.Request, FL *DirectoryIndexers.FileList) { FL.RLock() defer FL.RUnlock() @@ -51,7 +37,7 @@ func View(writer http.ResponseWriter, request *http.Request, FL *DirectoryIndexe Extension: video.Extension, } - err := viewTmpl.Execute(writer, data) + err := tmpl["view.html"].ExecuteTemplate(writer, "base", data) if err != nil { fmt.Println(err) } diff --git a/PageHandlers/templates/base.html b/PageHandlers/templates/base.html new file mode 100644 index 0000000..785dde3 --- /dev/null +++ b/PageHandlers/templates/base.html @@ -0,0 +1,32 @@ +{{define "base"}} + + + + + + {{template "head" .}} + + +
+

yt-dlp Archive Viewer

+
+ +
+
+
+
+ {{template "body" .}} +
+ + +{{end}} \ No newline at end of file diff --git a/PageHandlers/templates/index.html b/PageHandlers/templates/index.html index f1efe94..4928a2c 100644 --- a/PageHandlers/templates/index.html +++ b/PageHandlers/templates/index.html @@ -1,11 +1,9 @@ - - - - +{{define "head"}} ytdlp-viewer | {{.FileCount}} - - -
+{{end}} + +{{define "body"}} +

yt-dlp Viewer

{{.FileCount}} files in this archive

@@ -17,8 +15,7 @@ {{range .Files}} - {{.Id}} - {{.Title}}
+ {{.Id}} - {{.Title}}
{{end}} -
- - \ No newline at end of file + +{{end}} diff --git a/PageHandlers/templates/search.html b/PageHandlers/templates/search.html index 3a6ae95..d569350 100644 --- a/PageHandlers/templates/search.html +++ b/PageHandlers/templates/search.html @@ -1,10 +1,8 @@ - - - - +{{define "head"}} Search result | {{.SearchTerm}} - - +{{end}} + +{{define "body"}}