converge/cmd/templaterender/render.go

46 lines
779 B
Go

package main
import (
"context"
"converge/pkg/templates"
"github.com/a-h/templ"
"os"
"path/filepath"
)
type RenderFunc func(secure string, host string, username string) templ.Component
type Params struct {
secure string
host string
username string
}
type Rendering struct {
params Params
render RenderFunc
}
func render(dir string, name string, params Params, render RenderFunc) {
fname := filepath.Join(dir, name)
f, err := os.Create(fname)
if err != nil {
panic(err)
}
defer f.Close()
render(params.secure, params.host, params.username).Render(context.Background(), f)
}
func main() {
dir := "html"
params := Params{
secure: "s",
host: "example.com",
username: "converge",
}
render(dir, "index.html", params, templates.Index)
}