this repo has no description
1{{ define "repoContent" }} 2 <main> 3 {{- if .IsEmpty }} 4 this repo is empty 5 {{ else }} 6 <div class="flex gap-4"> 7 <div id="file-tree" class="w-1/2"> 8 {{ $containerstyle := "py-1" }} 9 {{ $linkstyle := "no-underline hover:underline" }} 10 11 <div class="flex justify-end"> 12 <select 13 onchange="window.location.href = '/{{ .RepoInfo.FullName }}/tree/' + this.value" 14 class="p-1 border border-gray-500 bg-white" 15 > 16 <optgroup label="branches" class="uppercase bold text-sm"> 17 {{ range .Branches }} 18 <option 19 value="{{ .Reference.Name }}" 20 class="py-1" 21 {{if eq .Reference.Name $.Ref}}selected{{end}} 22 > 23 {{ .Reference.Name }} 24 </option> 25 {{ end }} 26 </optgroup> 27 <optgroup label="tags" class="uppercase bold text-sm"> 28 {{ range .Tags }} 29 <option 30 value="{{ .Reference.Name }}" 31 class="py-1" 32 {{if eq .Reference.Name $.Ref}}selected{{end}} 33 > 34 {{ .Reference.Name }} 35 </option> 36 {{ end }} 37 </optgroup> 38 </select> 39 </div> 40 41 <section id="repo-content"> 42 {{ range .Files }} 43 {{ if not .IsFile }} 44 <div class="{{ $containerstyle }}"> 45 <a 46 href="/{{ $.RepoInfo.FullName }}/tree/{{ $.Ref }}/{{ .Name }}" 47 class="{{ $linkstyle }}" 48 > 49 <div class="flex items-center gap-2"> 50 <i 51 class="w-3 h-3 fill-current" 52 data-lucide="folder" 53 ></i 54 >{{ .Name }}/ 55 </div> 56 </a> 57 </div> 58 {{ end }} 59 {{ end }} 60 61 {{ range .Files }} 62 {{ if .IsFile }} 63 <div class="{{ $containerstyle }}"> 64 <a 65 href="/{{ $.RepoInfo.FullName }}/blob/{{ $.Ref }}/{{ .Name }}" 66 class="{{ $linkstyle }}" 67 > 68 <div class="flex items-center gap-2"> 69 <i 70 class="w-3 h-3" 71 data-lucide="file" 72 ></i 73 >{{ .Name }} 74 </div> 75 </a> 76 </div> 77 {{ end }} 78 {{ end }} 79 </div> 80 <div id="commit-log" class="flex-1"> 81 {{ range .Commits }} 82 <div 83 class="relative 84 px-4 85 py-4 86 border-l 87 border-black 88 before:content-[''] 89 before:absolute 90 before:w-1 91 before:h-1 92 before:bg-black 93 before:rounded-full 94 before:left-[-2.2px] 95 before:top-1/2 96 before:-translate-y-1/2 97 "> 98 99 <div id="commit-message"> 100 {{ $messageParts := splitN .Message "\n\n" 2 }} 101 <div class="text-base cursor-pointer"> 102 <div> 103 <div class="flex items-center gap-1"> 104 <a href="/{{ $.RepoInfo.FullName }}/commit/{{ .Hash.String }}" class="inline no-underline hover:underline">{{ index $messageParts 0 }}</a> 105 {{ if gt (len $messageParts) 1 }} 106 <button class="text-sm inline rounded-sm bg-gray-300 text-gray-700 px-1 w-fit hover:bg-gray-400" 107 hx-on:click="this.parentElement.nextElementSibling.classList.toggle('hidden')">&hellip;</button> 108 {{ end }} 109 </div> 110 {{ if gt (len $messageParts) 1 }} 111 <p class="hidden mt-1 text-sm cursor-text pb-2">{{ nl2br (unwrapText (index $messageParts 1)) }}</p> 112 {{ end }} 113 </div> 114 </div> 115 </div> 116 117 <div class="text-xs text-gray-500"> 118 <span class="font-mono"> 119 <a 120 href="/{{ $.RepoInfo.FullName }}/commit/{{ .Hash.String }}" 121 class="text-gray-500 no-underline hover:underline" 122 >{{ slice .Hash.String 0 8 }}</a 123 > 124 </span> 125 &nbsp;·&nbsp; 126 <span> 127 <a 128 href="mailto:{{ .Author.Email }}" 129 class="text-gray-500 no-underline hover:underline" 130 >{{ .Author.Name }}</a 131 > 132 </span> 133 &nbsp;·&nbsp; 134 <span>{{ timeFmt .Author.When }}</span> 135 </div> 136 </div> 137 {{ end }} 138 </div> 139 </div> 140 </section> 141 {{- if .Readme }} 142 <article class="readme"> 143 {{- .Readme -}} 144 </article> 145 {{- end -}} 146 {{- end -}} 147 148 149 <div class="clone-url"> 150 <strong>clone</strong> 151 <pre> 152git clone https://tangled.sh/{{ .RepoInfo.OwnerWithAt }}/{{ .RepoInfo.Name }} 153 </pre 154 > 155 </div> 156 </main> 157{{ end }}