Давненько я искал нормальную альтернативу проприетарным системам комментирования в духе Disqus или Cackle и наконец-то нашел!
Remark42! Всем советую, выглядит вот так: https://krasovs.ky/2021/04/07/hello.html
Официальный сайт с описанием всех плюшек: https://remark42.com
@skobkin @drq @rf это будет другой по сложности проект с другим названием, ИМХО.
А вообще я может чего не понял. Вы хотите чтобы он просто участвовал в федерализации, но не имел своих аккаунтов?
Иначе по факту вы предлагаете тоже самое: нужно будет сначала зарегаться на инстансе AP, а потом уже комментить.
@savely @drq @rf
Если я правильно понял Дока, суть идеи такова, что можно было бы посты представлять в виде AP-объектов (именно тут должна быть сложность с Ремарком), а комментирование через AP просто было бы ещё одним способом оставить комментарий. Сейчас там есть аутентификация через соцсети и гитхабы, а добавился бы к этому AP.
Но если я правильно помню суть Remark42, то здесь сложность именно архитектурная. Ведь он встраивается как побочная сущность на страницу с постом и сам ни на какие запросы кроме рендеринга ленты комментов не отвечает.
А значит поддержка AP должна быть со стороны того, куда встраивается ремарк.
Буду рад ошибаться.
@skobkin @drq @rf ну да, я так понимаю пост должен создаваться помимо непосредственно блога, ещё и в AP.
Сейчас Remark42 смотрит ссылку на которую его вытащили и создает в boltdb запись мол вот пост, вот его комментари.
По идее можно сделать так, чтобы он создавать пост в своей базе, а потом в AP. Дальше просто получать на него AP-ответы.
Можно даже в AP завести отдельный блог-бот-аккаунт, который будет от анинимов кидать реплаи.
AP - это протокол, а не какая-то база данных или что-то ещё. Там ничего создавать не надо. Ты можешь в виде AP-объектов представлять то, что у тебя уже есть в базе данных. В данном случае - в boltdb (неважно где).
Сущности вроде ботов-анонимов тут излишни.
Проблема в другом.
РЕСУРСОМ, который запрашивается является страница, которая отдаётся тем, куда Remark42 встроен. А это может быть в том числе статический HTML (для такого в основном и сделан Remark42).
То есть, если смотреть в тот же стандарт, то:
> Servers MAY use HTTP content negotiation as defined in [RFC7231] to select the type of data to return in response to a request, but MUST present the ActivityStreams object representation in response to application/ld+json; profile="https://www.w3.org/ns/activitystreams", and SHOULD also present the ActivityStreams representation in response to application/activity+json as well.
https://www.w3.org/TR/activitypub/#retrieving-objects
Это разве что какой-то дополнительной миддлварью можно решить.
Это проблема номер раз.
Проблема номер два - если делать подписки - ремарк должен уметь рассылать активити в инбоксы.
https://www.w3.org/TR/activitypub/#delivery
Короче с точки зрения архитектуры ремарка это сомнительное предприятие.
Возможно имеет смысл сделать отдельный проект, возможно в виде миддлвари, который будет решать подобную задачу чуть по-другому и с учётом федерации.
Да не в страничке проблема, а в том, что в идеале у тебя ресурс http://domain.tld/somepost должен в зависимости от заголовков возвращаться либо в HTML (браузеру) либо в виде AP-объекта. Remark на это никак не может повлиять вообще. Он (точнее, его фронтенд) загружается уже внутри того самого HTML в том или ином виде.
@skobkin @drq @rf ааа, понял. Ну тут да, нужна будет модификация ресурса. А почему нельзя использовать URL Remark42?
У меня вот он висит на субдомене: remark42.krasovs.ky. В другом вариант его можно повесить на путь а-ля krasovs.ky/remark42/
Если посещение из браузера пусть перекидывает редиректом на ссылку из базы. Если нет, то пусть отвечает AP-объектом.
Извиняюсь, если я опять чего-то не понял.
> А почему нельзя использовать URL Remark42?
Я не помню в деталях как работает Remark42.
В теории ты, конечно, можешь запилить такой конфиг Nginx, который в зависимости от заголовка будет отдавать либо твою статику, либо то, что сгенерит Remark42.
Но ЕМНИП, Remark не хранит само содержимое поста. То есть, если я не ошибаюсь, в лучшем случае даже с костылями в Nginx у тебя будет в лучшем случае заголовок поста в виде контента (и то не уверен, что Ремарк его хранит).
> Если нет, то пусть отвечает AP-объектом.
Я выше написал, что В ТЕОРИИ это можно сделать, НО.
В случае тех же динамических сайтов кроме Ремарка генерировать AP-объекты некому. А в ремарке, скорее всего, нет нужного набора данных о постах.
То есть, скорее всего (если я не ошибаюсь), без сильного перепиливания Ремарка это не реализуемо в юзабельном виде.