Skip to content
F Fastry
astro-rocket функции блог комментарии giscus

Комментарии к постам блога — Giscus с ленивой загрузкой

Fastry поддерживает комментарии в блоге на основе Giscus и GitHub Discussions. Скрипт загружается лениво — читатели платят нулевую стоимость, если не прокручивают до низа.

A

Almaz

2 мин. чтения

Fastry теперь поддерживает комментарии внизу постов блога. Интеграция использует Giscus, который хранит комментарии в GitHub Discussions выбранного вами репозитория.

Шаг 1 — Настройка Giscus

  1. Перейдите на giscus.app
  2. Выберите GitHub-репозиторий для обсуждений. Репозиторий должен быть публичным и с включёнными Discussions
  3. Установите приложение Giscus на этот репозиторий
  4. Скопируйте четыре значения:
    • data-repo
    • data-repo-id
    • data-category
    • data-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
---

Как работает ленивая загрузка

Компонент делает следующее:

  1. На сервере рендерится пустой <div> с зарезервированной высотой
  2. На клиенте IntersectionObserver следит за этим <div>
  3. Когда читатель прокручивает в пределах 300px от области комментариев, скрипт Giscus загружается

Читатели, которые уходят со страницы → 0 КБ. Читатели, которые дошли до конца → комментарии готовы к их приходу.

Темизация

По умолчанию theme: 'preferred_color_scheme' заставляет Giscus следовать системным настройкам светлой/тёмной темы.

Где находится

  • Компонент: src/components/blog/Comments.astro
  • Подключение: src/layouts/BlogLayout.astro
  • Конфиг: src/config/site.config.tsarticleFeatures.comments
  • Переопределение на пост: comments: false в MDX frontmatter
Поделиться:

Похожие записи

Содержание — якоря для навигации по длинным статьям

Fastry отображает опциональное содержание в постах блога в трёх вариантах — встроенная карточка, липкая боковая панель или оба варианта, с боковой панелью слева или справа.

A Almaz
2 мин. чтения
astro-rocket функции блог навигация

Независимое меню подвала — разные ссылки в шапке и подвале

Fastry теперь позволяет настраивать меню подвала независимо от навигации шапки. Добавьте ссылку на Политику конфиденциальности, Импринт или Политику Cookie без загромождения основной навигации.

A Almaz
2 мин. чтения
astro-rocket функции подвал навигация

Индикатор прокрутки Hero — только для десктопа, скрывается при скролле

Hero в Fastry имеет анимированный индикатор прокрутки: два подпрыгивающих шеврона, которые появляются после анимации hero и исчезают при начале прокрутки.

A Almaz
1 мин. чтения
astro-rocket функции ux анимация

Подписывайтесь

Будьте в курсе — новые статьи, мысли и обновления.