Improve linking back to original post from Mastodon

There’s a few additional considerations here.

Attribute mapping

Discourse

Topic and post to Note or Article:

  • title = name
  • cooked = content

Mastodon

Status to Note

  • text = content

Status to Article:

  • text = name + summary + link

Also:

  • Mastodon also uses summary for Content Warnings (e.g. NSFW). This is currently being reviewed by the Mastodon team and is a subject of discussion of the W3C ActivityPub Trust and Safety taskforce.

  • The fediverse technical folks (incl Mastodon) are discussing adopting the concept of a Preview which would be an object attached to the Article (e.g. another Note) for a more structured version of asummary, however there is some debate about this.

Other platforms

Many follow the ActivityStreams spec.

Post to Note or Article:

  • text = content

Most do not have the concept of a “topic”, but if they do:

  • title = name

There is an additional consideration that within the “Threadiverse” (i.e. Discourse, NodeBB, Lemmy, Flarum etc) we’ve essentially settled on the idea that a Topic = Collection, which also means that the topic title can be the name of the Collection.

What this means for us

@pmusaraj Personally, I think the upshot of the above context for the considerations you’ve raised are as follows

1. Implement a targeted use of summary.

I think we should map Discourse topic excerpts to the summary of an Article for the first post in a topic. Just Article, not Note, and only for the first post of the topic.

2. Derive topic titles from Collection name first.

One of the wrinkles of navigating the above object mapping is that you need a consistent way of retaining topic titles between topic-centric platforms, for example when federating between Discourse instances. I think the better way to navigate that is to derive the topic title like so:

topic_title = collection.name || first_post.object.name

3. Encourage Article for First Post Only.

The point of the “First Post Only” publication type is to facilitate use cases that focus on an “announcement” style publication mostly targeted at stream-based platforms like Mastodon. If we implemented 1, this would mean that the first post would appear in Mastodon like this

#{topic title}\n\n#{topic excerpt}\n\n#{topic url}

The reason I haven’t touched summary yet as Mastodon has also (in addition to its use in Article) been using summary for content warnings and spoilers, however this is:

  • less relevant for Article as the summary is effectively only used as a summary. It is treated more as a content warning (spoiler) for Note; AND
  • is a treatment specific to Mastodon; AND
  • is not the normative purpose of the summary property (i.e. in the W3C spec); AND
  • this may change in Mastodon.

Note that I say “encourage” as I think making First Post Only always an Article would preclude any use of [note][/note] markup to identify which content in the first post to publish. You can currently use that markup to create your own custom summary. I’m not sure if that’s ever going to catch on as a use pattern, but I wouldn’t want to kill it entirely just yet.

4. Remove “Discuss on our Forum” link and setting

While this may have made sense early on, I think it’s:

  • Specific to the First Post Only announcement style use case.
  • Redundant to that use case if we adopt 3.
  • Duplicative of the object url which we always send and is used by platforms to link to the original content.
3 Likes