mirror of
https://github.com/svemagie/indiekit-endpoint-activitypub.git
synced 2026-04-02 15:44:58 +02:00
Implement all missing Fedify features for full ActivityPub compliance: - Liked, Featured, Featured Tags collection dispatchers with admin UIs - Object dispatcher for Note/Article dereferencing at AP URIs - Instance actor (Application type) for domain-level federation - Handle aliases (.mapAlias) for profile URL and /@handle resolution - Configurable actor type (Person/Service/Organization/Group) - Dynamic NodeInfo version from @indiekit/indiekit package.json - Context data propagation (handle + publication URL) - ParallelMessageQueue wrapping RedisMessageQueue (5 workers) - Collection sync (FEP-8fcf) and ordering keys on sendActivity - Permanent failure handler stub (deferred to Fedify 2.0) - Profile attachments (PropertyValue) and alsoKnownAs support - Strip invalid "type":"as:Endpoints" from actor JSON (Fedify #576) - Fix .mapAlias() return type ({identifier} not bare string) - Remove .authorize() predicate (causes 401 loops without auth doc loader) - Narrow content negotiation router to /nodeinfo/ only 22/22 compliance tests pass (Grade A+). Version 1.0.26.
87 lines
2.4 KiB
Plaintext
87 lines
2.4 KiB
Plaintext
{% extends "document.njk" %}
|
|
|
|
{% from "heading/macro.njk" import heading with context %}
|
|
{% from "input/macro.njk" import input with context %}
|
|
{% from "textarea/macro.njk" import textarea with context %}
|
|
{% from "checkboxes/macro.njk" import checkboxes with context %}
|
|
{% from "button/macro.njk" import button with context %}
|
|
{% from "notification-banner/macro.njk" import notificationBanner with context %}
|
|
{% from "prose/macro.njk" import prose with context %}
|
|
|
|
{% block content %}
|
|
{{ heading({ text: title, level: 1, parent: { text: __("activitypub.title"), href: mountPath } }) }}
|
|
|
|
{% if result %}
|
|
{{ notificationBanner({ type: result.type, text: result.text }) }}
|
|
{% endif %}
|
|
|
|
{{ prose({ text: __("activitypub.profile.intro") }) }}
|
|
|
|
<form method="post" novalidate>
|
|
{{ input({
|
|
name: "name",
|
|
label: __("activitypub.profile.nameLabel"),
|
|
hint: __("activitypub.profile.nameHint"),
|
|
value: profile.name
|
|
}) }}
|
|
|
|
{{ textarea({
|
|
name: "summary",
|
|
label: __("activitypub.profile.summaryLabel"),
|
|
hint: __("activitypub.profile.summaryHint"),
|
|
value: profile.summary,
|
|
rows: 4
|
|
}) }}
|
|
|
|
{{ input({
|
|
name: "url",
|
|
label: __("activitypub.profile.urlLabel"),
|
|
hint: __("activitypub.profile.urlHint"),
|
|
value: profile.url,
|
|
type: "url"
|
|
}) }}
|
|
|
|
{{ input({
|
|
name: "icon",
|
|
label: __("activitypub.profile.iconLabel"),
|
|
hint: __("activitypub.profile.iconHint"),
|
|
value: profile.icon,
|
|
type: "url"
|
|
}) }}
|
|
|
|
{{ input({
|
|
name: "image",
|
|
label: __("activitypub.profile.imageLabel"),
|
|
hint: __("activitypub.profile.imageHint"),
|
|
value: profile.image,
|
|
type: "url"
|
|
}) }}
|
|
|
|
{{ checkboxes({
|
|
name: "manuallyApprovesFollowers",
|
|
items: [
|
|
{
|
|
label: __("activitypub.profile.manualApprovalLabel"),
|
|
value: "true",
|
|
hint: __("activitypub.profile.manualApprovalHint")
|
|
}
|
|
],
|
|
values: ["true"] if profile.manuallyApprovesFollowers else []
|
|
}) }}
|
|
|
|
{{ checkboxes({
|
|
name: "authorizedFetch",
|
|
items: [
|
|
{
|
|
label: __("activitypub.profile.authorizedFetchLabel"),
|
|
value: "true",
|
|
hint: __("activitypub.profile.authorizedFetchHint")
|
|
}
|
|
],
|
|
values: ["true"] if profile.authorizedFetch else []
|
|
}) }}
|
|
|
|
{{ button({ text: __("activitypub.profile.save") }) }}
|
|
</form>
|
|
{% endblock %}
|