从 Mastodon 返回原始帖子的链接改进

这里还有一些额外的考虑因素。

属性映射

Discourse

主题和帖子映射到 NoteArticle

  • title = name
  • cooked = content

Mastodon

帖子映射到 Note

  • text = content

帖子映射到 Article

  • text = name + summary + link

另外:

  • Mastodon 还使用 summary 来表示内容警告(例如 NSFW)。Mastodon 团队目前正在审查此事,并且是 W3C ActivityPub 信任与安全工作组的讨论主题。

  • Fediverse 技术人员(包括 Mastodon)正在讨论采用 Preview 的概念,该概念将是一个附加到 Article 的对象(例如另一个 Note),用于提供更结构化的 summary 版本,但对此存在一些争论。

其他平台

许多平台遵循 ActivityStreams 规范。

帖子映射到 NoteArticle

  • text = content

大多数平台没有“主题”的概念,但如果有的话:

  • title = name

还有一个额外的考虑因素是,在“Threadiverse”(即 Discourse、NodeBB、Lemmy、Flarum 等)中,我们基本上确定了一个主题 = Collection 的概念,这也意味着主题标题可以是 Collectionname

这对我们意味着什么

@pmusaraj 我个人认为,上述背景信息对于您提出的考虑因素的要点如下:

1. 有针对性地使用 summary

我认为我们应该将 Discourse 主题的 excerpts 映射到 Articlesummary,仅用于主题的第一篇帖子。仅 Article,而不是 Note,并且仅用于主题的第一篇帖子。

2. 从 Collection 名称派生主题标题。

在导航上述对象映射时的一个难点是,您需要一种一致的方式来保留主题标题,尤其是在跨 Discourse 实例进行联合时。我认为更好的导航方式是按如下方式派生主题标题:

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

3. 鼓励仅将第一篇帖子设为 Article

“仅第一篇帖子”发布类型的目的是为了支持主要面向 Mastodon 等流式平台的“公告”风格的发布用例。如果我们实现了 1,这意味着第一篇帖子将在 Mastodon 中显示如下:

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

我还没有触及 summary 的原因是 Mastodon (除了在 Article 中的使用之外)一直将 summary 用于内容警告和剧透,然而这是:

  • 对于 Article 来说不太相关,因为 summary 有效地仅用作 summary。它被更像内容警告(剧透)用于 Note;并且
  • 是 Mastodon 特有的处理方式;并且
  • 不是 summary 属性的规范用途(即在 W3C 规范中);并且
  • 这在 Mastodon 中可能会改变。

请注意,我说“鼓励”,因为我认为将“仅第一篇帖子”始终设为 Article 会排除使用 [note][/note] 标记来识别要发布的帖子中哪些内容。您目前可以使用此标记来创建自己的自定义摘要。我不确定这是否会成为一种使用模式,但我目前不想完全排除它。

4. 删除“在我们的论坛上讨论”链接和设置。

虽然这在早期可能是有意义的,但我认为它:

  • 特定于“仅第一篇帖子”公告风格的用例。
  • 如果我们采用 3,则对该用例是多余的。
  • 与我们始终发送并被平台用于链接到原始内容的“对象 URL”重复。
3 个赞