Changes
8 changed files (+168/-61)
-
-
@@ -45,13 +45,7 @@ log.Println(err)return } var desc string db, err := os.ReadFile(filepath.Join(path, "description")) if err == nil { desc = string(db) } else { desc = "" } desc := getDescription(path) infos = append(infos, info{ Name: dir.Name(),
-
@@ -83,7 +77,7 @@ d.Write404(w)return } files, err := gr.FileTree("") commits, err := gr.Commits() if err != nil { d.Write500(w) log.Println(err)
-
@@ -109,12 +103,25 @@ log.Println(err)return } tpath := filepath.Join(d.c.Dirs.Templates, "*") t := template.Must(template.ParseGlob(tpath)) if len(commits) >= 5 { commits = commits[:5] } data := make(map[string]any) data["name"] = name data["ref"] = mainBranch data["readme"] = readmeContent data["commits"] = commits data["desc"] = getDescription(path) d.listFiles(files, data, w) if err := t.ExecuteTemplate(w, "repo", data); err != nil { log.Println(err) return } return }
-
@@ -283,3 +290,13 @@ f = filepath.Clean(filepath.Join(d.c.Dirs.Static, f))http.ServeFile(w, r, f) } func getDescription(path string) (desc string) { db, err := os.ReadFile(filepath.Join(path, "description")) if err == nil { desc = string(db) } else { desc = "" } return }
-
-
-
@@ -37,7 +37,7 @@data["files"] = files data["meta"] = d.c.Meta if err := t.ExecuteTemplate(w, "repo", data); err != nil { if err := t.ExecuteTemplate(w, "tree", data); err != nil { log.Println(err) return }
-
-
-
@@ -6,12 +6,16 @@ --medium-gray: #ddd;--gray: #6a6a6a; --dark: #444; --darker: #222; --sans-font: "InterVar", -apple-system, BlinkMacSystemFont, "Roboto", "Segoe UI", sans-serif; --display-font: "InterDisplay", -apple-system, BlinkMacSystemFont, "Roboto", "Segoe UI", sans-serif; --mono-font: monospace; } html { background: var(--light); -webkit-text-size-adjust: none; font-family: "InterVar", -apple-system, BlinkMacSystemFont, "Roboto", "Segoe UI", sans-serif; font-family: var(--sans-font); } ::selection {
-
@@ -38,7 +42,7 @@ line-height: 160%;} main h1, h2, h3, .small-heading { font-family: "InterDisplay", -apple-system, BlinkMacSystemFont, "Roboto", "Segoe UI", sans-serif; font-family: var(--display-font); font-weight: 500; }
-
@@ -94,19 +98,65 @@ }.index { display: grid; grid-template-columns: 6em 1fr 7em; grid-template-columns: 6em 1fr minmax(0, 7em); grid-row-gap: 0.5em; min-width: 0; } .index-headings { display: grid; grid-template-columns: 6em 1fr 7em; grid-template-columns: 6em 1fr minmax(0, 7em); padding-bottom: 1.2em; padding-top: 1.2em; min-width: 0; } @media (max-width: 385px) { .desc { color: var(--gray); font-style: italic; } .tree { display: grid; grid-template-columns: 8em minmax(0, 1fr); grid-row-gap: 0.5em; grid-column-gap: 1em; min-width: 0; } .log { display: grid; grid-template-columns: 20rem minmax(0, 1fr); grid-row-gap: 0.8em; grid-column-gap: 8rem; margin-bottom: 2em; padding-bottom: 1em; border-bottom: 1.5px solid var(--medium-gray); } .log pre { white-space: pre-wrap; } .mode { font-family: var(--mono-font); } .readme pre { white-space: pre-wrap; } @media (max-width: 600px) { .index { grid-row-gap: 0.8em; } .log { grid-template-columns: 1fr; grid-row-gap: 0em; } .commit-info:not(:last-child) { padding-bottom: 1.5rem; } }
-
-
-
@@ -16,7 +16,7 @@ </div><div class="index"> {{ range .info }} <div><a href="/{{ .Name }}">{{ .Name }}</a></div> <div>{{ .Desc }}</div> <div class="desc">{{ .Desc }}</div> <div>{{ .Idle }}</div> {{ end }} </div>
-
-
-
@@ -9,13 +9,17 @@ </header><body> {{ template "nav" . }} <main> {{ $repo := .name }} {{ range .commits }} <p><a href="/{{ $repo }}/commit/{{ .Hash.String }}">{{ slice .Hash.String 0 8 }}<a> — {{ .Author.Name }} <span title="{{ .Author.When }}">{{ .Author.When.Format "Mon, 02 Jan 2006 15:04:05 -0700" }}</span></p> <p><pre>{{ .Message }}</pre></p> {{ end }} {{ $repo := .repo }} <div class="log"> {{ range .commits }} <div> <div><a href="/{{ $repo }}/commit/{{ .Hash.String }}">{{ slice .Hash.String 0 8 }}</a></div> <div>{{ .Author.When.Format "Mon, 02 Jan 2006 15:04:05 -0700" }}</div> <pre>{{ .Message }}</pre> </div> <div class="commit-info">{{ .Author.Name }} <span style="color: var(--gray);">{{ .Author.Email }}</span></div> {{ end }} </div> </main> </body> </html>
-
-
-
@@ -1,9 +1,8 @@{{ define "nav" }} <nav> <ul> <li><a href="/">all repos</a> {{ if .name }} <li><a href="/{{ .name }}">{{ .name }}</a> <li><a href="/{{ .name }}">summary</a> <li><a href="/{{ .name }}/refs">refs</a> {{ if .ref }} <li><a href="/{{ .name }}/tree/{{ .ref }}/">tree</a>
-
-
-
@@ -1,50 +1,34 @@{{ define "repo" }} <html> <title>{{ .name }} {{ if .parent }} — {{ .parent }} {{ end }} </title> {{ template "head" . }} <header> <h1>{{ .meta.Title }}</h1> <h2>{{ .meta.Description }}</h2> <h2> <a href="/">all repos</a> — {{ .name }} </h2> <h3 class="desc">{{ .desc }}</h3> </header> <body> {{ template "nav" . }} <main> {{ $repo := .name }} {{ $ref := .ref }} {{ $parent := .parent }} <table> <tr> <td></td> <td><a href="../">..</a> </tr> {{ range .files }} {{ if .IsFile }} <tr> <td><code>{{ .Mode }}</code></td> <td> {{ if $parent }} <a href="/{{ $repo }}/blob/{{ $ref }}/{{ $parent }}/{{ .Name }}">{{ .Name }}</a> {{ else }} <a href="/{{ $repo }}/blob/{{ $ref }}/{{ .Name }}">{{ .Name }}</a> {{ end }} </td> </tr> {{ else }} <tr> <td><code>{{ .Mode }}</code></td> <td> {{ if $parent }} <a href="/{{ $repo }}/tree/{{ $ref }}/{{ $parent }}/{{ .Name }}">{{ .Name }}/</a> {{ else }} <a href="/{{ $repo }}/tree/{{ $ref }}/{{ .Name }}">{{ .Name }}/</a> {{ end }} </td> </tr> <div class="log"> {{ range .commits }} <div> <div><a href="/{{ $repo }}/commit/{{ .Hash.String }}">{{ slice .Hash.String 0 8 }}</a></div> <div>{{ .Author.When.Format "Mon, 02 Jan 2006 15:04:05 -0700" }}</div> <pre>{{ .Message }}</pre> </div> <div class="commit-info">{{ .Author.Name }} <span style="color: var(--gray);">{{ .Author.Email }}</span></div> {{ end }} {{ end }} </table> <article> </div> <article class="readme"> <pre> {{- if .readme }}{{ .readme }}{{- end -}} </pre>
-
-
templates/tree.html (new)
-
@@ -0,0 +1,53 @@{{ define "tree" }} <html> <title>{{ .name }} {{ if .parent }} — {{ .parent }} {{ end }} </title> {{ template "head" . }} <header> <h1>{{ .meta.Title }}</h1> <h2>{{ .meta.Description }}</h2> </header> <body> {{ template "nav" . }} <main> {{ $repo := .name }} {{ $ref := .ref }} {{ $parent := .parent }} <div class="tree"> {{ if $parent }} <div></div> <div><a href="../">..</a></div> {{ end }} {{ range .files }} <div class="mode">{{ .Mode }}</div> <div> {{ if .IsFile }} {{ if $parent }} <a href="/{{ $repo }}/blob/{{ $ref }}/{{ $parent }}/{{ .Name }}">{{ .Name }}</a> {{ else }} <a href="/{{ $repo }}/blob/{{ $ref }}/{{ .Name }}">{{ .Name }}</a> {{ end }} {{ else }} {{ if $parent }} <a href="/{{ $repo }}/tree/{{ $ref }}/{{ $parent }}/{{ .Name }}">{{ .Name }}/</a> {{ else }} <a href="/{{ $repo }}/tree/{{ $ref }}/{{ .Name }}">{{ .Name }}/</a> {{ end }} {{ end }} </div> {{ end }} </div> <article> <pre> {{- if .readme }}{{ .readme }}{{- end -}} </pre> </article> </main> </body> </html> {{ end }}
-