mirror of
https://github.com/svemagie/indiekit-endpoint-activitypub.git
synced 2026-04-02 15:44:58 +02:00
Implements full ActivityPub federation as an Indiekit plugin: - Actor document (Person) with RSA key pair for HTTP Signatures - WebFinger discovery (acct:rick@rmendes.net) - Inbox: handles Follow, Undo, Like, Announce, Create, Delete, Move - Outbox: serves published posts as ActivityStreams 2.0 - Content negotiation: AS2 JSON for AP clients, passthrough for browsers - JF2-to-AS2 converter for all Indiekit post types - Syndicator integration (pre-ticked checkbox for delivery to followers) - Mastodon migration: alias config, CSV import for followers/following - Admin UI: dashboard, followers, following, activity log, migration page - Data retention: configurable TTL on activities, optional raw JSON storage Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
27 lines
977 B
Plaintext
27 lines
977 B
Plaintext
{% extends "document.njk" %}
|
|
|
|
{% from "heading/macro.njk" import heading with context %}
|
|
{% from "card/macro.njk" import card with context %}
|
|
{% from "prose/macro.njk" import prose with context %}
|
|
{% from "pagination/macro.njk" import pagination with context %}
|
|
|
|
{% block content %}
|
|
{{ heading({ text: followerCount + " " + __("activitypub.followers"), level: 1, parent: { text: __("activitypub.title"), href: mountPath } }) }}
|
|
|
|
{% if followers.length > 0 %}
|
|
{% for follower in followers %}
|
|
{{ card({
|
|
title: follower.name or follower.handle or follower.actorUrl,
|
|
url: follower.actorUrl,
|
|
photo: { src: follower.avatar, alt: follower.name } if follower.avatar,
|
|
description: { text: "@" + follower.handle if follower.handle },
|
|
published: follower.followedAt
|
|
}) }}
|
|
{% endfor %}
|
|
|
|
{{ pagination(cursor) if cursor }}
|
|
{% else %}
|
|
{{ prose({ text: __("activitypub.noFollowers") }) }}
|
|
{% endif %}
|
|
{% endblock %}
|