krz/gitbay

A CLI-first git forge.

clone: git clone https://gitbay.org/krz/gitbay.git

repo-descriptions: internal/web/web.go · raw

 1// Package web holds the server-rendered templates and static assets for the
 2// read-only UI. No JavaScript, no build step.
 3package web
 4
 5import (
 6	"embed"
 7	"html/template"
 8	"io"
 9)
10
11//go:embed templates/*.html
12var templateFS embed.FS
13
14//go:embed static/style.css
15var StyleCSS []byte
16
17// Render executes the named page template with the shared layout.
18func Render(w io.Writer, page string, data any) error {
19	t, err := template.Must(
20		template.ParseFS(templateFS, "templates/layout.html"),
21	).ParseFS(templateFS, "templates/"+page)
22	if err != nil {
23		return err
24	}
25	return t.ExecuteTemplate(w, "layout", data)
26}