html.go

 1package pgit
 2
 3import (
 4	"html/template"
 5	"os"
 6	"path/filepath"
 7)
 8
 9func (c *Config) WriteHTML(writeData *WriteData) {
10	ts, err := template.ParseFS(
11		EmbedFS,
12		writeData.Template,
13		"html/header.partial.tmpl",
14		"html/footer.partial.tmpl",
15		"html/base.layout.tmpl",
16	)
17	Bail(err)
18
19	dir := filepath.Join(c.Outdir, writeData.Subdir)
20	err = os.MkdirAll(dir, os.ModePerm)
21	Bail(err)
22
23	fp := filepath.Join(dir, writeData.Filename)
24	c.Logger.Info("writing", "filepath", fp)
25
26	w, err := os.OpenFile(fp, os.O_RDWR|os.O_CREATE|os.O_TRUNC, 0644)
27	Bail(err)
28
29	err = ts.Execute(w, writeData.Data)
30	Bail(err)
31}
32
33func (c *Config) CopyStatic(dir string) error {
34	entries, err := StaticFS.ReadDir(dir)
35	Bail(err)
36
37	for _, e := range entries {
38		infp := filepath.Join(dir, e.Name())
39		if e.IsDir() {
40			continue
41		}
42
43		w, err := StaticFS.ReadFile(infp)
44		Bail(err)
45		fp := filepath.Join(c.Outdir, e.Name())
46		c.Logger.Info("writing", "filepath", fp)
47		err = os.WriteFile(fp, w, 0644)
48		Bail(err)
49	}
50
51	return nil
52}