Улучшение ссылок на оригинальный пост из Mastodon

Одна проблема, с которой я часто сталкиваюсь в публикациях «Первый пост / Заметка», заключается в том, что оригинальный пост (OP) публикуется без заголовка, и его первая внешняя ссылка автоматически превращается в карточку-превью (onebox), привлекая к себе больше внимания, чем задумывал автор.

Вот пример:

Оригинальный пост находится здесь: Tell us how you manage subscriptions on Discourse

Имеет ли смысл добавлять заголовок только для первого поста и делать его ссылкой на источник? Это кажется разумным, @angus? Если мы это сделаем, возможно, тогда сможем убрать ссылку «Обсудить на нашем форуме», которая добавляется в конец каждого поста. Не уверен, что она нужна и для ответов: пользователи Mastodon могут прокрутить страницу вверх до первого поста и воспользоваться ссылкой там.

4 лайка

Здесь есть несколько дополнительных соображений.

Маппинг атрибутов

Discourse

Тема и пост в Note или Article:

  • title = name
  • cooked = content

Mastodon

Статус в Note:

  • text = content

Статус в Article:

  • text = name + summary + link

Также:

  • Mastodon также использует summary для предупреждений о содержании (например, NSFW). В настоящее время это рассматривается командой Mastodon и является предметом обсуждения целевой группы W3C ActivityPub Trust and Safety.

  • Технические специалисты фединверса (включая Mastodon) обсуждают внедрение концепции Preview, которая будет объектом, прикрепленным к Article (например, другому Note), для более структурированной версии summary. Однако по этому вопросу ведутся споры.

Другие платформы

Многие следуют спецификации ActivityStreams.

Пост в Note или Article:

  • text = content

Большинство платформ не имеют концепции «темы», но если она есть:

  • title = name

Есть еще одно соображение: в рамках «Тредиверса» (то есть 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 объекта, который мы всегда отправляем и который платформы используют для ссылки на исходный контент.
3 лайка

Спасибо, Энгус! Конечно, вы правы, указывая на то, что здесь речь идёт не только о взаимосвязи между Discourse и Mastodon.

Весь план логичен, все четыре шага.

Как вы считаете, каким образом нам следует это «предлагать»? Мы могли бы добавить простую настройку, где администратор выбирает один из вариантов:

  • публикация в стиле объявления (первое сообщение, статья, публично)
  • полноценный разговор (вся тема, заметка, публично)
  • расширенный режим (открывает три существующих выпадающих списка, чтобы администратор мог выбрать собственную комбинацию)

Я думаю, это может сработать, особенно вместе с некоторыми полезными подсказками и формулировками.