Profile and post pages, NodeInfo 2.1, and FEDERATION.md

/@user and /@user/{id} are Razor pages showing an avatar's or community's
public and unlisted posts: no scripts, a strict CSP, no-referrer, noindex,
and an alternate link to the ActivityPub document. A client asking them
for activity+json is redirected to the actor or note, and the actor and
note redirect browsers here.

NodeInfo answers 2.1 as well as 2.0 (repository, homepage, a link to
FEDERATION.md) and counts only public local posts.

FEDERATION.md (FEP-67ff) lists the protocols, FEPs, route names,
activities and the security rules a peer will notice.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012CzABvBkbcFqoHdmi8b9WB
This commit is contained in:
thepraandClaude Opus 5.5 committed 2026-10-01 11:23:03 +02:00
1 parent e54e17708f
commit 9ec1f9930b
11 files changed
+368 -12

No files matched your search

+11
View File
@@ -0,0 +1,11 @@
@page "/@{user}/{id}"
@model PrivaPub.Web.Pages.StatusModel
@{
ViewData["Title"] = $"{Model.Actor.Name}: {Model.Post.Title ?? "post"}";
ViewData["Alternate"] = Model.ObjectUri;
}
<header>
<h1><a href="@Model.Actor.HtmlUrl">@Model.Actor.Name</a></h1>
<div class="handle">@@@Model.Actor.Handle</div>
</header>
<partial name="_Post" model="Model.Post" />