From 414f5c87bc611b9b79c8ff3cca02736d703e949f Mon Sep 17 00:00:00 2001 From: Sergey Matveev Date: Tue, 14 Jan 2020 22:15:06 +0300 Subject: [PATCH] =?utf8?q?=D0=A2=D0=B5=D0=BF=D0=B5=D1=80=D1=8C=20=D0=B2=20?= =?utf8?q?=D0=B1=D0=BB=D0=BE=D0=B3=D0=B5=20=D0=BC=D0=BE=D0=B6=D0=BD=D0=BE?= =?utf8?q?=20=D0=BE=D1=81=D1=82=D0=B0=D0=B2=D0=BB=D1=8F=D1=82=D1=8C=20?= =?utf8?q?=D0=BA=D0=BE=D0=BC=D0=BC=D0=B5=D0=BD=D1=82=D0=B0=D1=80=D0=B8?= =?utf8?q?=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Уже не один человек говорил что хорошо б иметь комментарии в моём блоге. Я этого немного опасаюсь тем, что это легко будет приводить к срачам и порче настроения, но в качестве эксперимента решил приделать. В новой версии 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). Но пока решил сделать по простому совсем. Ну и само собой -- всё это может и паршиво работать, иметь кучу багов и тому прочего ибо пишется в на коленке на скорую руку. -- 2.50.0