mirror of
https://github.com/svemagie/indiekit-endpoint-activitypub.git
synced 2026-04-02 15:44:58 +02:00
Adds a search box at the top of the reader page where users can paste any fediverse URL or @user@domain handle. Uses Fedify's lookupObject() which natively resolves URLs, handles, and acct: URIs, then redirects to the internal post detail or remote profile view.
64 lines
2.4 KiB
Plaintext
64 lines
2.4 KiB
Plaintext
{% extends "layouts/ap-reader.njk" %}
|
|
|
|
{% from "heading/macro.njk" import heading with context %}
|
|
{% from "prose/macro.njk" import prose with context %}
|
|
|
|
{% block readercontent %}
|
|
{# Fediverse lookup #}
|
|
<form action="{{ mountPath }}/admin/reader/resolve" method="get" class="ap-lookup">
|
|
<input type="text" name="q" class="ap-lookup__input"
|
|
placeholder="{{ __('activitypub.reader.resolve.placeholder') }}"
|
|
aria-label="{{ __('activitypub.reader.resolve.label') }}">
|
|
<button type="submit" class="ap-lookup__btn">{{ __("activitypub.reader.resolve.button") }}</button>
|
|
</form>
|
|
|
|
{# Tab navigation #}
|
|
<nav class="ap-tabs" role="tablist">
|
|
<a href="?tab=notes" class="ap-tab{% if tab == 'notes' %} ap-tab--active{% endif %}" role="tab">
|
|
{{ __("activitypub.reader.tabs.notes") }}
|
|
</a>
|
|
<a href="?tab=articles" class="ap-tab{% if tab == 'articles' %} ap-tab--active{% endif %}" role="tab">
|
|
{{ __("activitypub.reader.tabs.articles") }}
|
|
</a>
|
|
<a href="?tab=replies" class="ap-tab{% if tab == 'replies' %} ap-tab--active{% endif %}" role="tab">
|
|
{{ __("activitypub.reader.tabs.replies") }}
|
|
</a>
|
|
<a href="?tab=boosts" class="ap-tab{% if tab == 'boosts' %} ap-tab--active{% endif %}" role="tab">
|
|
{{ __("activitypub.reader.tabs.boosts") }}
|
|
</a>
|
|
<a href="?tab=media" class="ap-tab{% if tab == 'media' %} ap-tab--active{% endif %}" role="tab">
|
|
{{ __("activitypub.reader.tabs.media") }}
|
|
</a>
|
|
<a href="?tab=all" class="ap-tab{% if tab == 'all' %} ap-tab--active{% endif %}" role="tab">
|
|
{{ __("activitypub.reader.tabs.all") }}
|
|
</a>
|
|
</nav>
|
|
|
|
{# Timeline items #}
|
|
{% if items.length > 0 %}
|
|
<div class="ap-timeline" data-mount-path="{{ mountPath }}">
|
|
{% for item in items %}
|
|
{% include "partials/ap-item-card.njk" %}
|
|
{% endfor %}
|
|
</div>
|
|
|
|
{# Pagination #}
|
|
{% if before or after %}
|
|
<nav class="ap-pagination">
|
|
{% if after %}
|
|
<a href="?tab={{ tab }}&after={{ after }}" class="ap-pagination__prev">
|
|
{{ __("activitypub.reader.pagination.newer") }}
|
|
</a>
|
|
{% endif %}
|
|
{% if before %}
|
|
<a href="?tab={{ tab }}&before={{ before }}" class="ap-pagination__next">
|
|
{{ __("activitypub.reader.pagination.older") }}
|
|
</a>
|
|
{% endif %}
|
|
</nav>
|
|
{% endif %}
|
|
{% else %}
|
|
{{ prose({ text: __("activitypub.reader.empty") }) }}
|
|
{% endif %}
|
|
{% endblock %}
|