Files
njump/templates/profile.html
2024-01-05 20:47:36 +01:00

176 lines
6.4 KiB
HTML

<!doctype html>
<html class="theme--default text-lg font-light print:text-base sm:text-xl">
<meta charset="UTF-8" />
<head>
<title>{{.Metadata.Name}} / {{.Metadata.DisplayName}} is on nostr</title>
<meta
name="description"
content="{{.Npub}} is {{.Metadata.Name}} / {{.Metadata.DisplayName}} public key on nostr"
/>
<meta property="og:title" content="{{.Title}}" />
<meta property="og:site_name" content="{{.Npub}}" />
{{ if not (eq "" .Metadata.Picture) }}
<meta property="og:image" content="{{.Metadata.Picture}}" />
<meta property="twitter:image" content="{{.Proxy}}{{.Metadata.Picture}}" />
{{end}} {{ if not (eq "" .Metadata.About) }}
<meta property="og:description" content="{{.Metadata.About}}" />
{{end}}
<meta name="twitter:card" content="summary" />
<link rel="canonical" href="https://njump.me/{{.Npub}}" />
<link
rel="sitemap"
type="application/xml"
title="Sitemap for {{.Npub}}"
href="/{{.Npub}}.xml"
/>
<link
rel="alternate"
type="application/atom+xml"
title="RSS"
href="/{{.Npub}}.rss"
/>
{{template "head_common" .HeadCommonPartial}}
</head>
<body
class="mb-16 bg-white text-gray-600 print:text-black dark:bg-neutral-900 dark:text-neutral-50"
>
{{template "top" .}}
<div class="mx-auto px-4 sm:flex sm:items-center sm:justify-center sm:px-0">
<div
class="w-full max-w-screen-2xl justify-between gap-10 overflow-visible print:w-full sm:flex sm:w-11/12 sm:px-4 md:w-10/12 lg:w-9/12 lg:gap-48vw"
>
<header
class="relative top-auto flex basis-1/4 items-center self-start sm:sticky sm:top-8 sm:mt-8 sm:block sm:items-start"
>
<div
class="hidden basis-[64%] items-center overflow-hidden text-left"
_="on load or scroll from window or resize from window get #profile_name then measure its top, height then if top is less than height / -2 or height is 0 remove .hidden otherwise add .hidden"
>
<div class="mb-3 sm:text-center">
<div class="text-2xl">{{.Metadata.Name}}</div>
{{if not (eq .Metadata.Name .Metadata.DisplayName)}}
<div class="text-base text-stone-400">
{{.Metadata.DisplayName}}
</div>
{{end}}
</div>
</div>
<div
class="imgclip max-w-[40%] basis-2/5 overflow-hidden sm:max-w-full sm:basis-auto"
>
<img class="block h-auto w-full" src="{{.Metadata.Picture}}" />
</div>
</header>
<div class="w-full break-words print:w-full sm:w-1/2">
<header class="mb-6 hidden leading-5 sm:flex sm:items-center">
<h1>
<div id="profile_name" class="text-2xl">{{.Metadata.Name}}</div>
{{if not (eq .Metadata.Name .Metadata.DisplayName)}}
<div class="text-xl text-stone-400">
{{.Metadata.DisplayName}}
</div>
{{end}}
</h1>
</header>
<div
class="-ml-4 mb-6 h-1.5 w-1/2 bg-zinc-100 sm:-ml-2.5 dark:bg-zinc-700"
></div>
{{ if not (eq "" .Metadata.Website) }}
<div class="mb-6 leading-5">
<a
class="border-b-2 border-b-gray-300 pb-0.5 hover:text-strongpink"
href="{{.NormalizedAuthorWebsiteURL}}"
>{{.Metadata.Website}}</a
>
</div>
{{ end }} {{ if not (eq "" .RenderedAuthorAboutText) }}
<div
class="prose mb-6 leading-5 dark:prose-invert prose-headings:font-light sm:prose-a:text-justify"
dir="auto"
>
{{.RenderedAuthorAboutText}}
</div>
{{ end }} {{ if or (not (eq "" .Metadata.Website)) (not (eq ""
.RenderedAuthorAboutText)) }}
<div
class="-ml-4 mb-6 h-1.5 w-1/3 bg-zinc-100 sm:-ml-2.5 dark:bg-zinc-700"
></div>
{{ end }}
<div class="mb-6 leading-5">
<div class="text-sm text-strongpink">Public Key</div>
{{.Npub}}
</div>
<div class="mb-6 leading-5">
{{ if not (eq "" .Metadata.NIP05) }}
<div class="text-sm text-strongpink">NIP-05 Address</div>
{{.Metadata.NIP05}} {{ end }}
</div>
<div class="mb-6 leading-5">
{{ if not (eq "" .Metadata.LUD16) }}
<div class="text-sm text-strongpink">NIP-57 Address</div>
{{.Metadata.LUD16}} {{ end }}
</div>
<div class="mb-6 leading-5">
<div class="text-sm text-strongpink">Profile Code</div>
{{.Nprofile}}
</div>
{{ if not (eq 0 (len .AuthorRelays)) }}
<div class="mb-6 leading-5">
<div class="text-sm text-strongpink">Publishing to</div>
{{range $index, $element := .AuthorRelays}}
<a
href="/r/{{$element}}"
class="mr-1 mt-2 inline-block max-w-full rounded-lg border border-slate-300 px-2 py-0.5 hover:border hover:border-solid hover:border-strongpink hover:bg-strongpink hover:text-white"
>{{$element}}</a
>
{{end}}
</div>
{{ end }}
<!---->
{{template "details" .DetailsPartial}}
<div
_="init fetch /profile-last-notes/{{.Npub}} then put the result into me end "
>
{{if not (eq 0 (len .LastNotes))}}
<aside>
<div
class="-ml-4 mb-6 h-1.5 w-1/3 bg-zinc-100 sm:-ml-2.5 dark:bg-zinc-700"
></div>
<nav class="mb-6 leading-5">
<h2 class="text-2xl text-strongpink">Last Notes</h2>
{{range $i, $ee := .LastNotes}}
<a
class="my-8 block no-underline hover:-ml-6 hover:border-l-05rem hover:border-solid hover:border-l-gray-100 hover:pl-4 dark:hover:border-l-zinc-700"
href="/{{$ee.Nevent}}"
>
</a>
{{end}}
</nav>
</aside>
{{end}}
</div>
<div
class="-ml-4 mb-6 h-1.5 w-1/3 bg-zinc-100 sm:-ml-2.5 dark:bg-zinc-700"
></div>
</div>
{{template "clients" .ClientsPartial}}
</div>
</div>
{{template "footer" .}}
</body>
</html>