+3
-3
appview/pages/templates/layouts/repobase.html
+3
-3
appview/pages/templates/layouts/repobase.html
···
8
class="no-underline hover:underline"
9
>{{ .RepoInfo.OwnerWithAt }}</a
10
>
11
-
/
12
<a
13
href="/{{ .RepoInfo.FullName }}"
14
class="no-underline hover:underline"
···
33
{{ $value := index $item 1 }}
34
<a
35
href="/{{ $.RepoInfo.FullName }}{{ $value }}"
36
-
class="relative -mr-px group no-underline"
37
hx-boost="true"
38
>
39
<div
40
-
class="px-4 py-2 mr-1 text-black min-w-[80px] text-center relative group-hover:bg-gray-200 rounded-t
41
{{ if eq $.Active $key }}
42
{{ $activeTabStyles }}
43
{{ end }}"
···
8
class="no-underline hover:underline"
9
>{{ .RepoInfo.OwnerWithAt }}</a
10
>
11
+
<span class="select-none">/</span>
12
<a
13
href="/{{ .RepoInfo.FullName }}"
14
class="no-underline hover:underline"
···
33
{{ $value := index $item 1 }}
34
<a
35
href="/{{ $.RepoInfo.FullName }}{{ $value }}"
36
+
class="relative -mr-px group no-underline hover:no-underline"
37
hx-boost="true"
38
>
39
<div
40
+
class="px-4 py-2 mr-1 text-black min-w-[80px] text-center relative group-hover:bg-gray-200 rounded-t
41
{{ if eq $.Active $key }}
42
{{ $activeTabStyles }}
43
{{ end }}"
+51
-33
appview/pages/templates/layouts/topbar.html
+51
-33
appview/pages/templates/layouts/topbar.html
···
1
{{ define "layouts/topbar" }}
2
-
{{ $linkstyle := "text-black hover:text-gray-600 no-underline" }}
3
-
<nav class="space-x-4 mb-4 px-6 py-2 rounded bg-white">
4
-
<div class="container flex justify-between p-0">
5
-
<div id="left-items">
6
-
<a href="/" hx-boost="true" class="{{ $linkstyle }} flex gap-2">
7
-
<i class="w-6 h-6" data-lucide="tangent"></i>
8
-
tangled.sh
9
-
</a>
10
-
</div>
11
-
<div id="right-items" class="flex gap-2">
12
-
{{ with .LoggedInUser }}
13
-
<a href="/repo/new" hx-boost="true" class="{{ $linkstyle }}">
14
-
<i class="w-6 h-6" data-lucide="plus"></i>
15
-
</a>
16
-
<details class="relative inline-block text-left">
17
-
<summary class="{{ $linkstyle }} cursor-pointer list-none">
18
-
{{ didOrHandle .Did .Handle }}
19
-
</summary>
20
-
<div class="absolute flex flex-col right-0 mt-4 p-4 rounded w-48 bg-white border border-gray-200 z-50">
21
-
<a href="/{{ didOrHandle .Did .Handle }}"class="{{ $linkstyle }}">profile</a>
22
-
<a href="/knots"class="{{ $linkstyle }}">knots</a>
23
-
<a href="/settings"class="{{ $linkstyle }}">settings</a>
24
-
<a href="/logout" class="text-red-400 hover:text-red-700 no-underline">logout</a>
25
-
</div>
26
-
</details>
27
-
{{ else }}
28
-
<a href="/login" class="{{ $linkstyle }}">
29
-
login
30
-
</a>
31
-
{{ end }}
32
-
</div>
33
-
</div>
34
-
</nav>
35
{{ end }}
···
1
{{ define "layouts/topbar" }}
2
+
{{ $linkstyle := "text-black hover:text-gray-600 no-underline" }}
3
+
<nav
4
+
class="space-x-4 mb-4 px-6 py-2 rounded bg-white shadow-[0_4px_10px_-1px_rgba(0,0,0,0.1)]"
5
+
>
6
+
<div class="container flex justify-between p-0">
7
+
<div id="left-items">
8
+
<a href="/" hx-boost="true" class="{{ $linkstyle }} flex gap-2">
9
+
<i class="w-6 h-6" data-lucide="tangent"></i>
10
+
tangled.sh
11
+
</a>
12
+
</div>
13
+
<div id="right-items" class="flex gap-2">
14
+
{{ with .LoggedInUser }}
15
+
<a
16
+
href="/repo/new"
17
+
hx-boost="true"
18
+
class="{{ $linkstyle }}"
19
+
>
20
+
<i class="w-6 h-6" data-lucide="plus"></i>
21
+
</a>
22
+
<details class="relative inline-block text-left">
23
+
<summary
24
+
class="{{ $linkstyle }} cursor-pointer list-none"
25
+
>
26
+
{{ didOrHandle .Did .Handle }}
27
+
</summary>
28
+
<div
29
+
class="absolute flex flex-col right-0 mt-4 p-4 rounded w-48 bg-white border border-gray-200 z-50"
30
+
>
31
+
<a
32
+
href="/{{ didOrHandle .Did .Handle }}"
33
+
class="{{ $linkstyle }}"
34
+
>profile</a
35
+
>
36
+
<a href="/knots" class="{{ $linkstyle }}">knots</a>
37
+
<a href="/settings" class="{{ $linkstyle }}"
38
+
>settings</a
39
+
>
40
+
<a
41
+
href="/logout"
42
+
class="text-red-400 hover:text-red-700 no-underline"
43
+
>logout</a
44
+
>
45
+
</div>
46
+
</details>
47
+
{{ else }}
48
+
<a href="/login" class="{{ $linkstyle }}"> login </a>
49
+
{{ end }}
50
+
</div>
51
+
</div>
52
+
</nav>
53
{{ end }}
+1
-1
appview/pages/templates/repo/index.html
+1
-1
appview/pages/templates/repo/index.html
+10
-6
appview/pages/templates/repo/issues/issue.html
+10
-6
appview/pages/templates/repo/issues/issue.html
···
43
</div>
44
45
{{ if .Issue.Body }}
46
-
<article id="body" class="mt-8 border border-gray-300 px-4 py-6">
47
{{ .Issue.Body | escapeHtml }}
48
</article>
49
{{ end }}
50
</section>
51
-
52
-
<hr class="my-10" />
53
54
<section id="comments" class="mt-8 space-y-4 relative">
55
{{ range $index, $comment := .Comments }}
56
<div
57
id="comment-{{ .CommentId }}"
58
-
class="border border-gray-200 p-4 relative"
59
>
60
-
{{ if ne $index 0 }}
61
<div
62
-
class="absolute left-8 -top-4 w-px h-4 bg-gray-200"
63
></div>
64
{{ end }}
65
<div class="flex items-center gap-2 mb-2">
···
43
</div>
44
45
{{ if .Issue.Body }}
46
+
<article id="body" class="mt-8">
47
{{ .Issue.Body | escapeHtml }}
48
</article>
49
{{ end }}
50
</section>
51
+
{{ end }}
52
53
+
{{ define "repoAfter" }}
54
<section id="comments" class="mt-8 space-y-4 relative">
55
{{ range $index, $comment := .Comments }}
56
<div
57
id="comment-{{ .CommentId }}"
58
+
class="rounded-sm bg-white p-4 relative"
59
>
60
+
{{ if eq $index 0 }}
61
<div
62
+
class="absolute left-8 -top-8 w-px h-8 bg-gray-300"
63
+
></div>
64
+
{{ else }}
65
+
<div
66
+
class="absolute left-8 -top-4 w-px h-4 bg-gray-300"
67
></div>
68
{{ end }}
69
<div class="flex items-center gap-2 mb-2">
+38
-9
appview/pages/templates/repo/log.html
+38
-9
appview/pages/templates/repo/log.html
···
1
{{ define "title" }}commits · {{ .RepoInfo.FullName }}{{ end }}
2
3
{{ define "repoContent" }}
4
-
<h1>Commits</h1>
5
-
<h1>Commits</h1>
6
{{ end }}
7
8
{{ define "repoAfter" }}
9
<main>
10
-
<div id="commit-log" class="flex-1">
11
{{ range .Commits }}
12
<div class="flex flex-row justify-between items-center">
13
-
<i
14
-
class="w-5 h-5 mt-5 text-gray-400 align-middle"
15
-
data-lucide="git-commit-horizontal"
16
-
></i>
17
<div
18
-
class="relative w-full px-4 py-4 mt-5 hover:bg-gray-50 border border-gray-200 bg-white"
19
>
20
<div id="commit-message">
21
{{ $messageParts := splitN .Message "\n\n" 2 }}
···
51
</div>
52
</div>
53
54
-
<div class="text-xs text-gray-500">
55
<span class="font-mono">
56
<a
57
href="/{{ $.RepoInfo.FullName }}/commit/{{ .Hash.String }}"
···
1
{{ define "title" }}commits · {{ .RepoInfo.FullName }}{{ end }}
2
3
{{ define "repoContent" }}
4
+
<section id="commit-message">
5
+
{{ $commit := index .Commits 0 }}
6
+
{{ $messageParts := splitN $commit.Message "\n\n" 2 }}
7
+
<div>
8
+
<p class="pb-5">{{ index $messageParts 0 }}</p>
9
+
{{ if gt (len $messageParts) 1 }}
10
+
<p class="mt-1 text-sm cursor-text pb-5">
11
+
{{ nl2br (unwrapText (index $messageParts 1)) }}
12
+
</p>
13
+
{{ end }}
14
+
</div>
15
+
16
+
<div class="text-sm text-gray-500">
17
+
<span class="font-mono">
18
+
<a
19
+
href="/{{ $.RepoInfo.FullName }}/commit/{{ $commit.Hash.String }}"
20
+
class="text-gray-500 no-underline hover:underline"
21
+
>{{ slice $commit.Hash.String }}</a
22
+
>
23
+
</span>
24
+
<span class="mx-2 before:content-['·'] before:select-none"></span>
25
+
<span>
26
+
<a
27
+
href="mailto:{{ $commit.Author.Email }}"
28
+
class="text-gray-500 no-underline hover:underline"
29
+
>{{ $commit.Author.Name }}</a
30
+
>
31
+
</span>
32
+
<div
33
+
class="inline-block px-1 select-none after:content-['·']"
34
+
></div>
35
+
<span>{{ timeFmt $commit.Author.When }}</span>
36
+
</div>
37
+
</section>
38
{{ end }}
39
40
{{ define "repoAfter" }}
41
<main>
42
+
<div id="commit-log" class="flex-1 relative">
43
+
<div class="absolute left-8 top-0 bottom-0 w-px bg-gray-300"></div>
44
{{ range .Commits }}
45
<div class="flex flex-row justify-between items-center">
46
<div
47
+
class="relative w-full px-4 py-4 mt-5 hover:bg-gray-50 rounded-sm bg-white"
48
>
49
<div id="commit-message">
50
{{ $messageParts := splitN .Message "\n\n" 2 }}
···
80
</div>
81
</div>
82
83
+
<div class="text-xs text-gray-500 mt-3">
84
<span class="font-mono">
85
<a
86
href="/{{ $.RepoInfo.FullName }}/commit/{{ .Hash.String }}"