You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
85 lines
5.0 KiB
85 lines
5.0 KiB
{# Shared author “header” + about (no article list). Expects: author, npub, profile_*, jumble_profile_href; show_nip05: true on full /p/ profile only #} |
|
{% set author_pic = null %} |
|
{% if author.picture is defined and author.picture %} |
|
{% set author_pic = author.picture %} |
|
{% elseif author.image is defined and author.image %} |
|
{% set author_pic = author.image %} |
|
{% endif %} |
|
{% set author_label = author.display_name|default(author.name|default(npub|shortenNpub)) %} |
|
|
|
{% if author_pic %} |
|
<div class="author-profile__avatar"> |
|
<img src="{{ author_pic }}" alt="{{ author_label }}" loading="lazy" decoding="async" onerror="this.parentElement.remove()" /> |
|
</div> |
|
{% endif %} |
|
|
|
{% set header_tag = header_tag|default('h1') %} |
|
<{{ header_tag }} class="author-profile__title"><twig:Atoms:NameOrNpub :author="author" :npub="npub"></twig:Atoms:NameOrNpub></{{ header_tag }}> |
|
|
|
<div class="author-profile__header-meta"> |
|
{% if profile_websites is not empty %} |
|
<ul class="author-profile__identity" aria-label="Websites"> |
|
{% for row in profile_websites %} |
|
<li class="author-profile__identity-row author-profile__meta-line"> |
|
<span class="author-profile__identity-type">Website</span> |
|
<a class="author-profile__identity-link author-profile__meta-value" href="{{ row.href|e('html_attr') }}" target="_blank" rel="nofollow noopener noreferrer">{{ row.label|e }}</a> |
|
</li> |
|
{% endfor %} |
|
</ul> |
|
{% endif %} |
|
{% if show_nip05|default(false) and profile_nip05 is not empty %} |
|
<div class="author-profile__section author-profile__section--label-value" aria-label="NIP-05"> |
|
<span class="author-profile__section-type">NIP-05</span> |
|
<ul class="author-profile__value-stack"> |
|
{% for row in profile_nip05 %} |
|
<li class="author-profile__value-stack-line"> |
|
<span class="author-profile__nip05-value"> |
|
<a class="author-profile__identity-link author-profile__nip05-link" href="{{ row.href|e('html_attr') }}" target="_blank" rel="nofollow noopener noreferrer" title="Open /.well-known/nostr.json for this name">{{ row.label|e }}</a> |
|
{% if row.verified|default(false) %} |
|
<span class="author-profile__nip05-verified" title="This identifier matches the pubkey in /.well-known/nostr.json" aria-label="Verified NIP-05">✓</span> |
|
{% endif %} |
|
</span> |
|
</li> |
|
{% endfor %} |
|
</ul> |
|
</div> |
|
{% endif %} |
|
{% if profile_payment_links is not empty %} |
|
<div class="author-profile__section author-profile__section--label-value" aria-label="Payment"> |
|
<span class="author-profile__section-type">Payment</span> |
|
<ul class="author-profile__payments-nested"> |
|
{% for row in profile_payment_links %} |
|
<li class="author-profile__payment author-profile__meta-line"> |
|
<span class="author-profile__payment-type"{% if row.display_type_label|default('')|trim == '' %} aria-hidden="true"{% endif %}>{{ row.display_type_label|default('')|e }}</span> |
|
<div |
|
class="author-profile__payment-value" |
|
data-controller="copy-text" |
|
data-copy-text-text-value="{{ row.href|e('html_attr') }}" |
|
> |
|
<span class="author-profile__payment-addr author-profile__meta-value" title="{{ row.href|e('html_attr') }}">{{ row.label|e }}</span> |
|
<button |
|
type="button" |
|
class="author-profile__copy-btn btn btn-secondary btn-sm" |
|
data-copy-text-target="button" |
|
data-action="click->copy-text#copy" |
|
title="Copy full payment address / URI for your wallet" |
|
>Copy</button> |
|
</div> |
|
</li> |
|
{% endfor %} |
|
</ul> |
|
</div> |
|
{% endif %} |
|
</div> |
|
|
|
<div class="author-profile__about"> |
|
{% if author.about is defined %} |
|
{{ author.about|markdown_to_html|mentionify|linkify }} |
|
{% endif %} |
|
</div> |
|
|
|
{% if jumble_profile_href is not null and jumble_profile_href != '' %} |
|
<p class="author-profile__jumble"> |
|
<a class="btn btn-secondary" href="{{ jumble_profile_href|e('html_attr') }}" target="_blank" rel="nofollow noopener noreferrer">View on Jumble</a> |
|
</p> |
|
{% endif %}
|
|
|