1{{ define "title" }} all strings {{ end }}
2
3{{ define "content" }}
4 {{ block "timeline" $ }}{{ end }}
5{{ end }}
6
7{{ define "timeline" }}
8 <div>
9 <div class="p-6">
10 <p class="text-xl font-bold dark:text-white">All strings</p>
11 </div>
12
13 <div class="flex flex-col gap-4">
14 {{ range $i, $s := .Strings }}
15 <div class="relative">
16 {{ if ne $i 0 }}
17 <div class="absolute left-8 -top-4 w-px h-4 bg-gray-300 dark:bg-gray-600"></div>
18 {{ end }}
19 <div class="flex flex-col divide-y divide-gray-200 dark:divide-gray-700 border border-gray-200 dark:border-gray-700 rounded-sm">
20 {{ template "stringCard" $s }}
21 </div>
22 </div>
23 {{ end }}
24 </div>
25 </div>
26{{ end }}
27
28{{ define "stringCard" }}
29 {{ $resolved := resolve .Did.String }}
30 <div class="py-4 px-6 drop-shadow-sm rounded bg-white dark:bg-gray-800">
31 <div class="font-medium dark:text-white flex flex-wrap gap-1 items-center">
32 <a href="/strings/{{ $resolved }}" class="flex gap-1 items-center">{{ template "user/fragments/picHandle" $resolved }}</a>
33 <span class="select-none">/</span>
34 <a href="/strings/{{ $resolved }}/{{ .Rkey }}">{{ .Filename }}</a>
35 </div>
36 {{ with .Description }}
37 <div class="text-gray-600 dark:text-gray-300 text-sm">
38 {{ . }}
39 </div>
40 {{ end }}
41
42 {{ template "stringCardInfo" . }}
43 </div>
44{{ end }}
45
46{{ define "stringCardInfo" }}
47 {{ $stat := .Stats }}
48 <div class="text-gray-400 pt-4 text-sm font-mono inline-flex items-center gap-2 mt-auto">
49 <span>{{ $stat.LineCount }} line{{if ne $stat.LineCount 1}}s{{end}}</span>
50 <span class="select-none [&:before]:content-['·']"></span>
51 {{ with .Edited }}
52 <span>edited {{ template "repo/fragments/shortTimeAgo" . }}</span>
53 {{ else }}
54 {{ template "repo/fragments/shortTimeAgo" .Created }}
55 {{ end }}
56 </div>
57{{ end }}
58
59