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}