this repo has no description
1{{ define "title" }}timeline{{ end }} 2 3{{ define "extrameta" }} 4 <meta property="og:title" content="timeline · tangled" /> 5 <meta property="og:type" content="object" /> 6 <meta property="og:url" content="https://tangled.sh" /> 7 <meta property="og:description" content="tightly-knit social coding" /> 8{{ end }} 9 10{{ define "content" }} 11 {{ if .LoggedInUser }} 12 {{ else }} 13 {{ block "hero" $ }}{{ end }} 14 {{ end }} 15 16 {{ block "trending" $ }}{{ end }} 17 {{ block "timeline" $ }}{{ end }} 18{{ end }} 19 20{{ define "hero" }} 21 <div class="flex flex-col text-black dark:text-white p-6 gap-6 max-w-xl"> 22 <div class="font-bold text-4xl">tightly-knit<br>social coding.</div> 23 24 <p class="text-lg"> 25 tangled is new social-enabled git collaboration platform built on <a class="underline" href="https://atproto.com/">atproto</a>. 26 </p> 27 <p class="text-lg"> 28 we envision a place where developers have complete ownership of their 29 code, open source communities can freely self-govern and most 30 importantly, coding can be social and fun again. 31 </p> 32 33 <div class="flex gap-6 items-center"> 34 <a href="/signup" class="no-underline hover:no-underline "> 35 <button class="btn-create flex gap-2 px-4 items-center"> 36 join now {{ i "arrow-right" "size-4" }} 37 </button> 38 </a> 39 </div> 40 </div> 41{{ end }} 42 43{{ define "trending" }} 44 <div class="w-full md:mx-0 py-4"> 45 <div class="px-6 pb-4"> 46 <h3 class="text-xl font-bold dark:text-white flex items-center gap-2"> 47 Trending 48 {{ i "trending-up" "size-4 flex-shrink-0" }} 49 </h3> 50 </div> 51 <div class="flex gap-4 overflow-x-auto scrollbar-hide items-stretch"> 52 {{ range $index, $repo := .Repos }} 53 <div class="flex-none h-full border border-gray-200 dark:border-gray-700 rounded-sm w-96"> 54 {{ template "user/fragments/repoCard" (list $ $repo true) }} 55 </div> 56 {{ else }} 57 <div class="py-8 px-6 bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-700 rounded-sm"> 58 <div class="text-sm text-gray-500 dark:text-gray-400 text-center"> 59 No trending repositories this week 60 </div> 61 </div> 62 {{ end }} 63 </div> 64 </div> 65{{ end }} 66 67{{ define "timeline" }} 68 <div class="py-4"> 69 <div class="px-6 pb-4"> 70 <p class="text-xl font-bold dark:text-white">Timeline</p> 71 </div> 72 73 <div class="flex flex-col gap-4"> 74 {{ range $i, $e := .Timeline }} 75 <div class="relative"> 76 {{ if ne $i 0 }} 77 <div class="absolute left-8 -top-4 w-px h-4 bg-gray-300 dark:bg-gray-600"></div> 78 {{ end }} 79 {{ with $e }} 80 <div class="flex flex-col divide-y divide-gray-200 dark:divide-gray-700 border border-gray-200 dark:border-gray-700 rounded-sm"> 81 {{ if .Repo }} 82 {{ block "repoEvent" (list $ .Repo .Source) }} {{ end }} 83 {{ else if .Star }} 84 {{ block "starEvent" (list $ .Star) }} {{ end }} 85 {{ else if .Follow }} 86 {{ block "followEvent" (list $ .Follow .Profile .FollowStats) }} {{ end }} 87 {{ end }} 88 </div> 89 {{ end }} 90 </div> 91 {{ end }} 92 </div> 93 </div> 94{{ end }} 95 96{{ define "repoEvent" }} 97 {{ $root := index . 0 }} 98 {{ $repo := index . 1 }} 99 {{ $source := index . 2 }} 100 {{ $userHandle := resolve $repo.Did }} 101 <div class="pl-6 py-2 bg-white dark:bg-gray-800 text-gray-600 dark:text-gray-300 flex flex-wrap items-center gap-2 text-sm"> 102 {{ template "user/fragments/picHandleLink" $repo.Did }} 103 {{ with $source }} 104 {{ $sourceDid := resolve .Did }} 105 forked 106 <a href="/{{ $sourceDid }}/{{ .Name }}"class="no-underline hover:underline"> 107 {{ $sourceDid }}/{{ .Name }} 108 </a> 109 to 110 <a href="/{{ $userHandle }}/{{ $repo.Name }}" class="no-underline hover:underline">{{ $repo.Name }}</a> 111 {{ else }} 112 created 113 <a href="/{{ $userHandle }}/{{ $repo.Name }}" class="no-underline hover:underline"> 114 {{ $repo.Name }} 115 </a> 116 {{ end }} 117 <span class="text-gray-700 dark:text-gray-400 text-xs">{{ template "repo/fragments/time" $repo.Created }}</span> 118 </div> 119 {{ with $repo }} 120 {{ template "user/fragments/repoCard" (list $root . true) }} 121 {{ end }} 122{{ end }} 123 124{{ define "starEvent" }} 125 {{ $root := index . 0 }} 126 {{ $star := index . 1 }} 127 {{ with $star }} 128 {{ $starrerHandle := resolve .StarredByDid }} 129 {{ $repoOwnerHandle := resolve .Repo.Did }} 130 <div class="pl-6 py-2 bg-white dark:bg-gray-800 text-gray-600 dark:text-gray-300 flex flex-wrap items-center gap-2 text-sm"> 131 {{ template "user/fragments/picHandleLink" $starrerHandle }} 132 starred 133 <a href="/{{ $repoOwnerHandle }}/{{ .Repo.Name }}" class="no-underline hover:underline"> 134 {{ $repoOwnerHandle | truncateAt30 }}/{{ .Repo.Name }} 135 </a> 136 <span class="text-gray-700 dark:text-gray-400 text-xs">{{ template "repo/fragments/time" .Created }}</span> 137 </div> 138 {{ with .Repo }} 139 {{ template "user/fragments/repoCard" (list $root . true) }} 140 {{ end }} 141 {{ end }} 142{{ end }} 143 144 145{{ define "followEvent" }} 146 {{ $root := index . 0 }} 147 {{ $follow := index . 1 }} 148 {{ $profile := index . 2 }} 149 {{ $stat := index . 3 }} 150 151 {{ $userHandle := resolve $follow.UserDid }} 152 {{ $subjectHandle := resolve $follow.SubjectDid }} 153 <div class="pl-6 py-2 bg-white dark:bg-gray-800 text-gray-600 dark:text-gray-300 flex flex-wrap items-center gap-2 text-sm"> 154 {{ template "user/fragments/picHandleLink" $userHandle }} 155 followed 156 {{ template "user/fragments/picHandleLink" $subjectHandle }} 157 <span class="text-gray-700 dark:text-gray-400 text-xs">{{ template "repo/fragments/time" $follow.FollowedAt }}</span> 158 </div> 159 <div class="py-4 px-6 drop-shadow-sm rounded bg-white dark:bg-gray-800 flex items-center gap-4"> 160 <div class="flex-shrink-0 max-h-full w-24 h-24"> 161 <img class="object-cover rounded-full p-2" src="{{ fullAvatar $subjectHandle }}" /> 162 </div> 163 164 <div class="flex-1 min-h-0 justify-around flex flex-col"> 165 <a href="/{{ $subjectHandle }}"> 166 <span class="font-bold dark:text-white overflow-hidden text-ellipsis whitespace-nowrap max-w-full">{{ $subjectHandle | truncateAt30 }}</span> 167 </a> 168 {{ with $profile }} 169 {{ with .Description }} 170 <p class="text-sm pb-2 md:pb-2">{{.}}</p> 171 {{ end }} 172 {{ end }} 173 {{ with $stat }} 174 <div class="text-sm flex items-center gap-2 my-2 overflow-hidden text-ellipsis whitespace-nowrap max-w-full text-sm"> 175 <span class="flex-shrink-0">{{ i "users" "size-4" }}</span> 176 <span id="followers">{{ .Followers }} followers</span> 177 <span class="select-none after:content-['·']"></span> 178 <span id="following">{{ .Following }} following</span> 179 </div> 180 {{ end }} 181 </div> 182 </div> 183{{ end }}