this repo has no description
1{{ define "title" }}{{ .RepoInfo.FullName }} at {{ .Ref }}{{ end }} 2 3{{ define "repoContent" }} 4 <main> 5 {{ block "branchSelector" . }} {{ end }} 6 <div class="flex gap-2"> 7 {{ block "fileTree" . }} {{ end }} 8 {{ block "commitLog" . }} {{ end }} 9 </div> 10 </main> 11{{ end }} 12 13{{ define "branchSelector" }} 14<div class="flex justify-between pb-5"> 15 <select 16 onchange="window.location.href = '/{{ .RepoInfo.FullName }}/tree/' + this.value" 17 class="p-1 border border-gray-200 bg-white" 18 > 19 <optgroup label="branches" class="bold text-sm"> 20 {{ range .Branches }} 21 <option 22 value="{{ .Reference.Name }}" 23 class="py-1" 24 {{ if eq .Reference.Name $.Ref }} 25 selected 26 {{ end }} 27 > 28 {{ .Reference.Name }} 29 </option> 30 {{ end }} 31 </optgroup> 32 <optgroup label="tags" class="bold text-sm"> 33 {{ range .Tags }} 34 <option 35 value="{{ .Reference.Name }}" 36 class="py-1" 37 {{ if eq .Reference.Name $.Ref }} 38 selected 39 {{ end }} 40 > 41 {{ .Reference.Name }} 42 </option> 43 {{ else }} 44 <option class="py-1" disabled>no tags found</option> 45 {{ end }} 46 </optgroup> 47 </select> 48 <a 49 href="/{{ .RepoInfo.FullName }}/commits/{{ .Ref }}" 50 class="ml-2 no-underline flex items-center gap-2 text-sm uppercase font-bold" 51 > 52 <i class="w-4 h-4" data-lucide="logs"></i> 53 {{ .TotalCommits }} 54 {{ if eq .TotalCommits 1 }}commit{{ else }}commits{{ end }} 55 </a> 56</div> 57{{ end }} 58 59{{ define "fileTree" }} 60<div id="file-tree" class="w-3/5 pr-2 border-r border-gray-200"> 61 {{ $containerstyle := "py-1" }} 62 {{ $linkstyle := "no-underline hover:underline" }} 63 64 {{ range .Files }} 65 {{ if not .IsFile }} 66 <div class="{{ $containerstyle }}"> 67 <div class="flex justify-between items-center"> 68 <a 69 href="/{{ $.RepoInfo.FullName }}/tree/{{ $.Ref }}/{{ .Name }}" 70 class="{{ $linkstyle }}" 71 > 72 <div class="flex items-center gap-2"> 73 <i 74 class="w-3 h-3 fill-current" 75 data-lucide="folder" 76 ></i 77 >{{ .Name }} 78 </div> 79 </a> 80 81 <time class="text-xs text-gray-500" 82 >{{ timeFmt .LastCommit.Author.When }}</time 83 > 84 </div> 85 </div> 86 {{ end }} 87 {{ end }} 88 89 {{ range .Files }} 90 {{ if .IsFile }} 91 <div class="{{ $containerstyle }}"> 92 <div class="flex justify-between items-center"> 93 <a 94 href="/{{ $.RepoInfo.FullName }}/blob/{{ $.Ref }}/{{ .Name }}" 95 class="{{ $linkstyle }}" 96 > 97 <div class="flex items-center gap-2"> 98 <i 99 class="w-3 h-3" 100 data-lucide="file" 101 ></i 102 >{{ .Name }} 103 </div> 104 </a> 105 106 <time class="text-xs text-gray-500" 107 >{{ timeFmt .LastCommit.Author.When }}</time 108 > 109 </div> 110 </div> 111 {{ end }} 112 {{ end }} 113</div> 114{{ end }} 115 116 117{{ define "commitLog" }} 118<div id="commit-log" class="flex-1"> 119 {{ range .Commits }} 120 <div class="relative px-2 pb-8"> 121 <div id="commit-message"> 122 {{ $messageParts := splitN .Message "\n\n" 2 }} 123 <div class="text-base cursor-pointer"> 124 <div> 125 <div> 126 <a 127 href="/{{ $.RepoInfo.FullName }}/commit/{{ .Hash.String }}" 128 class="inline no-underline hover:underline" 129 >{{ index $messageParts 0 }}</a 130 > 131 {{ if gt (len $messageParts) 1 }} 132 133 <button 134 class="py-1/2 px-1 bg-gray-200 hover:bg-gray-400 rounded" 135 hx-on:click="this.parentElement.nextElementSibling.classList.toggle('hidden')" 136 > 137 <i 138 class="w-3 h-3" 139 data-lucide="ellipsis" 140 ></i> 141 </button> 142 {{ end }} 143 144 {{ $tagsForCommit := index $.TagMap .Hash.String }} 145 {{ range $tagsForCommit }} 146 <span class="text-xs rounded-full bg-black text-white px-2 mx-1 inline-flex items-center"> 147 {{ . }} 148 </span> 149 {{ end }} 150 </div> 151 {{ if gt (len $messageParts) 1 }} 152 <p 153 class="hidden mt-1 text-sm cursor-text pb-2" 154 > 155 {{ nl2br (unwrapText (index $messageParts 1)) }} 156 </p> 157 {{ end }} 158 </div> 159 </div> 160 </div> 161 162 <div class="text-xs text-gray-500"> 163 <span class="font-mono"> 164 <a 165 href="/{{ $.RepoInfo.FullName }}/commit/{{ .Hash.String }}" 166 class="text-gray-500 no-underline hover:underline" 167 >{{ slice .Hash.String 0 8 }}</a 168 > 169 </span> 170 <span 171 class="mx-2 before:content-['·'] before:select-none" 172 ></span> 173 <span> 174 <a 175 href="mailto:{{ .Author.Email }}" 176 class="text-gray-500 no-underline hover:underline" 177 >{{ .Author.Name }}</a 178 > 179 </span> 180 <div 181 class="inline-block px-1 select-none after:content-['·']" 182 ></div> 183 <span>{{ timeFmt .Author.When }}</span> 184 </div> 185 </div> 186 {{ end }} 187</div> 188{{ end }} 189 190 191{{ define "repoAfter" }} 192 {{- if .Readme }} 193 <section class="mt-4 p-6 rounded bg-white w-full mx-auto"> 194 <article class="readme"> 195 {{- .Readme -}} 196 </article> 197 </section> 198 {{- end -}} 199 200 201 <section class="mt-4 p-6 rounded bg-white w-full mx-auto"> 202 <strong>clone</strong> 203 <pre> 204 git clone https://tangled.sh/{{ .RepoInfo.OwnerWithAt }}/{{ .RepoInfo.Name }} </pre 205 > 206 </section> 207{{ end }}