
Добавляем подсветку кода (синтаксиса) в статический блог на Next.js
Продолжаю работать над улучшением блога. В этой статье расскажу как я добавлял подсветку кода (синтаксиса) в постах.
Есть множество способов сделать это, я же решил пойти самым простым путём и остановился на использовании пакета Prism.
Процесс можно разделить на несколько этапов:
- Установка необходимых пакетов
- Статическая генерация подсвеченного кода
- Добавление подсветки необходимых языков
- Работа с плагинами Prism
- Подключение темы Prism
Установка необходимых пакетов
Сначала установим необходимые пакеты:
Так как я статически генерирую html блога из .md файлов, то мне нужен способ запускать Prism во время сборки приложения. В этом мне поможет пакет rehype-prism.
Статическая генерация подсвеченного кода
В подробностях тут описывать особенно нечего, просто импортируем необходимые пакеты и включаем их в процесс генерации html.
Добавление подсветки необходимых языков
Prism поддерживает множество языков, но для того чтобы они заработали, необходимо подключить их.
Работа с плагинами Prism
Так же Prism поддерживает множество плагинов. Я для себя выбрал "line-numbers", "toolbar", "copy-to-clipboard" плагины.
Для того чтобы их активировать необходимо:
Подключение кода и стилей этих плагинов
Добавим импорт стилей для плагинов в компонент Post.
Использование плагинов
Пакет rehype-prism поддерживает нужные мне плагины из коробки, необходимо только указать что их следует использовать.
Подключение цветовой темы Prism
Prism поддерживает множество цветовых тем. Для того чтобы использовать выбранную тему, необходимо импортировать .css файл нужной темы.
На этом всё! 🎉
Результат можно посмотреть в любом из постов блога.
Подписывайтесь на мой Youtube канал, Telegram и на сообщество Вконтакте 🙂