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.
 
 
 
 
 
 

72 lines
4.3 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>
<a class="author-profile__payment-link author-profile__meta-value" href="{{ row.href|e('html_attr') }}" target="_blank" rel="nofollow noopener noreferrer">{{ row.label|e }}</a>
</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 %}