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