this repo has no description
at ci 7.7 kB view raw
1{{ define "title" }}good first issues{{ end }} 2 3{{ define "extrameta" }} 4 <meta property="og:title" content="good first issues · tangled" /> 5 <meta property="og:type" content="object" /> 6 <meta property="og:url" content="https://tangled.org/goodfirstissues" /> 7 <meta property="og:description" content="Find good first issues to contribute to open source projects" /> 8{{ end }} 9 10{{ define "content" }} 11<div class="grid grid-cols-10"> 12 <header class="col-span-full md:col-span-10 px-6 py-2 text-center flex flex-col items-center justify-center py-8"> 13 <h1 class="scale-150 dark:text-white mb-4"> 14 {{ template "labels/fragments/label" (dict "def" .GfiLabel "val" "" "withPrefix" true) }} 15 </h1> 16 <p class="text-gray-600 dark:text-gray-400 mb-2"> 17 Find beginner-friendly issues across all repositories to get started with open source contributions. 18 </p> 19 </header> 20 21 <div class="col-span-full md:col-span-10 space-y-6"> 22 {{ if eq (len .RepoGroups) 0 }} 23 <div class="bg-white dark:bg-gray-800 drop-shadow-sm rounded p-6 md:px-10"> 24 <div class="text-center py-16"> 25 <div class="text-gray-500 dark:text-gray-400 mb-4"> 26 {{ i "circle-dot" "w-16 h-16 mx-auto" }} 27 </div> 28 <h3 class="text-xl font-medium text-gray-900 dark:text-white mb-2">No good first issues available</h3> 29 <p class="text-gray-600 dark:text-gray-400 mb-3 max-w-md mx-auto"> 30 There are currently no open issues labeled as "good-first-issue" across all repositories. 31 </p> 32 <p class="text-gray-500 dark:text-gray-500 text-sm max-w-md mx-auto"> 33 Repository maintainers can add the "good-first-issue" label to beginner-friendly issues to help newcomers get started. 34 </p> 35 </div> 36 </div> 37 {{ else }} 38 {{ range .RepoGroups }} 39 <div class="mb-4 gap-1 flex flex-col drop-shadow-sm rounded bg-white dark:bg-gray-800"> 40 <div class="flex px-6 pt-4 flex-row gap-1 items-center justify-between flex-wrap"> 41 <div class="font-medium dark:text-white flex items-center justify-between"> 42 <div class="flex items-center min-w-0 flex-1 mr-2"> 43 {{ if .Repo.Source }} 44 {{ i "git-fork" "w-4 h-4 mr-1.5 shrink-0" }} 45 {{ else }} 46 {{ i "book-marked" "w-4 h-4 mr-1.5 shrink-0" }} 47 {{ end }} 48 {{ $repoOwner := resolve .Repo.Did }} 49 <a href="/{{ $repoOwner }}/{{ .Repo.Name }}" class="truncate min-w-0">{{ $repoOwner }}/{{ .Repo.Name }}</a> 50 </div> 51 </div> 52 53 54 {{ if .Repo.RepoStats }} 55 <div class="text-gray-400 text-sm font-mono inline-flex gap-4"> 56 {{ with .Repo.RepoStats.Language }} 57 <div class="flex gap-2 items-center text-sm"> 58 {{ template "repo/fragments/colorBall" (dict "color" (langColor .)) }} 59 <span>{{ . }}</span> 60 </div> 61 {{ end }} 62 {{ with .Repo.RepoStats.StarCount }} 63 <div class="flex gap-1 items-center text-sm"> 64 {{ i "star" "w-3 h-3 fill-current" }} 65 <span>{{ . }}</span> 66 </div> 67 {{ end }} 68 {{ with .Repo.RepoStats.IssueCount.Open }} 69 <div class="flex gap-1 items-center text-sm"> 70 {{ i "circle-dot" "w-3 h-3" }} 71 <span>{{ . }}</span> 72 </div> 73 {{ end }} 74 {{ with .Repo.RepoStats.PullCount.Open }} 75 <div class="flex gap-1 items-center text-sm"> 76 {{ i "git-pull-request" "w-3 h-3" }} 77 <span>{{ . }}</span> 78 </div> 79 {{ end }} 80 </div> 81 {{ end }} 82 </div> 83 84 {{ with .Repo.Description }} 85 <div class="pl-6 pb-2 text-gray-600 dark:text-gray-300 text-sm line-clamp-2"> 86 {{ . | description }} 87 </div> 88 {{ end }} 89 90 {{ if gt (len .Issues) 0 }} 91 <div class="grid grid-cols-1 rounded-b border-b border-t border-gray-200 dark:border-gray-900 divide-y divide-gray-200 dark:divide-gray-900"> 92 {{ range .Issues }} 93 <a href="/{{ resolve .Repo.Did }}/{{ .Repo.Name }}/issues/{{ .IssueId }}" class="no-underline hover:no-underline hover:bg-gray-100/25 hover:dark:bg-gray-700/25"> 94 <div class="py-2 px-6"> 95 <div class="flex-grow min-w-0 w-full"> 96 <div class="flex text-sm items-center justify-between w-full"> 97 <div class="flex items-center gap-2 min-w-0 flex-1 pr-2"> 98 <span class="truncate text-sm text-gray-800 dark:text-gray-200"> 99 <span class="text-gray-500 dark:text-gray-400">#{{ .IssueId }}</span> 100 {{ .Title | description }} 101 </span> 102 </div> 103 <div class="flex-shrink-0 flex items-center gap-2 text-gray-500 dark:text-gray-400"> 104 <span> 105 <div class="inline-flex items-center gap-1"> 106 {{ i "message-square" "w-3 h-3" }} 107 {{ len .Comments }} 108 </div> 109 </span> 110 <span class="before:content-['·'] before:select-none"></span> 111 <span class="text-sm"> 112 {{ template "repo/fragments/shortTimeAgo" .Created }} 113 </span> 114 <div class="hidden md:inline-flex md:gap-1"> 115 {{ $labelState := .Labels }} 116 {{ range $k, $d := $.LabelDefs }} 117 {{ range $v, $s := $labelState.GetValSet $d.AtUri.String }} 118 {{ template "labels/fragments/label" (dict "def" $d "val" $v "withPrefix" true) }} 119 {{ end }} 120 {{ end }} 121 </div> 122 </div> 123 </div> 124 </div> 125 </div> 126 </a> 127 {{ end }} 128 </div> 129 {{ end }} 130 </div> 131 {{ end }} 132 133 {{ if or (gt .Page.Offset 0) (eq (len .RepoGroups) .Page.Limit) }} 134 <div class="flex justify-center mt-8"> 135 <div class="flex gap-2"> 136 {{ if gt .Page.Offset 0 }} 137 {{ $prev := .Page.Previous }} 138 <a 139 class="btn flex items-center gap-2 no-underline hover:no-underline dark:text-white dark:hover:bg-gray-700" 140 hx-boost="true" 141 href="/goodfirstissues?offset={{ $prev.Offset }}&limit={{ $prev.Limit }}" 142 > 143 {{ i "chevron-left" "w-4 h-4" }} 144 previous 145 </a> 146 {{ else }} 147 <div></div> 148 {{ end }} 149 150 {{ if eq (len .RepoGroups) .Page.Limit }} 151 {{ $next := .Page.Next }} 152 <a 153 class="btn flex items-center gap-2 no-underline hover:no-underline dark:text-white dark:hover:bg-gray-700" 154 hx-boost="true" 155 href="/goodfirstissues?offset={{ $next.Offset }}&limit={{ $next.Limit }}" 156 > 157 next 158 {{ i "chevron-right" "w-4 h-4" }} 159 </a> 160 {{ end }} 161 </div> 162 </div> 163 {{ end }} 164 {{ end }} 165 </div> 166</div> 167{{ end }}