commit - f12c4927d4f9203400143e64d0074ea64f8740df
commit + 661fff229562c1efa18f4260842b199f019d345a
blob - 940e7fc8e0d070a8602d61cd5b1fbbadc77b7e6f
blob + 247ee853a858dd49fa1f143232b0b63c6cf4ad9b
--- capsule/atom.xml
+++ capsule/atom.xml
<name>continue</name>
<email>continue@to.any-key.press</email>
</author>
- <updated>2024-09-22T18:53:03.298054+00:00</updated>
+ <updated>2024-09-28T06:45:45.841143+00:00</updated>
+ <entry>
+ <id>gemini://any-key.press/vostok/atom2gemfeed.gmi</id>
+ <link href="gemini://any-key.press/vostok/atom2gemfeed.gmi" rel="alternate"/>
+ <title>vostok 🚀 Gemini-лента публикаций из Atom-ленты</title>
+ <updated>2024-09-28T06:45:45.841143+00:00</updated>
+ </entry>
<entry>
<id>gemini://any-key.press/vostok/vgi_router.gmi</id>
<link href="gemini://any-key.press/vostok/vgi_router.gmi" rel="alternate"/>
blob - b6d796e750ca49700ed8d181ca7a6a7ff8882dfb
blob + 0b56a73d2665d629f04ed2c535244e4904f9bbf4
--- capsule/index.gmi
+++ capsule/index.gmi
Здесь я публикую что-то среднее между страницами дневника и техническими отчётами о проделанной работе моих домашних некоммерческих проектов.
-=> atom.xml Лента публикаций (Atom/XML)
+=> gemini://any-key.press/vgi/atom2gemfeed/?gemini%3A%2F%2Fany-key.press%2Fatom.xml Лента публикаций (Gemini feed)
+=> atom.xml Лента публикаций (Atom feed)
## Программирование
blob - /dev/null
blob + a8c1a0a456e9ef46bfcb99819e81cb191ed93e68 (mode 644)
--- /dev/null
+++ capsule/vostok/atom2gemfeed.gmi
+# Gemini-лента публикаций из Atom-ленты
+
+Уже довольно давно (ещё со времён ведения HTTP блога) я привык вести RSS/Atom ленту. Поэтому изначально, когда завёл Gemini капсулу и понял, что буду регулярно её пополнять, я решил добавить Atom ленту. Но недавно я перечила документ "Subscribing to Gemini pages":
+=> gemini://geminiprotocol.net/docs/companion/subscription.gmi
+
+Я еще раз ознакомился с форматом Gemini ленты и захотел такую для своей капсулы. Вести две ленты мне совершенно не хочется, но формировать Gemini feed из более строго XML (а Atom описывается именно в формате XML) показалось более логичным ходом. Сказано - сделано, 100 строк на python:
+
+=> gemini://any-key.press/vostok/atom2gemfeed.py Исходный код VGI скрипта atom2gemfeed.py
+
+Скрипт размещён в капсуле по адресу gemini://any-key.press/vgi/atom2gemfeed/ и ожидает, что в query-части URL будет передан URL адрес целевой Atom ленты. То есть, гипотетически, можно генерировать Gemini-ленту для любой капсулы, даже не размещая скрипт у себя. Например для Atom-ленты gemini://bbs.geminispace.org/s/russian?atom ссылка будет выглядеть так:
+
+=> gemini://any-key.press/vgi/atom2gemfeed/?gemini%3A//bbs.geminispace.org/s/russian%3Fatom
+
+А ссылку для генерации Gemini-ленты для своей Atom-ленты я разметил на заглавной странице своей капсулы.
blob - 3ee7b1c443e4a05f90474d1e44fe71f7f8785090
blob + 8e2c23cac696a8faee072c43cb7acd4e6cfc986f
--- capsule/vostok/index.gmi
+++ capsule/vostok/index.gmi
=> how_to_run_on_openbsd.gmi Как запустить сервер vostok на OpenBSD
=> av98.gmi Gemini клиент AV-98
-=> vgi_router.gmi Маршрутизация VGI
## Блог разработки сервера vostok на русском языке
=> reports/ Блог разработки сервера vostok
+## VGI (CGI-like)
+
+Vostok's Gateway Interface
+
+=> vgi_router.gmi Маршрутизация VGI
+=> atom2gemfeed.gmi Gemini-лента публикаций из Atom-ленты
+
## Обратная связь
Патчи, вопросы и предложения присылайте на электронную почту