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 <div class="py-4 px-6 drop-shadow-sm rounded bg-white dark:bg-gray-800">
30 <div class="font-medium dark:text-white flex gap-2 items-center">
31 <a href="/strings/{{ resolve .Did.String }}/{{ .Rkey }}">{{ .Filename }}</a>
32 </div>
33 {{ with .Description }}
34 <div class="text-gray-600 dark:text-gray-300 text-sm">
35 {{ . }}
36 </div>
37 {{ end }}
38
39 {{ template "stringCardInfo" . }}
40 </div>
41{{ end }}
42
43{{ define "stringCardInfo" }}
44 {{ $stat := .Stats }}
45 {{ $resolved := resolve .Did.String }}
46 <div class="text-gray-400 pt-4 text-sm font-mono inline-flex items-center gap-2 mt-auto">
47 <a href="/strings/{{ $resolved }}" class="flex items-center">
48 {{ template "user/fragments/picHandle" $resolved }}
49 </a>
50 <span class="select-none [&:before]:content-['·']"></span>
51 <span>{{ $stat.LineCount }} line{{if ne $stat.LineCount 1}}s{{end}}</span>
52 <span class="select-none [&:before]:content-['·']"></span>
53 {{ with .Edited }}
54 <span>edited {{ template "repo/fragments/shortTimeAgo" . }}</span>
55 {{ else }}
56 {{ template "repo/fragments/shortTimeAgo" .Created }}
57 {{ end }}
58 </div>
59{{ end }}
60
61