this repo has no description
1{{ define "title" }}
2 {{ .String.Filename }} · by
3 {{ didOrHandle .Owner.DID.String .Owner.Handle.String }}
4{{ end }}
5
6{{ define "extrameta" }}
7 {{ $ownerId := didOrHandle .Owner.DID.String .Owner.Handle.String }}
8 <meta
9 property="og:title"
10 content="{{ .String.Filename }} · by {{ $ownerId }}" />
11 <meta property="og:type" content="object" />
12 <meta
13 property="og:url"
14 content="https://tangled.sh/strings/{{ $ownerId }}/{{ .String.Rkey }}" />
15 <meta property="og:description" content="{{ .String.Description }}" />
16{{ end }}
17
18{{ define "topbar" }}
19 {{ template "layouts/topbar" $ }}
20{{ end }}
21
22{{ define "content" }}
23 {{ $ownerId := didOrHandle .Owner.DID.String .Owner.Handle.String }}
24 <section id="string-header" class="mb-4 py-2 px-6 dark:text-white">
25 <div class="text-lg flex items-center justify-between">
26 <div>
27 <a href="/strings/{{ $ownerId }}">{{ $ownerId }}</a>
28 <span class="select-none">/</span>
29 <a href="/strings/{{ $ownerId }}/{{ .String.Rkey }}" class="font-bold">
30 {{ .String.Filename }}
31 </a>
32 </div>
33 {{ if and .LoggedInUser (eq .LoggedInUser.Did .String.Did) }}
34 <div class="flex gap-2 text-base">
35 <a
36 class="btn flex items-center gap-2 no-underline hover:no-underline p-2 group"
37 hx-boost="true"
38 href="/strings/{{ .String.Did }}/{{ .String.Rkey }}/edit">
39 {{ i "pencil" "size-4" }}
40 <span class="hidden md:inline">edit</span>
41 {{ i "loader-circle" "w-4 h-4 animate-spin hidden group-[.htmx-request]:inline" }}
42 </a>
43 <button
44 class="btn text-red-500 hover:text-red-700 dark:text-red-400 dark:hover:text-red-300 gap-2 group p-2"
45 title="Delete string"
46 hx-delete="/strings/{{ .String.Did }}/{{ .String.Rkey }}/"
47 hx-swap="none"
48 hx-confirm="Are you sure you want to delete the gist `{{ .String.Filename }}`?">
49 {{ i "trash-2" "size-4" }}
50 <span class="hidden md:inline">delete</span>
51 {{ i "loader-circle" "w-4 h-4 animate-spin hidden group-[.htmx-request]:inline" }}
52 </button>
53 </div>
54 {{ end }}
55 </div>
56 <span>
57 {{ with .String.Description }}
58 {{ . }}
59 {{ end }}
60 </span>
61 </section>
62 <section
63 class="bg-white dark:bg-gray-800 px-6 py-4 rounded relative w-full dark:text-white">
64 <div
65 class="flex justify-between items-center text-gray-500 dark:text-gray-400 text-sm md:text-base pb-2 mb-3 text-base border-b border-gray-200 dark:border-gray-700">
66 <span>
67 {{ .String.Filename }}
68 <span class="select-none px-1 md:px-2 [&:before]:content-['·']"></span>
69 <span>
70 {{ with .String.Edited }}
71 edited
72 {{ template "repo/fragments/shortTimeAgo" . }}
73 {{ else }}
74 {{ template "repo/fragments/shortTimeAgo" .String.Created }}
75 {{ end }}
76 </span>
77 </span>
78 <div>
79 <span>{{ .Stats.LineCount }} lines</span>
80 <span class="select-none px-1 md:px-2 [&:before]:content-['·']"></span>
81 <span>{{ byteFmt .Stats.ByteCount }}</span>
82 <span class="select-none px-1 md:px-2 [&:before]:content-['·']"></span>
83 <a href="/strings/{{ $ownerId }}/{{ .String.Rkey }}/raw">view raw</a>
84 {{ if .RenderToggle }}
85 <span
86 class="select-none px-1 md:px-2 [&:before]:content-['·']"></span>
87 <a href="?code={{ .ShowRendered }}" hx-boost="true">
88 view {{ if .ShowRendered }}code{{ else }}rendered{{ end }}
89 </a>
90 {{ end }}
91 </div>
92 </div>
93 <div class="overflow-auto relative">
94 {{ if .ShowRendered }}
95 <div id="blob-contents" class="prose dark:prose-invert">
96 {{ .RenderedContents }}
97 </div>
98 {{ else }}
99 <div
100 id="blob-contents"
101 class="whitespace-pre peer-target:bg-yellow-200 dark:peer-target:bg-yellow-900">
102 {{ .String.Contents | escapeHtml }}
103 </div>
104 {{ end }}
105 </div>
106 </section>
107{{ end }}