+10
-3
commands/build.go
+10
-3
commands/build.go
···
26
type Pages struct {
27
Dirs []Dir
28
Files []types.File
29
}
30
31
func NewPages() (*Pages, error) {
···
35
if err != nil {
36
return nil, err
37
}
38
39
for _, entry := range entries {
40
if entry.IsDir() {
···
96
return err
97
}
98
99
-
if err := pages.ProcessFiles(drafts); err != nil {
100
return err
101
}
102
103
-
if err := pages.ProcessDirectories(drafts); err != nil {
104
return err
105
}
106
···
134
return err
135
}
136
}
137
-
if err := f.Render(destFile, nil, drafts); err != nil {
138
return fmt.Errorf("error: failed to render %s: %w", destFile, err)
139
}
140
}
···
198
}
199
feedFile := filepath.Join(dstDir, "feed.xml")
200
os.WriteFile(feedFile, xml, 0755)
201
}
202
203
return nil
···
26
type Pages struct {
27
Dirs []Dir
28
Files []types.File
29
+
30
+
// A map of directories to their respective posts.
31
+
AllPosts map[string][]types.Post
32
}
33
34
func NewPages() (*Pages, error) {
···
38
if err != nil {
39
return nil, err
40
}
41
+
42
+
pages.AllPosts = make(map[string][]types.Post)
43
44
for _, entry := range entries {
45
if entry.IsDir() {
···
101
return err
102
}
103
104
+
if err := pages.ProcessDirectories(drafts); err != nil {
105
return err
106
}
107
108
+
if err := pages.ProcessFiles(drafts); err != nil {
109
return err
110
}
111
···
139
return err
140
}
141
}
142
+
if err := f.Render(destFile, p.AllPosts, drafts); err != nil {
143
return fmt.Errorf("error: failed to render %s: %w", destFile, err)
144
}
145
}
···
203
}
204
feedFile := filepath.Join(dstDir, "feed.xml")
205
os.WriteFile(feedFile, xml, 0755)
206
+
207
+
p.AllPosts[dir.Name] = posts
208
}
209
210
return nil
+1
-9
commands/serve.go
+1
-9
commands/serve.go
···
2
3
import (
4
"fmt"
5
-
"log"
6
"net/http"
7
)
8
9
-
func requestLog(h http.Handler) http.Handler {
10
-
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
11
-
h.ServeHTTP(w, r)
12
-
log.Printf("%s\t%s", r.Method, r.URL.Path)
13
-
})
14
-
}
15
-
16
func Serve(addr string) error {
17
fs := http.FileServer(http.Dir("./build"))
18
mux := http.NewServeMux()
19
mux.Handle("/", fs)
20
fmt.Printf("vite: serving on %s\n", addr)
21
-
if err := http.ListenAndServe(addr, requestLog(mux)); err != nil {
22
return err
23
}
24
return nil
···
2
3
import (
4
"fmt"
5
"net/http"
6
)
7
8
func Serve(addr string) error {
9
fs := http.FileServer(http.Dir("./build"))
10
mux := http.NewServeMux()
11
mux.Handle("/", fs)
12
fmt.Printf("vite: serving on %s\n", addr)
13
+
if err := http.ListenAndServe(addr, mux); err != nil {
14
return err
15
}
16
return nil