У каждого автора есть такие посты, в которые вложено много сил, много времени, которые собирали реакции и комментарии, которые пересылались друзьям и коллегам. Но проходит месяц, пост безвозвратно улетает вверх по ленте и никто никогда его больше не увидит. Да, они всё еще доступны, но найти их сможет разве что сам автор.
Пройдут годы и дети наших детей еще смогут найти мемы про упячку, но не смогут найти наши мысли, потому что все они внутри закрытой экосистемы. Они не индексируются поисковами, их не читает ChatGPT (может и к счастью, конечно), они живут несколько дней и затем умирают в забвении.
Мне давно не по себе от такой мысли и я еще два года назад искал способы выйти за пределы телеграма. Даже на коленке собрал бота, в которого можно репостнуть пост и получить текст в MarkDown, но это был дикий неудобный колхоз. Я отложил эту идею в свой долгий ящик.
Но другие люди не стоят на месте и в моем инфополе постоянно периодические появлялись проекты, которые тоже задаются этим вопросом. Есть даже платный сервис SeoMeow, который превращает ваш канал в сайт. Да и сам телеграм сделал веб-версию для каналов, которая хоть и не индексируется, но позволяет как минимум красиво пошарить свой контент.
Совсем недавно я узнал про фичу, которой начали баловаться многие авторы. Она есть только в Telegram Desktop — это экспорт канала в JSON. Многие тут же свернули не туда: стали загружать выгрузку в LLM с промтом «напиши пост в моем стиле». Я же подумал, что ну уж точно кто-нибудь сделал конвертер из этого JSON в нормальный markdown. Идея лежит на поверхности. Ведь это может быть удобно как для генерации блога на Astro, так и просто для сохранения постов в Obsidian. И я нашел такое решение — Jimmy.
В описании всё гладко, под капотом питон, заявлена поддержка не только Telegram, а вообще практически всех платформ с текстами. Но есть нюанс, он не работает на экспорте из канала. Я даже issue завел. И есть шансы что разрабы этот дефект поправят когда-то.
А я хочу сейчас и ровно так, как я хочу!
Короче, я взял и написал свой конвертор. Ну как я, мне помогали Opus и Sonnet. От формирования требований, до альфы прошло несколько часов. Затем я всё это отрефакторил, покрыл тестами, настроил CD, красиво оформил в npm-пакет и опубликовал.
Попробуйте:
npx tg2md
Инструмент не просто генерирует md-файлы. Он еще и добавляет frontmatter с мета информацией, которую могут использовать плагины в Obsidian или Astro. Более подробно можно почитать в ReadMe Это очень удобно!
Чтобы перенести посты в блог нужно просто скопипастить результат и не читая его опубликовать. Получится точно лучше, чем ничего. Но я считаю, что всё-таки нужно еще постараться. Тексты для телеграма не подходят для веба. В них много личного, есть ограничение по длине, а в вебе стоит размещать полноценные статьи, которые решают какую-то человеческую проблему. Поэтому каждый пост всё равно приходится перечитывать и адаптировать, объединять части в единое целое и менять призывы к действию. Вот посмотрите какая получилась статья про TypeScript из пяти постов канала. Но это лишь мой подход.
Пользуйтесь, пишите issue, ставьте звезды. Репа tg2md тут. Спасите свои тексты от забвения!
