forked from
tangled.org/core
Monorepo for Tangled — https://tangled.org
1{{ define "title"}}{{ range .BreadCrumbs }}{{ pathUnescape (index . 0)}}/{{ end }} at {{ .Ref }} · {{ .RepoInfo.FullName }}{{ end }}
2
3
4{{ define "extrameta" }}
5
6 {{ $path := "" }}
7 {{ range .BreadCrumbs }}
8 {{ $path = printf "%s/%s" $path (index . 0) }}
9 {{ end }}
10
11 {{ template "repo/fragments/meta" . }}
12 {{ $title := printf "%s at %s · %s" $path .Ref .RepoInfo.FullName }}
13 {{ $url := printf "https://tangled.sh/%s/tree/%s%s" .RepoInfo.FullName .Ref $path }}
14
15 {{ template "repo/fragments/og" (dict "RepoInfo" .RepoInfo "Title" $title "Url" $url) }}
16{{ end }}
17
18
19{{define "repoContent"}}
20<main>
21 <div class="tree">
22 {{ $containerstyle := "py-1" }}
23 {{ $linkstyle := "no-underline hover:underline" }}
24
25 <div class="pb-2 mb-3 text-base border-b border-gray-200 dark:border-gray-700">
26 <div class="flex flex-col md:flex-row md:justify-between gap-2">
27 <div id="breadcrumbs" class="overflow-x-auto whitespace-nowrap text-gray-400 dark:text-gray-500">
28 {{ range .BreadCrumbs }}
29 <a href="{{ index . 1}}" class="text-bold text-gray-500 dark:text-gray-400 {{ $linkstyle }}">{{ pathUnescape (index . 0) }}</a> /
30 {{ end }}
31 </div>
32 <div id="dir-info" class="text-gray-500 dark:text-gray-400 text-xs md:text-sm flex flex-wrap items-center gap-1 md:gap-0">
33 {{ $stats := .TreeStats }}
34
35 <span>at <a href="/{{ $.RepoInfo.FullName }}/tree/{{ $.Ref }}">{{ $.Ref }}</a></span>
36 {{ if eq $stats.NumFolders 1 }}
37 <span class="select-none px-1 md:px-2 [&:before]:content-['·']"></span>
38 <span>{{ $stats.NumFolders }} folder</span>
39 {{ else if gt $stats.NumFolders 1 }}
40 <span class="select-none px-1 md:px-2 [&:before]:content-['·']"></span>
41 <span>{{ $stats.NumFolders }} folders</span>
42 {{ end }}
43
44 {{ if eq $stats.NumFiles 1 }}
45 <span class="select-none px-1 md:px-2 [&:before]:content-['·']"></span>
46 <span>{{ $stats.NumFiles }} file</span>
47 {{ else if gt $stats.NumFiles 1 }}
48 <span class="select-none px-1 md:px-2 [&:before]:content-['·']"></span>
49 <span>{{ $stats.NumFiles }} files</span>
50 {{ end }}
51
52 </div>
53 </div>
54 </div>
55
56 {{ range .Files }}
57 {{ if not .IsFile }}
58 <div class="{{ $containerstyle }}">
59 <div class="flex justify-between items-center">
60 <a href="/{{ $.BaseTreeLink }}/{{ .Name }}" class="{{ $linkstyle }}">
61 <div class="flex items-center gap-2">
62 {{ i "folder" "size-4 fill-current" }}{{ .Name }}
63 </div>
64 </a>
65 {{ if .LastCommit}}
66 <time class="text-xs text-gray-500 dark:text-gray-400">{{ timeFmt .LastCommit.When }}</time>
67 {{ end }}
68 </div>
69 </div>
70 {{ end }}
71 {{ end }}
72
73 {{ range .Files }}
74 {{ if .IsFile }}
75 <div class="{{ $containerstyle }}">
76 <div class="flex justify-between items-center">
77 <a href="/{{ $.BaseBlobLink }}/{{ .Name }}" class="{{ $linkstyle }}">
78 <div class="flex items-center gap-2">
79 {{ i "file" "size-4" }}{{ .Name }}
80 </div>
81 </a>
82 {{ if .LastCommit}}
83 <time class="text-xs text-gray-500 dark:text-gray-400">{{ timeFmt .LastCommit.When }}</time>
84 {{ end }}
85 </div>
86 </div>
87 {{ end }}
88 {{ end }}
89 </div>
90</main>
91{{end}}