Добавляем RSS фид к статическому Next.js приложению
Сам я не пользуюсь RSS фидами, но так как формат ещё жив, решил добавить фид и для этого блога.
Процесс этот простой и проходит в 2 основных шага:
Генерация RSS фида
Для того чтобы сгенерировать фид, необходимо:
- получить список всех постов и их метаданные,
- сформировать RSS фид в формате .XML
- делать так при каждой сборке
Получение постов и их метаданных
Так как посты у меня хранятся в репозитории проекта в формате .md, то для получения всех постов мне просто необходимо:
- получить список файлов в директории с постами,
- пройти по каждому посту и получить метаданные
Для получения метаданных я воспользовался пакетом gray-matter
В результате получился такой код:
Формирование .XML фида
Для того чтобы добавить RSS фид я воспользовался пакетом feed.
Устанавливаем его командой:
Алгоритм следующий:
- сформировать описание фида,
- пройти по списку постов, и сформировать feedItem для каждого поста,
- записать всё в .xml файл
У меня получился вот такой скрипт:
Автоматизация сборки фида
Добавляем в package.json скрипт postbuild.
Он запустится сразу же после успешной сборки проекта и запишет фид в папку с результатами сборки.
Добавление информации о фиде на страницы сайта
Теперь осталось только добавить информацию о фиде на страницы сайта, для того чтобы различные расширения и боты могли легко найти его и отобразить для пользователей.
В файл с Root Layout нашего приложения добавляем следующий код:
Если вы всё сделали правильно, то в элементе вашей страницы появится следующая строчка:
Всё готово! 🎉
P.S.
Вот ссылка на мой RSS фид.
Также не забудьте подписаться на мой Youtube канал и Telegram 🙂