Fastry теперь поддерживает комментарии внизу постов блога. Интеграция использует Giscus, который хранит комментарии в GitHub Discussions выбранного вами репозитория.
Шаг 1 — Настройка Giscus
- Перейдите на giscus.app
- Выберите GitHub-репозиторий для обсуждений. Репозиторий должен быть публичным и с включёнными Discussions
- Установите приложение Giscus на этот репозиторий
- Скопируйте четыре значения:
data-repodata-repo-iddata-categorydata-category-id
Шаг 2 — Настройка Fastry
Откройте src/config/site.config.ts и найдите articleFeatures.comments. Установите enabled: true и вставьте четыре значения:
articleFeatures: {
comments: {
enabled: true,
provider: 'giscus',
giscus: {
repo: 'you/your-repo',
repoId: 'R_kgDOAbcdef',
category: 'General',
categoryId: 'DIC_kwDOAbcdef',
mapping: 'pathname',
reactionsEnabled: true,
theme: 'preferred_color_scheme',
lang: 'en',
},
},
},
Отключение на отдельном посте
Некоторые посты не нуждаются в комментариях. Отключите их с помощью frontmatter:
---
title: Моё объявление
comments: false
---
Как работает ленивая загрузка
Компонент делает следующее:
- На сервере рендерится пустой
<div>с зарезервированной высотой - На клиенте
IntersectionObserverследит за этим<div> - Когда читатель прокручивает в пределах 300px от области комментариев, скрипт Giscus загружается
Читатели, которые уходят со страницы → 0 КБ. Читатели, которые дошли до конца → комментарии готовы к их приходу.
Темизация
По умолчанию theme: 'preferred_color_scheme' заставляет Giscus следовать системным настройкам светлой/тёмной темы.
Где находится
- Компонент:
src/components/blog/Comments.astro - Подключение:
src/layouts/BlogLayout.astro - Конфиг:
src/config/site.config.ts→articleFeatures.comments - Переопределение на пост:
comments: falseв MDX frontmatter