all repos — legit @ 01f27147baf80e2222927ddca9369c7d99b4ff3c

web frontend for git, written in go

routes/template.go (view raw)

 1package routes
 2
 3import (
 4	"html/template"
 5	"log"
 6	"net/http"
 7	"path/filepath"
 8
 9	"icyphox.sh/legit/git"
10)
11
12func (d *deps) Write404(w http.ResponseWriter) {
13	tpath := filepath.Join(d.c.Template.Dir, "*")
14	t := template.Must(template.ParseGlob(tpath))
15	w.WriteHeader(404)
16	if err := t.ExecuteTemplate(w, "404", nil); err != nil {
17		log.Printf("404 template: %s", err)
18	}
19}
20
21func (d *deps) Write500(w http.ResponseWriter) {
22	tpath := filepath.Join(d.c.Template.Dir, "*")
23	t := template.Must(template.ParseGlob(tpath))
24	w.WriteHeader(500)
25	if err := t.ExecuteTemplate(w, "500", nil); err != nil {
26		log.Printf("500 template: %s", err)
27	}
28}
29
30func (d *deps) listFiles(files []git.NiceTree, data map[string]any, w http.ResponseWriter) {
31	tpath := filepath.Join(d.c.Template.Dir, "*")
32	t := template.Must(template.ParseGlob(tpath))
33
34	data["files"] = files
35	data["meta"] = d.c.Meta
36
37	if err := t.ExecuteTemplate(w, "repo", data); err != nil {
38		log.Println(err)
39		return
40	}
41}
42
43func (d *deps) showFile(content string, data map[string]any, w http.ResponseWriter) {
44	tpath := filepath.Join(d.c.Template.Dir, "*")
45	t := template.Must(template.ParseGlob(tpath))
46
47	// TODO: Process content here.
48
49	data["content"] = content
50	data["meta"] = d.c.Meta
51
52	if err := t.ExecuteTemplate(w, "file", data); err != nil {
53		log.Println(err)
54		return
55	}
56}