Здесь есть несколько дополнительных соображений.
Маппинг атрибутов
Discourse
Тема и пост в Note или Article:
- title =
name
- cooked =
content
Mastodon
Статус в Note:
Статус в Article:
- text =
name + summary + link
Также:
-
Mastodon также использует summary для предупреждений о содержании (например, NSFW). В настоящее время это рассматривается командой Mastodon и является предметом обсуждения целевой группы W3C ActivityPub Trust and Safety.
-
Технические специалисты фединверса (включая Mastodon) обсуждают внедрение концепции Preview, которая будет объектом, прикрепленным к Article (например, другому Note), для более структурированной версии summary. Однако по этому вопросу ведутся споры.
Другие платформы
Многие следуют спецификации ActivityStreams.
Пост в Note или Article:
Большинство платформ не имеют концепции «темы», но если она есть:
Есть еще одно соображение: в рамках «Тредиверса» (то есть Discourse, NodeBB, Lemmy, Flarum и т. д.) мы по сути пришли к идее, что Тема = Collection, что также означает, что заголовок темы может быть name объекта Collection.
Что это значит для нас
@pmusaraj Лично я считаю, что итогом вышеизложенного контекста для поднятых вами вопросов являются следующие пункты:
1. Реализовать целевое использование summary.
Я думаю, что нам следует сопоставлять excerpts тем Discourse с полем summary объекта Article для первого поста в теме. Только для Article, а не для Note, и только для первого поста темы.
2. В первую очередь формировать заголовки тем из name 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 фактически используется только как краткое содержание. Для Note оно рассматривается скорее как предупреждение о содержании (спойлер); И
- является спецификой Mastodon; И
- не соответствует нормативному назначению свойства
summary (т. е. в спецификации W3C); И
- это может измениться в Mastodon.
Обратите внимание, что я использую слово «рекомендовать», так как я считаю, что жесткое требование, чтобы публикация «Только первый пост» всегда была Article, исключило бы использование разметки [note][/note] для определения того, какой контент в первом посте следует опубликовать. В настоящее время вы можете использовать эту разметку для создания собственного пользовательского краткого содержания. Я не уверен, приживется ли это как распространенный паттерн использования, но пока не хотел бы полностью от него отказываться.
4. Удалить ссылку «Обсудить на нашем форуме» и соответствующую настройку
Хотя это могло иметь смысл на раннем этапе, я считаю, что это:
- Специфично для сценария использования объявлений в стиле «Только первый пост».
- Избыточно для этого сценария, если мы примем пункт
3.
- Дублирует URL объекта, который мы всегда отправляем и который платформы используют для ссылки на исходный контент.