[О блоге] [наверх] [пред] [2023-07-28 21:40:40+03:00] [9cc5319171865781fd1809aeb35b1887c45026d6]

Блог умеет показывать картинки

Во время написания 8b084f928564cd3b23edc8bfd8dcf5d6c1d1892e я захотел
поделиться фотографией того, что раньше выглядело как аккуратненький
сервер. Но это надо куда-то выкладывать фотографию, желательно чтобы не
просто файло-помойка была, ссылаться на неё. Иногда ведь были позывы
поделиться снимком экрана. В общем, добавил в свой движок для блока
показывать картинки.

Для добавления дополнительной информации к коммиту (который является
постом в блоге) в Git можно в отдельной ветке в файле с названием равном
хэшу коммита разместить произвольную информацию. Собственно это
git-notes. Комментарии у меня хранятся именно как git-note, в который
дописываются recfile-отформатированные записи. Но картинки это бинарные
файлы, к тому же к которым надо бы название/alt добавлять и намекать на
формат изображения. Была идея превратить файл в notes-like ветке в
директорию, в которой названия файлов это alt-текст плюс расширение
указывающее тип.

Но хранить изображения хотелось бы в отдельном репозитории, ибо это уже
опциональная информация, жутко тяжёлая по определению. Начал думать о
подключении в движке ещё одного репозитория, в котором выбирать нужную
ветку и искать директорию с файлами. Легко делать сложно. И только после
этого дошло: а зачем Git то? Не нашёл ответа. В итоге для хранения
картинок просто указываю путь к директории с картинками. Поддиректориями
являются хэши записей в блоге. Внутри них -- просто обычные файлы. И
раздавать директорию можно обычным HTTP-сервером, ничего не надо
просасывать через движок блога. По сути он теперь просто проверяет есть
ли директория с именем коммита и список файлов превращает в список <img>
элементов, а в Atom ленте это превращается в enclosure.

Делаю сертификаты для нового домена img.blog.stargrave.org через
zeasypki (47b11bfd222d9f3f03664035e4fb4ca32cfa75de). Среди них ECDSA
(для всякого старья), EdDSA и ГОСТ, который на уровне TLS 1.3
поддерживается моей сборкой Go (http://www.gostls13.cypherpunks.ru/).
Делаю записи в DNS через zdns (d4eadab571bf5e8ea00d19598f129a708a322d15)
(сертификаты надо сделать заранее, чтобы DANE записи появились в зоне).
Добавляю знание о нём в свой HTTP-сервер godlighty
(http://www.godlighty.stargrave.org/). Пишу скрипт для rsync-а ~blog/img
директории на сервер. Правлю код sgblog. Добавляю пару строчек в
конфигурационный файл на сервере: ImgPath:
/home/www/www/img.blog.stargrave.org, ImgDomain: img.blog.stargrave.org.
Добавляю первую картинку, загружаю, перезапускаю sgblog, радуюсь.

В Atom ленте для enclosure стоит указывать MIME-тип. Поэтому sgblog по
расширению должен уметь определять его. Пока просто сделал hard-code
словарика со всеми поддерживаемыми форматами которые я мог бы раздавать.
То бишь, JPEG XL и WebP (так как много чего у меня в нём есть, без
оригинального файла из которого он был сделан).

Так как я люблю, чтобы серверы были дружелюбны к зеркалированию полному,
то директория раздающая картинки должна читаться через WebDAV. godlighty
его поддерживает частично: например lftp не работает с ним. Но cadaver и
rclone вполне.

    [оставить комментарий]
    комментарий 0:
    From: Petrov Egor
    Date: 2023-07-28 22:20:43Z
    
    Вопрос: планируется ли добавить в gemlog/phlog? Ибо многие их браузеры умеют отображать картинки
    
    комментарий 1:
    From: Sergey Matveev
    Date: 2023-07-30 12:01:29Z
    
    *** Petrov Egor [2023-07-29 01:20]:
    >Вопрос: планируется ли добавить в gemlog/phlog? Ибо многие их браузеры умеют отображать картинки
    
    Добавил отображение ссылок до них и в gemlog и phlog в новой версии
    (только что). В Gopher версии я запись блока отдаю не как полноценный
    Gopher-документ, где можно явно вставить картинку, а в виде текстового
    файла -- поэтому там просто в виде текста присутствует HTTP-ссылка на
    изображение.