web frontend for git (tangled's grandpa)
7
fork

Configure Feed

Select the types of activity you want to include in your feed.

git, templates: diff view

+88 -24
+1 -1
git/diff.go
··· 69 69 nd.Commit.Parent = parent.Hash.String() 70 70 nd.Commit.Author = c.Author 71 71 nd.Commit.Message = c.Message 72 - ndiff := Diff{} 73 72 74 73 for _, d := range diffs { 74 + ndiff := Diff{} 75 75 ndiff.Name.New = d.NewName 76 76 ndiff.Name.Old = d.OldName 77 77
+4 -2
go.mod
··· 7 7 github.com/bluekeyes/go-gitdiff v0.7.0 8 8 github.com/dustin/go-humanize v1.0.0 9 9 github.com/go-git/go-git/v5 v5.5.1 10 + github.com/sosedoff/gitkit v0.3.0 10 11 gopkg.in/yaml.v3 v3.0.0 11 12 ) 12 13 ··· 23 24 github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // indirect 24 25 github.com/kevinburke/ssh_config v1.2.0 // indirect 25 26 github.com/pjbgf/sha1cd v0.2.3 // indirect 26 - github.com/sergi/go-diff v1.2.0 // indirect 27 + github.com/sergi/go-diff v1.1.0 // indirect 27 28 github.com/skeema/knownhosts v1.1.0 // indirect 28 - github.com/sosedoff/gitkit v0.3.0 // indirect 29 29 github.com/xanzy/ssh-agent v0.3.3 // indirect 30 30 golang.org/x/crypto v0.4.0 // indirect 31 31 golang.org/x/mod v0.7.0 // indirect ··· 34 34 golang.org/x/tools v0.4.0 // indirect 35 35 gopkg.in/warnings.v0 v0.1.2 // indirect 36 36 ) 37 + 38 + exclude github.com/sergi/go-diff v1.2.0
+1 -2
go.sum
··· 62 62 github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= 63 63 github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= 64 64 github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= 65 + github.com/sergi/go-diff v1.1.0 h1:we8PVUC3FE2uYfodKH/nBHMSetSfHDR6scGdBi+erh0= 65 66 github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= 66 - github.com/sergi/go-diff v1.2.0 h1:XU+rvMAioB0UC3q1MFrIQy4Vo5/4VsRDQQXHsEya6xQ= 67 - github.com/sergi/go-diff v1.2.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= 68 67 github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= 69 68 github.com/skeema/knownhosts v1.1.0 h1:Wvr9V0MxhjRbl3f9nMnKnFfiWTJmtECJ9Njkea3ysW0= 70 69 github.com/skeema/knownhosts v1.1.0/go.mod h1:sKFq3RD6/TKZkSWn8boUbDC7Qkgcv+8XXijpFO6roag=
+1
routes/routes.go
··· 188 188 } 189 189 190 190 commits, err := gr.Commits() 191 + log.Println(len(commits)) 191 192 if err != nil { 192 193 d.Write500(w) 193 194 log.Println(err)
+38
static/style.css
··· 146 146 white-space: pre-wrap; 147 147 } 148 148 149 + .diff { 150 + padding-top: 1rem; 151 + } 152 + 153 + .diff pre { 154 + overflow: scroll; 155 + } 156 + 157 + .diff-stat { 158 + padding: 1rem 0 1rem 0; 159 + } 160 + 161 + .commit-email { 162 + color: var(--gray); 163 + } 164 + 165 + .commit pre { 166 + padding-bottom: 1rem; 167 + white-space: pre-wrap; 168 + } 169 + 170 + .diff-stat ul li { 171 + list-style: none; 172 + padding-left: 0.5em; 173 + } 174 + 175 + .diff-add { 176 + color: green; 177 + } 178 + 179 + .diff-del { 180 + color: red; 181 + } 182 + 183 + .diff-noop { 184 + color: var(--gray); 185 + } 186 + 149 187 @media (max-width: 600px) { 150 188 .index { 151 189 grid-row-gap: 0.8em;
+40 -16
templates/commit.html
··· 9 9 <body> 10 10 {{ template "nav" . }} 11 11 <main> 12 - <section> 13 - <p>author: {{ .commit.Author.Name }} <{{ .commit.Author.Email}}> on {{ .commit.Author.When.Format "Mon, 02 Jan 2006 15:04:05 -0700" }}</p> 12 + <section class="commit"> 13 + <pre> 14 + {{- .commit.Message -}} 15 + </pre> 16 + <p>{{ .commit.Author.When.Format "Mon, 02 Jan 2006 15:04:05 -0700" }}</p> 17 + <p>{{ .commit.Author.Name }} <span class="commit-email">{{ .commit.Author.Email}}</span></p> 14 18 <p>commit: <a href="/{{ .name }}/commit/{{ .commit.This }}"> 15 19 {{ .commit.This }} 16 20 </a> ··· 19 23 {{ .commit.Parent }} 20 24 </a> 21 25 </p> 22 - <p>{{ .stat.FilesChanged }} files changed, 26 + <div class="diff-stat"> 27 + <div> 28 + {{ .stat.FilesChanged }} files changed, 23 29 {{ .stat.Insertions }} insertions(+), 24 30 {{ .stat.Deletions }} deletions(-) 25 - </p> 31 + </div> 32 + <div> 33 + <br> 34 + <p>jump to:</p> 35 + {{ range .diff }} 36 + <ul> 37 + <li><a href="#{{ .Name.New }}">{{ .Name.New }}</a></li> 38 + </ul> 39 + {{ end }} 40 + </div> 41 + </div> 26 42 </section> 27 43 <section> 44 + {{ $repo := .name }} 45 + {{ $this := .commit.This }} 28 46 {{ range .diff }} 47 + <div class="diff"> 48 + <div id="{{ .Name.New }}"> 29 49 {{ if .Name.Old }} 30 - <p>{{ .Name.Old }} → {{ .Name.New }}</p> 50 + <a href="/{{ $repo }}/blob/{{ $this }}/{{ .Name.Old }}">{{ .Name.Old }}</a> &#8594; 51 + <a href="/{{ $repo }}/blob/{{ $this }}/{{ .Name.New }}">{{ .Name.New }}</a> 31 52 {{ else }} 32 - <p>{{.Name.New }}</p> 53 + <a href="/{{ $repo }}/blob/{{ $this }}/{{ .Name.New }}">{{ .Name.New }}</a> 33 54 {{- end -}} 55 + </div> 56 + 34 57 <pre> 35 58 {{- range .TextFragments -}} 36 59 <p>{{- .Header -}}</p> 37 - {{- range .Lines -}} 38 - {{- if eq .Op.String "+" -}} 39 - <span style="color: green">{{ .String }}</span> 40 - {{- end -}} 41 - {{- if eq .Op.String "-" -}} 42 - <span style="color: red">{{ .String }}</span> 43 - {{- end -}} 44 - {{- if eq .Op.String " " -}} 45 - <span style="color: gray">{{ .String }}</span> 46 - {{- end -}} 60 + {{- range .Lines -}} 61 + {{- if eq .Op.String "+" -}} 62 + <span class="diff-add">{{ .String }}</span> 47 63 {{- end -}} 64 + {{- if eq .Op.String "-" -}} 65 + <span class="diff-del">{{ .String }}</span> 66 + {{- end -}} 67 + {{- if eq .Op.String " " -}} 68 + <span class="diff-noop">{{ .String }}</span> 69 + {{- end -}} 70 + {{- end -}} 48 71 {{- end -}} 49 72 </pre> 73 + </div> 50 74 {{ end }} 51 75 </section> 52 76 </main>
+2 -2
templates/log.html
··· 9 9 <body> 10 10 {{ template "nav" . }} 11 11 <main> 12 - {{ $repo := .repo }} 12 + {{ $repo := .name }} 13 13 <div class="log"> 14 14 {{ range .commits }} 15 15 <div> ··· 17 17 <div>{{ .Author.When.Format "Mon, 02 Jan 2006 15:04:05 -0700" }}</div> 18 18 <pre>{{ .Message }}</pre> 19 19 </div> 20 - <div class="commit-info">{{ .Author.Name }} <span style="color: var(--gray);">{{ .Author.Email }}</span></div> 20 + <div class="commit-info">{{ .Author.Name }} <span class="commit-email">{{ .Author.Email }}</span></div> 21 21 {{ end }} 22 22 </div> 23 23 </main>
+1 -1
templates/repo.html
··· 25 25 <div>{{ .Author.When.Format "Mon, 02 Jan 2006 15:04:05 -0700" }}</div> 26 26 <pre>{{ .Message }}</pre> 27 27 </div> 28 - <div class="commit-info">{{ .Author.Name }} <span style="color: var(--gray);">{{ .Author.Email }}</span></div> 28 + <div class="commit-info">{{ .Author.Name }} <span class="commit-email">{{ .Author.Email }}</span></div> 29 29 {{ end }} 30 30 </div> 31 31 <article class="readme">