Настраиваем RSS: как сделать и подписаться

Пост создан 2023-11-20

Практически все сайты предлагают RSS-ленту. «Это для дедов» – думала я, проходя мимо. Но тут так же, как и с детьми: появится свой сайт, поймешь.

Сравните: в закладках браузера находится пять личных блогов. Время от времени я открываю их, чтобы проверить новости. Потом по очереди закрываю. А иногда нет. И зарастаю во вкладках.

А можно так: все авторы создали RSS-фид, я подписалась и читаю из одной ленты. Посты открываю, если меня заинтересовало описание.

Интересно? Тогда давайте дальше поговорим, как:

  • организовать интересную ленту;
  • сделать что-то подобное и у себя.

Как это выглядит?

Сервисов для чтения RSS много. Я остановилась на Feedly. Есть несколько популярных альтернатив, подсмотреть можно в статье на Хабре в комментариях.

Допустим, я захожу на сайт интересного человека и вижу плашку RSS. Далее, я прихожу в Feedly и запихиваю полученную после перехода ссылку.

Можно получить целую ленту из таких блогов:

А можно открыть отдельную ленту человека:

Из RSS-ленты можно прочитать часть поста (или весь, зависит от того, как разметил автор свой фид), а можно перейти напрямую на сайт.

Получаем уведомления

Какой профит от стороннего сайта с RSS, если его все равно нужно открывать? А контент из социальных сетей вот он, прямо перед носом. Хорошо, что программисты подумали за всех нас и дали удобные альтернативы.

Расширения для браузеров

У многих сервисов есть расширения. Так выглядит Feedly Notifier: внутри непрочитанные статьи, снаружи количество непрочитанного. Как я поняла, вывести можно только статьи не старше 30 дней.

Однако, бесплатный Feedly медленный. Для меня это не проблема: я не люблю испытывать FOMO 1 и не переживаю если контент приезжает с задержками. Но если вы из тревожных, следующий пункт для вас.

IFTTT

В статье Дениса я прочитала про интеграцию фида RSS с телеграмом через IFTTT через специальный рецепт Feed. Денис подмечает, что тот же Feedly тоже имеет интеграцию. Но платную. Так что, неплохая альтернатива.

Как можно использовать RSS

Фиды RSS можно не только читать. Что еще будем делать?

  • подкастить;
  • учиться;
  • продвигаться;
  • искать работy.

Подкасты

Чаще всего RSS сейчас используется для подкастов. Представьте, что вы грузите вашу запись на сайт, а ее подхватывает любая платформа, от Spotify до Яндекс.Музыки. Вам только нужно установить соглашение в виде .xml файла.

Например, на сайте Apple можно прочитать инструкцию.

Учимся

Огромное количество читалок позволяет выделять и комментировать текст, который в них попадает. Не всегда функция бесплатная, но заметки позволяют ускорить работу с материалом в несколько раз. Альтернатива: конспекты на бумаге / в Notion.

Пиаримся

RSS-агрегаторы это дополнительный способ «продвижения». Например, Feedly помогает искать фиды по тегам. Значит, туда можно попасть и приобрести дополнительный пак читателей.

Ищем работу

Интересный вариант использования фида: поиск работы. На реддите пользователи указали, как можно подписаться на вакансии из Indeed2. Сам RSS имеет комьюнити на реддите с шестью тысячами подписчиков.

Делаем

Круто. Погнали писать код?

Пишем руками

Программировать здесь не обязательно. Наглядная статья в блоге Megan рассказывает, как работает фид и из чего состоит.

Можно заглянуть в спецификацию чтобы узнать, как еще дополнительно можно разметить материал.

Шаблон файла может выглядеть так:

xml
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
      <channel>
          <atom:link href="<RSS_URL>" rel="self" type="application/rss+xml" />
          <title>FEED_TITLE</title>
          <link>SITE_URL</link>
          <language>PICK_ONE_FROM_<a href="https://www.rssboard.org/rss-language-codes">HERE</a></language>
          <description>SHORT_DESCRIPTION</description>

          <pubDate>DATE_IN_RFC-822</pubDate>
          ...
            <item>
                <title>POST_TITLE</title>
                <link>POST_LINK</link>
                <pubDate>DATE_IN_RFC-822</pubDate>
                <description>
                    <![CDATA[POST_DESCRIPTION]]>
                </description>
                <guid>UNIQUE_ID</guid>
            </item>
          ...
      </channel>
  </rss>

Как видно, необязательно делать сложно. Всю эту верстку можно составлять руками.

Автоматизируем

Однако, если у вас сайт на популярных движках типа Gatsby, 11ty, Next.js, Wordpress (и так далее, безумное количество), вы можете сэкономить кучу времени с помощью шаблонизаторов или даже целых пакетов из npm.

Например, есть статья на dev.to о том как приготовить Next.

Я выбрала вот такой способ реализации

Финальный штрих

Не забудьте разместить надпись с оранжевой иконкой у себя на страничке. Пускай все знают, что у вас подключен RSS!

Минусы

Скрапинг

На Хабре в комментариях пользователи указали, что автоматические агрегаторы могут «воровать» контент из RSS и публиковать у себя. Говорят, что в поисковики такой пиратский контент попадает быстрее оригинала. Пугалка или нет – не знаю. Приняла решение не закидывать весь текст статьи в фид, а оставить только дескрипшен.

Удаление постов

Я случайно опубликовала пустой пост и Feedly успел его просканировать. Как бы я не пыталась редактировать фид RSS, ничего не помогало. К сожалению, фид не поддерживает однозначное удаление, если предыдущий контент уже был проиндексирован.

В статье 2015 года пользователь Ole рассказал об аналогичной ситуации. Вариантов не так много:

  • пользоваться тегами для удаления, которые поддерживают далеко не все читалки;
  • указывать напрямую в title и description, что контент больше не актуален.

Так как пост я все-таки планировала выпустить, решила просто не делать ничего. Контент должен автообновиться, потому что <guid> поле не изменилось. Параллельно с этим добавила функциональность черновиков, чтобы больше не ошибаться.

Писать XML тяжело

Поэтому появился JSON Feed! Его я тоже планирую добавить в будущем для сайта; Говорят, парсить из XML удобно, так делает Тим Маринин в своем блоге.

Итоги

Google считала, что RSS умер. Да здравствует RSS! Свободная и бесплатная технология, которую легко парсить и поддерживать, обязана пережить этот век социальных сетей, которые то и дело банят или закрывают.

Давайте читать друг друга!


Footnotes

  1. Fear Of Missing Out, не люблю бояться пропускать события. Популярное явление.

  2. Зарубежный HeadHunter