[О блоге] [наверх] [пред] [2020-01-14 22:15:06+03:00] [414f5c87bc611b9b79c8ff3cca02736d703e949f]

Теперь в блоге можно оставлять комментарии

Уже не один человек говорил что хорошо б иметь комментарии в моём блоге.
Я этого немного опасаюсь тем, что это легко будет приводить к срачам и
порче настроения, но в качестве эксперимента решил приделать. В новой
версии SGBlog-а.

Комментарии хранятся для каждого коммита в виде git-notes объекта.
Каждый комментарий это просто кусок байт/текста. Но, так как комментарий
не один, а объект для хранения один, то нужно сериализовывать
последовательности байт/строк как-то. Вариантов масса, но я решил
использовать один из самых простых -- netstring сериализацию. И объект
хранит просто сконкатенированные netstring-и. Раз это просто отдельная
ветка в Git, то её можно склонировать. netstring-и можно смотреть, если
не глазами, то хотя вот этой библиотекой:
https://git.cypherpunks.ru/cgit.cgi/netstring.git/tree/README
которая и используется в SGBlog.

Отсылать комментарии можно по ссылке имеющейся в каждом посте по
email-у. Subject просто содержит хэш комментируемого объекта. Из From
поля почтового сообщения берётся всё кроме последнего слова. Сообщение
может быть без MIME и считаться UTF-8 текстом as-is. Или оно явно может
быть text/plain. Или multipart/signed внутри которого text/plain, хотя
подпись всё-равно нигде не проверяется. Допустимые кодировки только
utf-8, iso-8859-1, us-ascii. ETag-и учитывают содержимое комментариев
при рендеринге HTML.

Нужно только не забывать, что на моём почтовом сервере работает
graylisting и поэтому сообщения могут в первые разы доставляться в
течении десятков минут.

Вообще изначально я хотел сделать так, что сообщение обязательно должно
быть OpenPGP зашифровано (на ключе какого-нибудь comment@blog.stargrave.org).
Но пока решил сделать по простому совсем.

Ну и само собой -- всё это может и паршиво работать, иметь кучу багов и
тому прочего ибо пишется в на коленке на скорую руку.

    [оставить комментарий]
    комментарий 0:
    From: Sergey Matveev
    Date: 2020-01-14 22:16:56+03:00
    
    Это вот первый комментарий на тему комментариев. Testing, testing...
    
    комментарий 1:
    From: Dog
    Date: 2020-01-15 04:27:22+03:00
    
    Hello, world!
    
    комментарий 2:
    From: Serge
    Date: 2020-01-21 17:39:11Z
    
    Здравствуйте Сергей! Очень здорово, что теперь можно комментировать ваши
    записи.
    
    комментарий 3:
    From: Sergey Matveev
    Date: 2020-05-21 16:33:08Z
    
    Ещё одна проверка.
    
    комментарий 4:
    From: Sergey Matveev
    Date: 2020-06-06 13:53:49Z
    
    Приветствую!
    
    *** Владислав Николашин [2020-06-06 18:23]:
    >   А есть ссылки на Ваш "движок" блога?
    
    http://sgblog.stargrave.org/
    http://sgblog.stargrave.org/Installation.html
    
    комментарий 5:
    From: Sergey Matveev
    Date: 2024-12-15 20:20:32Z
    
    *** _ _ [2024-12-15 22:42]:
    >fatal: protocol error: unexpected
    >'a3b7e2047483f7ba5db59910ff50ca235b6c89641e6f096e8bd2982fabbb0ba7 HEAD'
    
    Предполагаю, что у вас недостаточно новый Git, который не поддерживает
    репозитории SHA256 формата.