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