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 }}