135 lines
5.3 kB
1
{{ define "title" }} commit {{ .Diff.Commit.This }} {{ end }}
2
3
{{ define "repoContent" }}
4
5
{{ $repo := .RepoInfo.FullName }}
6
{{ $commit := .Diff.Commit }}
7
{{ $stat := .Diff.Stat }}
8
{{ $diff := .Diff.Diff }}
9
10
<section class="commit">
11
<div id="commit-message">
12
{{ $messageParts := splitN $commit.Message "\n\n" 2 }}
13
<div>
14
<p class="pb-2">{{ index $messageParts 0 }}</p>
15
{{ if gt (len $messageParts) 1 }}
16
<p class="mt-1 cursor-text pb-2 text-sm">{{ nl2br (unwrapText (index $messageParts 1)) }}</p>
17
{{ end }}
18
</div>
19
</div>
20
21
<div class="flex items-center">
22
<p class="text-sm text-gray-500">
23
<a href="mailto:{{ $commit.Author.Email }}" class="no-underline hover:underline text-gray-500">{{ $commit.Author.Name }}</a>
24
<span class="px-1 select-none before:content-['\00B7']"></span>
25
{{ timeFmt $commit.Author.When }}
26
<span class="px-1 select-none before:content-['\00B7']"></span>
27
<span class="font-mono">{{ $stat.FilesChanged }}</span> files <span class="font-mono">(+{{ $stat.Insertions }}, -{{ $stat.Deletions }})</span>
28
<span class="px-1 select-none before:content-['\00B7']"></span>
29
</p>
30
31
<p class="flex items-center text-sm text-gray-500">
32
<a href="/{{ $repo }}/commit/{{ $commit.This }}" class="no-underline hover:underline text-gray-500">{{ slice $commit.This 0 8 }}</a>
33
{{ if $commit.Parent }}
34
<i class="w-3 h-3 mx-1" data-lucide="arrow-left"></i>
35
<a href="/{{ $repo }}/commit/{{ $commit.Parent }}" class="no-underline hover:underline text-gray-500">{{ slice $commit.Parent 0 8 }}</a>
36
{{ end }}
37
</p>
38
</div>
39
40
<div class="diff-stat">
41
<br>
42
<strong>jump to</strong>
43
{{ range $diff }}
44
<ul>
45
<li><a href="#file-{{ .Name.New }}">{{ .Name.New }}</a></li>
46
</ul>
47
{{ end }}
48
</div>
49
</section>
50
51
{{end}}
52
53
{{ define "repoAfter" }}
54
55
{{ $repo := .RepoInfo.FullName }}
56
{{ $commit := .Diff.Commit }}
57
{{ $stat := .Diff.Stat }}
58
{{ $diff := .Diff.Diff }}
59
60
{{ $this := $commit.This }}
61
{{ $parent := $commit.Parent }}
62
63
{{ $last := sub (len $diff) 1 }}
64
{{ range $idx, $hunk := $diff }}
65
{{ with $hunk }}
66
<section class="mt-4 border border-gray-200 w-full mx-auto">
67
<div id="file-{{ .Name.New }}">
68
<div id="diff-file">
69
<details open>
70
<summary class="list-none cursor-pointer sticky top-0">
71
<div id="diff-file-header" class="border-b cursor-pointer bg-white border-gray-200 flex justify-between">
72
<div id="left-side-items" class="p-2">
73
{{ if .IsNew }}
74
<span class="diff-type p-1 mr-1 font-mono text-sm bg-green-100 rounded text-green-700 select-none">A</span>
75
{{ end }}
76
{{ if .IsDelete }}
77
<span class="diff-type p-1 mr-1 font-mono text-sm bg-red-100 rounded text-red-700 select-none">D</span>
78
{{ end }}
79
{{ if not (or .IsNew .IsDelete) }}
80
<span class="diff-type p-1 mr-1 font-mono bg-gray-100 text-sm rounded text-gray-700 select-none">M</span>
81
{{ end }}
82
83
<a href="/{{ $repo }}/blob/{{ $this }}/{{ .Name.New }}" class="no-underline hover:underline">{{ .Name.New }}</a>
84
</div>
85
86
{{ $iconstyle := "p-1 mx-1 hover:bg-gray-100 rounded" }}
87
<div id="right-side-items" class="p-2 flex items-center">
88
<a title="top of file" href="#file-{{ .Name.New }}" class="{{ $iconstyle }}"><i class="w-4 h-4" data-lucide="arrow-up-from-line"></i></a>
89
{{ if gt $idx 0 }}
90
{{ $prev := index $diff (sub $idx 1) }}
91
<a title="previous file" href="#file-{{ $prev.Name.New }}" class="{{ $iconstyle }}"><i class="w-4 h-4" data-lucide="arrow-up"></i></a>
92
{{ end }}
93
94
{{ if lt $idx $last }}
95
{{ $next := index $diff (add $idx 1) }}
96
<a title="next file" href="#file-{{ $next.Name.New }}" class="{{ $iconstyle }}"><i class="w-4 h-4" data-lucide="arrow-down"></i></a>
97
{{ end }}
98
</div>
99
100
</div>
101
</summary>
102
103
{{ if .IsBinary }}
104
<p>Not showing binary file.</p>
105
{{ else }}
106
<pre class="overflow-auto">
107
{{- range .TextFragments -}}
108
<div class="bg-gray-100 text-gray-500 select-none">{{ .Header }}</div>
109
{{- range .Lines -}}
110
{{- if eq .Op.String "+" -}}
111
<div class="bg-green-100 text-green-700 p-1"><span class="select-none mr-2">{{ .Op.String }}</span><span>{{ .Line }}</span></div>
112
{{- end -}}
113
114
{{- if eq .Op.String "-" -}}
115
<div class="bg-red-100 text-red-700 p-1"><span class="select-none mr-2">{{ .Op.String }}</span><span>{{ .Line }}</span></div>
116
{{- end -}}
117
118
{{- if eq .Op.String " " -}}
119
<div class="text-gray-500 px"><span class="select-none mr-2">{{ .Op.String }}</span><span>{{ .Line }}</span></div>
120
{{- end -}}
121
122
{{- end -}}
123
{{- end -}}
124
</pre>
125
{{- end -}}
126
127
</details>
128
129
</div>
130
</div>
131
</section>
132
{{ end }}
133
{{ end }}
134
135
{{end}}
136