Commit befe10e

Eric Bower  ·  2023-06-19 00:08:50 -0400 EDT
parent 002fb3a
refactor: html links mostly working
10 files changed,  +135, -105
+3, -1
......@@ -12,6 +12,8 @@
1212
1313 <link rel="stylesheet" href="/main.css" />
1414 </head>
15- <body>{{template "content" .}}</body>
15+ <body>
16+ {{template "content" .}}
17+ </body>
1618 </html>
1719 {{end}}
+48, -47
......@@ -1,49 +1,50 @@
1-{{- template "base" . -}}
1+{{template "base" .}}
22 {{define "title"}}commit log{{end}}
33
4-{{- define "content"}}
5-
6-<dl>
7- <dt>commit</dt>
8- <dd><a href="{{.Data.CommitURL}}">{{.Data.Commit.ID}}</a></dd>
9-
10- <dt>parent</dt>
11- <dd><a href="{{.Data.ParentURL}}">parent {{.Data.Parent}}</a></dd>
12-
13- <dt>author</dt>
14- <dd>{{.Data.Commit.Author.Name}}</dd>
15-
16- <dt>date</dt>
17- <dd>{{.Data.Commit.Author.When}}</dd>
18-</dl>
19-
20-<p>
21-{{.Data.Commit.Message}}
22-</p>
23-
24-<p>
25- <strong>{{.Data.Diff.NumFiles}}</strong> files changed,
26- <span class="color-green">+{{.Data.Diff.TotalAdditions}}</span>,
27- <span class="color-red">-{{.Data.Diff.TotalDeletions}}</span>
28-</p>
29-
30-{{range .Data.Diff.Files}}
31-
32-<p>
33- {{.OldMode}} {{.OldName}} => {{.Mode}} {{.Name}}
34-</p>
35-
36-<div>
37- <span class="color-green">+{{.NumAdditions}}</span>,
38- <span class="color-red">-{{.NumDeletions}}</span>
39-</div>
40-
41-<pre>
42-{{- range .Sections}}
43-{{- range .Lines}}
44-{{.Content}}
45-{{- end}}
46-{{- end}}
47-</pre>
48-{{- end}}
49-{{- end }}
4+{{define "content"}}
5+ {{template "header" .}}
6+
7+ <dl>
8+ <dt>commit</dt>
9+ <dd><a href="{{.Data.CommitURL}}">{{.Data.Commit.ID}}</a></dd>
10+
11+ <dt>parent</dt>
12+ <dd><a href="{{.Data.ParentURL}}">parent {{.Data.Parent}}</a></dd>
13+
14+ <dt>author</dt>
15+ <dd>{{.Data.Commit.Author.Name}}</dd>
16+
17+ <dt>date</dt>
18+ <dd>{{.Data.Commit.Author.When}}</dd>
19+ </dl>
20+
21+ <p>
22+ {{.Data.Commit.Message}}
23+ </p>
24+
25+ <p>
26+ <strong>{{.Data.Diff.NumFiles}}</strong> files changed,
27+ <span class="color-green">+{{.Data.Diff.TotalAdditions}}</span>,
28+ <span class="color-red">-{{.Data.Diff.TotalDeletions}}</span>
29+ </p>
30+
31+ {{range .Data.Diff.Files}}
32+
33+ <p>
34+ {{.OldMode}} {{.OldName}} => {{.Mode}} {{.Name}}
35+ </p>
36+
37+ <div>
38+ <span class="color-green">+{{.NumAdditions}}</span>,
39+ <span class="color-red">-{{.NumDeletions}}</span>
40+ </div>
41+
42+ <pre>
43+ {{range .Sections}}
44+ {{range .Lines}}
45+ {{.Content}}
46+ {{end}}
47+ {{end}}
48+ </pre>
49+ {{end}}
50+{{end}}
+7, -7
......@@ -1,10 +1,10 @@
1-{{- template "base" . -}}
1+{{template "base" .}}
22 {{define "title"}}file{{end}}
33
4-{{- define "content"}}
5-<h1>{{.Name}}</h1>
4+{{define "content"}}
5+ {{template "header" .}}
66
7-<pre>
8-{{.Data.Contents}}
9-</pre>
10-{{- end }}
7+ <h1>{{.Name}}</h1>
8+
9+ <pre>{{.Data.Contents}}</pre>
10+{{end }}
+6, -3
......@@ -1,5 +1,8 @@
1-{{- define "header" -}}
2-<h1>{{.RepoName}}</h1>
1+{{define "header"}}
2+<h1>
3+ <a href="/">repos</a>
4+ <span>&nbsp;/&nbsp;{{.RepoName}}</span>
5+</h1>
36
47 <div>
58 <a href="{{.Repo.SummaryURL}}">summary</a> |
......@@ -11,4 +14,4 @@
1114 <p>git clone {{.Repo.CloneURL}}</p>
1215
1316 <hr />
14-{{end -}}
17+{{end}}
+9, -7
......@@ -1,10 +1,12 @@
1-{{- template "base" . -}}
1+{{template "base" .}}
22
33 {{define "title"}}index{{end}}
44
5-{{- define "content" -}}
6-<h1>repos</h1>
7-{{- range .RepoList}}
8-<a href="{{.URL}}">{{.Name}}</a>
9-{{- end}}
10-{{- end -}}
5+{{define "content"}}
6+ <h1>repos</h1>
7+ {{range .RepoList}}
8+ <div>
9+ <a href="{{.URL}}">{{.Name}}</a>
10+ </div>
11+ {{end}}
12+{{end}}
+10, -8
......@@ -1,11 +1,13 @@
1-{{- template "base" . -}}
1+{{template "base" .}}
22
33 {{define "title"}}log{{end}}
44
5-{{- define "content" -}}
6-{{- range .Data.Log}}
7-<p>
8-{{.Author.When}} <a href="{{.URL}}">{{.Summary}}</a> {{.Author.Name}}
9-</p>
10-{{- end}}
11-{{- end -}}
5+{{define "content"}}
6+ {{template "header" .}}
7+
8+ {{range .Data.Log}}
9+ <p>
10+ {{.Author.When}} <a href="{{.URL}}">{{.Summary}}</a> {{.Author.Name}}
11+ </p>
12+ {{end}}
13+{{end}}
+14, -12
......@@ -1,15 +1,17 @@
1-{{- template "base" . -}}
1+{{template "base" .}}
22
33 {{define "title"}}refs{{end}}
44
5-{{- define "content"}}
6-<h2>branches</h2>
7-{{- range .Data.Branches}}
8-<p>{{.Refspec}}</p>
9-{{- end}}
10-
11-<h2>tags</h2>
12-{{- range .Data.Tags}}
13-<p>{{.Refspec}}</p>
14-{{- end}}
15-{{- end -}}
5+{{define "content"}}
6+ {{template "header" .}}
7+
8+ <h2>branches</h2>
9+ {{range .Data.Branches}}
10+ <p>{{.Refspec}}</p>
11+ {{end}}
12+
13+ <h2>tags</h2>
14+ {{range .Data.Tags}}
15+ <p>{{.Refspec}}</p>
16+ {{end}}
17+{{end}}
+5, -4
......@@ -1,7 +1,8 @@
1-{{- template "base" . -}}
1+{{template "base" .}}
22
33 {{define "title"}}summary{{end}}
44
5-{{- define "content" -}}
6-<p>{{.Data.Readme}}</p>
7-{{- end -}}
5+{{define "content"}}
6+ {{template "header" .}}
7+ <p>{{.Data.Readme}}</p>
8+{{end}}
+11, -6
......@@ -1,9 +1,14 @@
1-{{- template "base" . -}}
1+{{template "base" .}}
22
3-{{define "title"}}summary{{end}}
3+{{define "title"}}tree{{end}}
44
55 {{define "content"}}
6-{{- range .Data.Tree}}
7-<p>{{.URL}} {{.Path}} {{.NumLines}}</p>
8-{{- end}}
9-{{- end -}}
6+ {{template "header" .}}
7+
8+ {{range .Data.Tree}}
9+ <div>
10+ <a href="{{.URL}}">{{.Path}}</a>
11+ <span> (lines: {{.NumLines}})</span>
12+ </div>
13+ {{end}}
14+{{end}}
+22, -10
......@@ -63,16 +63,13 @@ type CommitPageData struct {
6363 CommitURL string
6464 }
6565
66-type WriteFile struct {
67- Repo *RepoData
68-}
69-
7066 type WriteData struct {
7167 Name string
7268 Template string
7369 Data interface{}
7470 RepoName string
7571 Subdir string
72+ Repo *RepoData
7673 }
7774
7875 func bail(err error) {
......@@ -136,13 +133,13 @@ func writeHtml(data *WriteData) {
136133 bail(err)
137134
138135 outdir := viper.GetString("outdir")
139- dir := path.Join(outdir, "html", data.RepoName, data.Subdir)
136+ dir := path.Join(outdir, data.RepoName, data.Subdir)
140137 fmt.Println(dir)
141138 fmt.Println(data.Name)
142139 err = os.MkdirAll(dir, os.ModePerm)
143140 bail(err)
144141
145- w, err := os.OpenFile(path.Join(dir, data.Name), os.O_WRONLY|os.O_CREATE, 0600)
142+ w, err := os.OpenFile(path.Join(dir, data.Name), os.O_WRONLY|os.O_CREATE, 0755)
146143 bail(err)
147144
148145 err = ts.Execute(w, data)
......@@ -166,7 +163,7 @@ func writeIndex(data *IndexPage) {
166163 err = os.MkdirAll(dir, os.ModePerm)
167164 bail(err)
168165
169- w, err := os.OpenFile(path.Join(dir, "index.html"), os.O_WRONLY|os.O_CREATE, 0600)
166+ w, err := os.OpenFile(path.Join(dir, "index.html"), os.O_WRONLY|os.O_CREATE, 0755)
170167 bail(err)
171168
172169 err = ts.Execute(w, data)
......@@ -178,6 +175,7 @@ func writeSummary(data *PageData) {
178175 Template: "./html/summary.page.tmpl",
179176 Data: data,
180177 RepoName: data.Repo.Name,
178+ Repo: data.Repo,
181179 })
182180 }
183181 func writeTree(data *PageData) {
......@@ -186,6 +184,7 @@ func writeTree(data *PageData) {
186184 Template: "./html/tree.page.tmpl",
187185 Data: data,
188186 RepoName: data.Repo.Name,
187+ Repo: data.Repo,
189188 })
190189 }
191190 func writeLog(data *PageData) {
......@@ -194,6 +193,7 @@ func writeLog(data *PageData) {
194193 Template: "./html/log.page.tmpl",
195194 Data: data,
196195 RepoName: data.Repo.Name,
196+ Repo: data.Repo,
197197 })
198198 }
199199 func writeRefs(data *PageData) {
......@@ -202,6 +202,7 @@ func writeRefs(data *PageData) {
202202 Template: "./html/refs.page.tmpl",
203203 Data: data,
204204 RepoName: data.Repo.Name,
205+ Repo: data.Repo,
205206 })
206207 }
207208
......@@ -222,6 +223,7 @@ func writeHTMLTreeFiles(data *PageData) {
222223 Data: &FileData{Contents: string(b)},
223224 RepoName: data.Repo.Name,
224225 Subdir: path.Join("tree", data.RevName, d),
226+ Repo: data.Repo,
225227 })
226228 }
227229 }
......@@ -277,6 +279,7 @@ func writeLogDiffs(project string, repo *git.Repository, data *PageData, cache m
277279 Data: commitData,
278280 RepoName: data.Repo.Name,
279281 Subdir: "commits",
282+ Repo: data.Repo,
280283 })
281284 lastCommit = commit
282285 }
......@@ -302,7 +305,9 @@ func writeRepo(root string) {
302305 tags, _ := repo.ShowRef(git.ShowRefOptions{Heads: false, Tags: true})
303306
304307 cache := make(map[string]bool)
305- for _, rev := range heads {
308+ rev := findDefaultBranch(heads)
309+ if rev != nil {
310+ // for _, rev := range heads {
306311 _, revName := path.Split(rev.Refspec)
307312 data := &PageData{
308313 Branches: heads,
......@@ -334,7 +339,14 @@ func writeBranch(repo *git.Repository, pageData *PageData, cache map[string]bool
334339 entries := []*TreeItem{}
335340 treeEntries := walkTree(tree, pageData.RevName, "", entries)
336341 for _, entry := range treeEntries {
337- entry.URL = path.Join("/", pageData.Repo.Name, "tree", pageData.RevName, entry.Path)
342+ entry.Path = strings.TrimPrefix(entry.Path, "/")
343+ entry.URL = path.Join(
344+ "/",
345+ pageData.Repo.Name,
346+ "tree",
347+ pageData.RevName,
348+ fmt.Sprintf("%s.html", entry.Path),
349+ )
338350 }
339351
340352 pageData.Log = logs
......@@ -367,7 +379,7 @@ func main() {
367379 name := repoName(r)
368380 url := path.Join("/", name, "index.html")
369381 repoList = append(repoList, &RepoItemData{
370- URL: url,
382+ URL: url,
371383 Name: name,
372384 })
373385 }