Индивеб-календарь: Комментарии

У социальных сетей есть важное преимущество перед обычными сайтами — лёгкая обратная связь на пост. Легко отправить фоточку в Инстаграм и получить свои лайки, легко запостить твит и собрать панамку ответов.

На обычных сайтах же обычно можно иногда оставить комментарий, если сайт это поддерживает, или попробовать связаться с автором каким-то другим способом (найти его почту, твиттер, джаббер…).

В Индивебе подход такой: мой контент должен быть на моём сайте в первую очередь. То есть, если мне захочется прокомментировать какую-то статью, то мне стоит написать пост-комментарий на своём сайте, и сослаться на оригинал.

В микроформатах это выражается как ссылка на оригинальный пост со свойством in-reply-to.

<article class="h-entry">
  <h2>В интернете кто-то не прав</h2>
  <p>
    <a
      class="u-in-reply-to"
      href="https://timmarinin.net/2019/indieweb/5">
      Тим Маринин написал статью про Индивеб</a>, но…
  </p>
</article>

С другой стороны, если кто-то ответил на мой пост, я бы захотел об этом узнать! Для этого существуют веб-меншены (WebMentions, то есть веб-упоминания). Работает это так.

  1. Автор ответа (или система, которая используется) берёт ссылку на мой пост.
  2. Находит, куда я принимаю веб-меншены. Для этого на моём сайте есть тег <link rel="webmention" href="сюда-присылайте">. Например, можно запустить в консоли: curl -i -s $target | grep 'rel="webmention"'

  3. Отправляет на этот адрес форму с двумя полями: откуда ссылка и на что. Из консоли можно сделать так: curl -i -d "source=$your_url&target=$target_url" сюда-присылайте
  4. Мой обработчик веб-меншенов получает запрос, проверяет, что с этой страницы действительно есть ссылка, и сохраняет у себя.

Конечно, это можно упростить или даже вовсе автоматизировать. Например, Telegraph позволяет и отправить веб-меншен вручную, и спарсить все ссылки со страницы, чтобы попытаться отправить на них уведомления.

Чтобы принимать такие веб-меншены на своём сайте, можно написать свою реализацию спецификации, а можно воспользоваться встроенной возможностью делегирования: я указал в качестве приёмника веб-меншенов сервис WebMention.io (этот вариант отлично подойдёт для статических сайтов).

И так как использовать уже написанный сервис проще, чем делать самому, то возникает невольная централизация пользователей. Но получается, что я отдаю часть контроля стороннему сервису, где же здесь Инди-, чем это лучше того, чтобы просто отдать свой контент Ello и FriendFeed? Это лучше тем, что позволяет постепенно приходить к Индивебу, а потом, если захочется, можно написать и свою реализацию по открытой спецификации.

У автора сайта так же есть полная свобода в том, как отображать полученные ответы и упоминания: можно отрисовывать их в виде комментариев, можно отображать как количество лайков, можно вообще никак не отображать.

У Индивеб-сообщества есть сильный сдвиг в сторону действия и UX в целом: лучше попробовать три-четыре варианта на самом деле, прежде чем садиться писать спецификацию.

UX и дизайн важнее, чем протоколы, форматы, модели данных, схемы, и т.д.
Мы фокусируемся сначала на UX, и по мере того как понимаем, что нужно сделать, разрабатываем самый простые, лёгкие, минимальные протоколы и форматы, которых хватит, чтобы поддержать этот экспириенс, и ничего сверху.
Сначала UX, потом его поддержка.

Вольно переведено с indieweb.org/principles

Этот сдвиг улучшает устойчивость системы: выживает только то, что пригождается на практике, а не абстрактно хорошие, но в целом бесполезные штуки.

И если хочется написать ответ, то напишите у себя — и отправьте мне веб-меншен.