仰望星辰工作室

gitcat

gitcat/ webroot/templates/repo_home.html 6.2 KB · 133 行 原始文件
1{{define "content"}}
2{{$repo := .Data.Repo}}
3<header class="repo-head">
4 <div class="repo-title">
5 <span class="repo-icon lg" aria-hidden="true">
6 <svg viewBox="0 0 24 24" width="20" height="20" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><path d="M4 5.5A1.5 1.5 0 0 1 5.5 4H9l1.5 2H18a1.5 1.5 0 0 1 1.5 1.5v9A1.5 1.5 0 0 1 18 18H5.5A1.5 1.5 0 0 1 4 16.5z"/></svg>
7 </span>
8 <div>
9 <h1>{{$repo.Name}}{{if $repo.IsArchived}}<span class="tag tag-warn">已归档</span>{{end}}{{if not $repo.AIEnabled}}<span class="tag tag-plain">AI 摘要已关闭</span>{{end}}</h1>
10 {{if $repo.Description}}<p class="repo-sub">{{$repo.Description}}</p>{{else}}<p class="repo-sub muted">暂无项目描述{{if .Data.CanManage}} · <a class="quiet" href="/{{$repo.Name}}/settings">去添加</a>{{end}}</p>{{end}}
11 </div>
12 </div>
13 <div class="repo-actions">
14 <div class="clonebox">
15 <span class="clonebox-label">clone</span>
16 <input type="text" readonly size="{{len .Data.CloneURL}}" value="{{.Data.CloneURL}}" aria-label="仓库地址">
17 <button class="btn btn-mini" type="button" data-copy="{{.Data.CloneURL}}">复制</button>
18 </div>
19 </div>
20</header>
21
22{{template "repotabs" (dict "Repo" $repo "Ref" .Data.Ref "Tab" "code" "CanManage" .Data.CanManage "CommitCount" .Data.CommitCount "BranchCount" .Data.BranchCount)}}
23
24<div class="repo-grid">
25 <div class="repo-main">
26 {{if .Data.IsEmpty}}
27 <div class="card empty">
28 <h3>仓库还是空的</h3>
29 <p class="muted">在本地执行下面的命令,把第一个版本推上来。</p>
30 <pre class="code">git init -b main
31git add .
32git commit -m "first commit"
33git remote add origin {{.Data.CloneURL}}
34git push -u origin main</pre>
35 {{if not .User}}<p class="hint">推送时需要登录:账号由管理员创建,<a href="/login">点此登录</a>。</p>{{end}}
36 </div>
37 {{else}}
38 {{with .Data.Path}}
39 <div class="crumb-bar">
40 {{range $.Data.Breadcrumbs}}<a class="crumb" href="/{{$repo.Name}}/tree/{{$.Data.Ref}}/{{.Path}}">{{.Name}}</a><span class="sep">/</span>{{end}}
41 </div>
42 {{end}}
43 <div class="card filebox">
44 <div class="filebox-head">
45 {{if .Data.LastCommit}}
46 {{template "avin" (dict "N" .Data.LastCommit.Author "S" 26)}}
47 <span class="fc-author">{{.Data.LastCommit.Author}}</span>
48 <a class="fc-subject" href="/{{$repo.Name}}/commit/{{.Data.LastCommit.SHA}}">{{.Data.LastCommit.Subject}}</a>
49 <span class="muted">{{timeago .Data.LastCommit.When}}</span>
50 {{else}}<span class="muted">目录内容</span>{{end}}
51 </div>
52 <table class="filetable">
53 <tbody>
54 {{range .Data.Entries}}
55 <tr>
56 <td class="ft-name">
57 {{if .IsDir}}
58 <a href="/{{$repo.Name}}/tree/{{$.Data.Ref}}/{{.Path}}" class="ft-link"><span class="ico dir">▸</span>{{.Name}}</a>
59 {{else}}
60 <a href="/{{$repo.Name}}/blob/{{$.Data.Ref}}/{{.Path}}" class="ft-link"><span class="ico file">•</span>{{.Name}}</a>
61 {{end}}
62 </td>
63 <td class="ft-commit">
64 {{if .HasCommit}}<a class="quiet" href="/{{$repo.Name}}/commit/{{.LastCommit.SHA}}">{{.LastCommit.Subject}}</a>{{end}}
65 </td>
66 <td class="ft-time">{{if .HasCommit}}{{timeago .LastCommit.When}}{{end}}</td>
67 <td class="ft-size">{{if not .IsDir}}{{humanSize .Size}}{{end}}</td>
68 </tr>
69 {{end}}
70 </tbody>
71 </table>
72 </div>
73
74 {{if .Data.ReadmeName}}
75 <div class="card readme">
76 <div class="readme-head"><span class="ico file">•</span>{{.Data.ReadmeName}}</div>
77 <div class="md-body">
78 {{if .Data.ReadmeIsMarkdown}}{{.Data.ReadmeHTML}}{{else}}<pre class="code">{{.Data.ReadmeText}}</pre>{{end}}
79 </div>
80 </div>
81 {{end}}
82 {{end}}
83 </div>
84
85 <aside class="repo-side">
86 {{with .Data.LatestPush}}
87 <div class="card whatsnew-card">
88 <div class="wn-head">
89 <span class="whats-tag">What's New</span>
90 {{if eq .AIStatus "done"}}<span class="tag tag-ai">AI 生成</span>{{else if eq .AIStatus "pending"}}<span class="tag tag-pending">生成中…</span>{{end}}
91 </div>
92 {{if .WhatsNew}}<div class="md-body wn-body">{{md .WhatsNew}}</div>{{else}}<p class="muted small">AI 正在生成这次更新的说明…</p>{{end}}
93 <div class="wn-foot muted">{{.ActorDisplay}} · {{timeago .CreatedAt}} · <a class="quiet" href="/{{$repo.Name}}/activity">全部动态</a></div>
94 </div>
95 {{end}}
96
97 <div class="card about">
98 <h3>关于</h3>
99 <p>{{if $repo.Description}}{{$repo.Description}}{{else}}<span class="muted">暂无描述</span>{{end}}</p>
100 <div class="stat-grid">
101 <div><strong>{{num .Data.CommitCount}}</strong><span>提交</span></div>
102 <div><strong>{{num .Data.BranchCount}}</strong><span>分支</span></div>
103 <div><strong>{{num .Data.TagCount}}</strong><span>标签</span></div>
104 <div><strong>{{.Data.SizeText}}</strong><span>体积</span></div>
105 <div><strong>{{num .Data.FileCount}}</strong><span>文件</span></div>
106 <div><strong>{{len .Data.Contributors}}</strong><span>贡献者</span></div>
107 </div>
108 {{if .Data.Languages}}
109 <div class="langs">
110 <div class="langbar">
111 {{range .Data.Languages}}<span style="flex:{{percent .Percent}};background:{{.Color}}" title="{{.Name}} {{percent .Percent}}%"></span>{{end}}
112 </div>
113 <ul class="langlist">
114 {{range .Data.Languages}}<li><span class="langdot" style="background:{{.Color}}"></span>{{.Name}} <em>{{percent .Percent}}%</em></li>{{end}}
115 </ul>
116 </div>
117 {{end}}
118 {{if .Data.Contributors}}
119 <h3>贡献者</h3>
120 <ul class="contrib">
121 {{range .Data.Contributors}}<li>{{template "avin" (dict "N" .Name "S" 22)}}<span>{{.Name}}</span><em>{{.Count}}</em></li>{{end}}
122 </ul>
123 {{end}}
124 <h3>最近提交</h3>
125 <ul class="minicommits">
126 {{range .Data.LatestCommits}}
127 <li><a class="csha" href="/{{$repo.Name}}/commit/{{.SHA}}">{{short .SHA}}</a><span class="cmsg">{{.Subject}}</span><span class="muted">{{timeago .When}}</span></li>
128 {{end}}
129 </ul>
130 </div>
131 </aside>
132</div>
133{{end}}