FastComments.com

Настройки и конфигурация

Настройки и конфигурация

Контекст

Здесь вы найдете подробную документацию по каждой из функций и параметров, которые поддерживает виджет комментариев.

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

Будут приведены примеры кода с выделением соответствующих строк. По возможности будут предоставлены скриншоты страниц настроек.

Примеры кода будут использовать нашу библиотеку на чистом JavaScript, однако параметры конфигурации используют точно такие же имена во всех версиях виджета комментариев (React, Vue и т.д.).

Большинство настроек и функций, описанных в этом руководстве, не требуют написания кода.

Отображение одинаковых комментариев на разных страницах Internal Link

Поскольку параметр urlId позволяет нам определить, к какой странице или идентификатору привязаны комментарии, мы можем просто установить urlId с тем же значением на этих страницах.

The Same Comments on Multiple Pages
Copy CopyRun External Link
1
2<script async src="https://cdn.fastcomments.com/js/embed-v2-async.min.js"></script>
3<div id="fastcomments-widget"></div>
4<script>
5window.fcConfigs = [{
6 "tenantId": "demo",
7 "urlId": "https://example.com/source-page"
8}];
9</script>
10

Пользовательские шрифты Internal Link

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

По умолчанию FastComments использует system font stack чтобы выглядеть максимально хорошо на широком спектре устройств.

Чтобы задать собственные шрифты, см. документацию по Custom CSS.

Там вы найдете способ задать пользовательский CSS, который позволит использовать нужные вам шрифты.

Как задать шрифт

Чтобы переопределить шрифт, мы рекомендуем задать ваш CSS с использованием селекторов .fast-comments, textarea. Например:

Пример внешнего шрифта
Copy CopyRun External Link
1
2@import url('https://fonts.googleapis.com/css2?family=Roboto:wght@300&display=swap');
3.fast-comments, textarea {
4 font-family: 'Roboto', sans-serif;
5}
6

Поддержка тёмных фонов (тёмный режим) Internal Link

По умолчанию виджет комментариев FastComments будет автоматически определять тёмную тему на большинстве сайтов.

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

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

Однако механизм определения, который опирается на вычисление «люминанса», может не включить тёмную тему тогда, когда вы этого хотите. Чтобы принудительно включить её, установите флаг hasDarkBackground в true следующим образом:

Force Dark Background Mode
Copy CopyRun External Link
1
2<script async src="https://cdn.fastcomments.com/js/embed-v2-async.min.js"></script>
3<div id="fastcomments-widget"></div>
4<script>
5window.fcConfigs = [{
6 "tenantId": "demo",
7 "hasDarkBackground": true
8}];
9</script>
10

Ссылка из комментариев на страницы Internal Link

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

Если URL ID не всегда является идентификатором, то нам нужно хранить URL в другом месте. Для этого и существует свойство "url", определённое следующим образом.

Defining a Custom URL
Copy CopyRun External Link
1
2<script async src="https://cdn.fastcomments.com/js/embed-v2-async.min.js"></script>
3<div id="fastcomments-widget"></div>
4<script>
5window.fcConfigs = [{
6 "tenantId": "demo",
7 "url": "https://example.com/article-5"
8}];
9</script>
10

Типичный сценарий использования — привязать поток комментариев к некоторому идентификатору, например статье, а затем ссылаться обратно на конкретную страницу, например:

Defining Custom URL and URL IDs together
Copy CopyRun External Link
1
2<script async src="https://cdn.fastcomments.com/js/embed-v2-async.min.js"></script>
3<div id="fastcomments-widget"></div>
4<script>
5window.fcConfigs = [{
6 "tenantId": "demo",
7 "url": "https://example.com/article-5",
8 "urlId": "article-5"
9}];
10</script>
11

URL не очищается от распространённых маркетинговых параметров. По умолчанию, какой бы ни был URL текущей страницы, именно он сохраняется вместе с комментарием.

Определение, какую страницу отобразить Internal Link

При получении и отображении комментариев виджету комментариев нужно знать, с какой страницы начинать. По умолчанию он начинает с первой страницы и отображает только эту страницу.

Если нужно, точную страницу для отображения можно передать виджету комментариев через настройку startingPage.

Specifying The Page to Render
Copy CopyRun External Link
1
2<script async src="https://cdn.fastcomments.com/js/embed-v2-async.min.js"></script>
3<div id="fastcomments-widget"></div>
4<script>
5window.fcConfigs = [{
6 "tenantId": "demo",
7 "startingPage": 1
8}];
9</script>
10

Обратите внимание, что нумерация страниц начинается с нуля, поэтому приведённый выше пример отображает вторую страницу.

Переключение веток комментариев без перезагрузки страницы Internal Link

Мы уже объясняли, что urlId — это идентификатор страницы или статьи, к которой привязаны комментарии.

Также, напомним, если urlId не задан, он по умолчанию будет равен текущему URL страницы.

А как быть с SPA, или Single-Page-Applications, где страница или содержимое, к которому привязаны комментарии, меняется динамически без полной перезагрузки страницы?

Angular, React, Vue и т. д.

В наших библиотеках, таких как Angular и React, простое обновление свойства urlId, передаваемого виджету, вызывает обновление виджета комментариев. Например, вы можете увидеть это в действии для React-приложения здесь.

VanillaJS

Если вы используете библиотеку VanillaJS, это немного сложнее, так как нет фреймворка вроде Angular или React, который бы обрабатывал привязку данных или распространение состояния.

Когда вы создаёте экземпляр виджета VanillaJS, он возвращает несколько функций, которые можно вызвать для его обновления.

Вот рабочий пример, в котором мы меняем хэш страницы и обновляем виджет комментариев:

Пример переключения хэша страницы
Copy CopyRun External Link
1
2<script src="https://cdn.fastcomments.com/js/embed-v2.min.js"></script>
3<button id="change-page"></button>
4<div id="fastcomments-widget"></div>
5<script>
6 (function fastCommentsMain() {
7 let config = {
8 tenantId: 'demo'
9 };
10 let instance = window.FastCommentsUI(document.getElementById('fastcomments-widget'), config);
11
12 let page = '#page-1';
13 function getNextPage() {
14 if (page === '#page-1') {
15 return '#page-2';
16 } else {
17 return '#page-1';
18 }
19 }
20
21 let button = document.getElementById('change-page');
22 function nextPage() {
23 page = getNextPage();
24 button.innerText = 'Go to ' + getNextPage();
25 window.location.hash = page;
26 let locationString = window.location.toString();
27
28 config.url = locationString; // We update url, too, so notifications can link back to the right page
29 config.urlId = locationString;
30
31 instance.update(config);
32 }
33 nextPage();
34 button.addEventListener('click', nextPage);
35 })();
36</script>
37

Отключить перенаправление изображений Internal Link

По умолчанию FastComments позволяет пользователям загружать изображения. Когда пользователь нажимает на изображение, FastComments по умолчанию откроет новую вкладку, чтобы показать это изображение в полном размере. Установка этого флага в true отключает это поведение:

Disable Image Redirect
Copy CopyRun External Link
1
2<script async src="https://cdn.fastcomments.com/js/embed-v2-async.min.js"></script>
3<div id="fastcomments-widget"></div>
4<script>
5window.fcConfigs = [{
6 "tenantId": "demo",
7 "disableImageRedirect": true
8}];
9</script>
10

Если вы не планируете обрабатывать щелчок по изображению самостоятельно (см. onImageClicked), мы рекомендуем сочетать это с применением стилей, чтобы убрать видимость того, что изображение можно нажать.

Выделение новых комментариев Internal Link

FastComments предоставляет несколько способов выделения новых комментариев.

Прежде всего, по умолчанию комментарии, которые вызвали уведомление в приложении (ответы, ответы в той же ветке, или комментарии на странице на которую вы подписаны), автоматически будут выделены: аватар пользователя слегка подсвечивается. Цвет можно настроить через CSS используя класс is-unread.

Комментарии, опубликованные в последние 24 часа, получают применяемый класс 24hr, который можно использовать для стилизации.

Наконец, любые новые живые комментарии, которые появляются в сессии пользователя, будут выделяться в течение нескольких секунд с помощью анимации. Это делается через is-live CSS class и также может быть настроено.

Шаблоны электронной почты Internal Link

Письма, отправляемые FastComments вашим клиентам, можно настроить. Шаблон, логика, и переводы — всё это можно изменить. Текст можно настроить для каждой локали, а стили можно даже изменить для каждого домена. Узнайте больше о настраиваемых шаблонах писем здесь.

Новые живые комментарии внизу Internal Link

По умолчанию новые живые комментарии появляются в верхней части списка комментариев по мере их публикации в реальном времени.

Когда эта опция включена, новые живые комментарии будут добавляться в нижнюю часть списка. Это влияет на то, как комментарии отображаются при их публикации в реальном времени, пока пользователи просматривают ветку комментариев.

New Live Comments to Bottom
Copy CopyRun External Link
1
2<script async src="https://cdn.fastcomments.com/js/embed-v2-async.min.js"></script>
3<div id="fastcomments-widget"></div>
4<script>
5window.fcConfigs = [{
6 "tenantId": "demo",
7 "newCommentsToBottom": true
8}];
9</script>
10

При включенной этой настройке:

  • Новые живые комментарии, опубликованные другими пользователями, будут появляться внизу списка комментариев
  • Пользователи будут видеть, как новые комментарии появляются под существующими в режиме реального времени
  • Это влияет только на обновления живых комментариев - а не на начальную загрузку страницы
  • Это может помочь поддерживать плавность чтения, когда пользователи следят за обсуждением

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

Включить бесконечную прокрутку Internal Link

По умолчанию виджет FastComments автоматически изменяет высоту, чтобы вместить все видимые комментарии. Разбиение на страницы реализовано с помощью кнопки «Показать далее» в конце текущей страницы — мы обнаружили, что такое взаимодействие наиболее удобно для большинства пользователей.

Однако в некоторых случаях предпочитают бесконечную прокрутку. Например, мы используем эту функцию в продукте Stream Chat.

Мы можем скрыть кнопки «Показать далее» и переключиться на бесконечную прокрутку, установив флаг enableInfiniteScrolling в true:

Enabling Infinite Scrolling
Copy CopyRun External Link
1
2<script async src="https://cdn.fastcomments.com/js/embed-v2-async.min.js"></script>
3<div id="fastcomments-widget"></div>
4<script>
5window.fcConfigs = [{
6 "tenantId": "demo",
7 "enableInfiniteScrolling": true
8}];
9</script>
10

Для этого также требуется добавить пользовательский CSS. Добавьте пользовательский CSS для селектора .comments, чтобы включить прокрутку, например:

Включение бесконечной прокрутки
Copy CopyRun External Link
1
2.comments {
3 max-height: 500px;
4 overflow-y: auto;
5}
6

Полный рабочий пример будет выглядеть так:

Enabling Infinite Scrolling
Copy CopyRun External Link
1
2<script async src="https://cdn.fastcomments.com/js/embed-v2-async.min.js"></script>
3<div id="fastcomments-widget"></div>
4<script>
5window.fcConfigs = [{
6 "tenantId": "demo",
7 "enableInfiniteScrolling": true,
8 "customCSS": ".comments { max-height: 500px; overflow-y: auto; }"
9}];
10</script>
11

В приведённом выше примере мы используем свойство customCSS, однако для повышения производительности рекомендуется использовать интерфейс настройки виджета. См. документацию по пользовательскому CSS.

Отображать все комментарии сразу — отключить пагинацию Internal Link

Чтобы отключить пагинацию и отобразить все комментарии сразу, установите startingPage в -1.

Render All Comments
Copy CopyRun External Link
1
2<script async src="https://cdn.fastcomments.com/js/embed-v2-async.min.js"></script>
3<div id="fastcomments-widget"></div>
4<script>
5window.fcConfigs = [{
6 "tenantId": "demo",
7 "startingPage": -1
8}];
9</script>
10

Запретить новые комментарии верхнего уровня Internal Link

Установка noNewRootComments в true приведёт к тому, что виджет скроет область ответа для корневых комментариев, но всё ещё позволит пользователям отвечать на дочерние комментарии. Вы могли бы, например, установить это условно при загрузке страницы, чтобы разрешать оставлять корневые комментарии только некоторым пользователям.

Prevent New Root Comments
Copy CopyRun External Link
1
2<script async src="https://cdn.fastcomments.com/js/embed-v2-async.min.js"></script>
3<div id="fastcomments-widget"></div>
4<script>
5window.fcConfigs = [{
6 "tenantId": "demo",
7 "noNewRootComments": true
8}];
9</script>
10

Максимальная глубина ответов Internal Link

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

Параметр maxReplyDepth позволяет ограничить, насколько глубоко могут уходить ветви ответов. Когда достигается максимальная глубина, пользователи больше не будут видеть кнопку ответа на комментариях на этом уровне.

Limiting Reply Depth to 2 Levels
Copy CopyRun External Link
1
2<script async src="https://cdn.fastcomments.com/js/embed-v2-async.min.js"></script>
3<div id="fastcomments-widget"></div>
4<script>
5window.fcConfigs = [{
6 "tenantId": "demo",
7 "maxReplyDepth": 2
8}];
9</script>
10

При установке maxReplyDepth в 2:

  • Пользователи могут оставлять комментарии на верхнем уровне (глубина 0)
  • Пользователи могут отвечать на комментарии верхнего уровня (глубина 1)
  • Пользователи могут отвечать на эти ответы (глубина 2)
  • Дальнейшие ответы за пределами глубины 2 не допускаются

Установка значения 1 позволит только ответы на комментарии верхнего уровня, создавая более плоскую структуру обсуждения.

Установка maxReplyDepth в 0 отключит все ответы, разрешая только комментарии верхнего уровня. Если параметр не указан, вложенность ответов не ограничена.

Предупреждать перед уходом с несохранённым комментарием Internal Link

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

Установка warnOnUnsavedComment в значение true заставляет браузер запрашивать подтверждение у пользователя перед уходом со страницы, пока любой блок комментариев или незавершённое редактирование всё ещё содержит текст. После отправки комментария текст очищается, поэтому запрос не отображается.

Warn On Unsaved Comment
Copy CopyRun External Link
1
2<script async src="https://cdn.fastcomments.com/js/embed-v2-async.min.js"></script>
3<div id="fastcomments-widget"></div>
4<script>
5window.fcConfigs = [{
6 "tenantId": "demo",
7 "warnOnUnsavedComment": true
8}];
9</script>
10

Запрос использует собственный диалог браузера. Современные браузеры отображают свой текст и игнорируют пользовательские сообщения, поэтому сообщение нельзя настроить.

Эта опция загружает небольшое расширение по требованию, поэтому она не добавляет ничего к виджету для сайтов, которые её не включают.

Обзор единого входа (SSO) Internal Link

SSO, или единый вход (single-sign-on), — это набор соглашений, позволяющих вам или вашим пользователям использовать FastComments без создания ещё одной учётной записи.

Если вы не разрешаете анонимное комментирование, для комментирования через FastComments требуется учётная запись. Мы делаем процесс регистрации очень простым — пользователю достаточно указать свой email при комментировании. Однако мы понимаем, что даже это — лишнее трение, которого некоторые сайты хотят избежать.

Мы можем уменьшить это трение, оставив всего один процесс входа для всего вашего сайта.

Как это получить?

В настоящее время все типы аккаунтов имеют доступ к SSO. Однако максимальное количество SSO-пользователей зависит от вашего тарифа. Как и с другими функциями, тарифы Pro и выше предоставляют прямую поддержку разработки.

Давайте сравним варианты, а затем подробно рассмотрим каждый из них.

Миграция пользователей и комментариев

При миграции с платформы с SSO, такой как Disqus, у вас уже есть пользователи и их комментарии.

Комментарии импортируются в рамках миграции — через API, наш Import UI или службу поддержки. Import UI предпочтителен, если он поддерживает платформу, с которой вы мигрируете, так как он включает обработку ошибок, извлечение и загрузку аватаров и медиафайлов, а также систему мониторинга пакетных заданий.

Сами пользователи добавляются автоматически при первом просмотре веток комментариев. Как альтернатива, их можно предварительно добавить через API, но эта работа не даёт особых преимуществ.

Если комментарии импортированы, а SSO-пользователи не добавлены вручную через API, то комментарии будут автоматически перенесены в учётную запись пользователя при её первом создании, когда он просмотрит любую ветку комментариев. После этого он сможет управлять, редактировать и удалять свои изначально написанные комментарии.

Автоматическая миграция выполняется по email или имени пользователя. Некоторые платформы не предоставляют email при экспорте, например Disqus, поэтому в этом случае мы используем имя пользователя.

  • Пока вы передаёте совпадающее имя пользователя и email в SSO-полезной нагрузке, мы добавим email к отдельным объектам комментариев, чтобы уведомления и упоминания работали.

Если вы хотите импортировать комментарии и пользователей одновременно, обратитесь в поддержку, чтобы после импорта пользователей через API перенести комментарии в соответствующие учётные записи пользователей.

Итак, кратко, самый простой путь миграции:

  1. Импортируйте комментарии.
    1. Аватары и другие медиафайлы переносятся автоматически при использовании Import UI в Manage Data -> Imports.
  2. Настройте Secure или Simple SSO.
  3. Позвольте миграции происходить автоматически для каждого пользователя при его первом входе.
    1. Обычно это добавляет менее секунды к времени загрузки страницы, если у пользователя менее 50 тысяч комментариев.

Пользователи WordPress

Если вы используете наш плагин WordPress, то писать код не нужно! Просто перейдите на страницу администрирования плагина, нажмите SSO Settings, а затем Enable.

Это запустит мастер с одной кнопкой, который создаст ваш API-ключ, отправит его в вашу установку WordPress и включит SSO. Мы объединили всё это в одно нажатие кнопки.

Обратите внимание, что если вы устанавливаете плагин впервые, вам нужно будет пройти процесс настройки, прежде чем вы увидите страницу администрирования с кнопкой SSO Settings.

WordPress SSO — модераторы

Обратите внимание, что в настоящее время, чтобы значок «Moderator» отображался рядом с вашими модераторами при комментировании через плагин FastComments для WordPress, они также должны быть добавлены как модераторы в панели FastComments, и их email должен быть подтверждён.

Пользовательские интеграции

Для пользовательских интеграций есть два варианта.

Вариант первый — Secure SSO

С Secure SSO FastComments знает, что пользователь, комментирующий, голосующий и читающий комментарии, — реальный пользователь вашего сайта.

Пока вы создаёте корректную полезную нагрузку, пользователь всегда будет получать бесшовный опыт комментирования.

С Secure SSO полезная нагрузка SSO создаётся на стороне сервера с использованием аутентификации HMAC, а затем передаётся виджету на клиенте.

С Secure SSO учётная запись пользователя полностью отделена от остальной базы пользователей FastComments. Это означает, что если у нас есть два партнёра — компания A и компания B, — у каждой может быть SSO-пользователь с именем «Bob».

Требования

  • Базовые знания о backend-разработке.
  • Базовые знания о работе с секретными API-ключами.
  • Базовые знания о разработке API или серверном рендеринге.

Плюсы

  • Безопасно.
  • Бесшовный опыт комментирования.

Минусы

  • Требуется backend-разработка.

Обновление данных пользователя

С Secure SSO каждый раз при передаче полезной нагрузки SSO-пользователя мы обновляем его учётную запись самой свежей информацией. Например, если у пользователя имя X, а вы передаёте Y в полезной нагрузке SSO, его имя станет Y.

Если вы хотите удалить значения этим способом, установите их в null (не undefined).

API Secure SSO

Мы также предоставляем API для взаимодействия с SSO-пользователями. См. документацию.

Обратите внимание, что при использовании Secure SSO пользователи автоматически создаются в фоновом режиме при загрузке страницы. Вам не нужно массово импортировать своих пользователей.

Вариант второй — Simple SSO

Альтернатива Secure SSO — просто передать информацию о пользователе виджету комментирования.

Указание email при Simple SSO не обязательно, однако без него комментарии будут отображаться как «Unverified».

Примечание! С начала 2022 года имена пользователей с Simple SSO не должны быть уникальными на всём FastComments.com.

В идеале Simple SSO следует выбирать только при разработке на платформе, не предоставляющей доступ к backend.

Требования

  • Базовые знания о клиентской разработке.
  • Необходимо знать как минимум email пользователя.

Плюсы

  • Просто.
  • Вся активность по-прежнему проходит верификацию.
  • Пользователь никогда не вводит своё имя или email.

Минусы

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

API Simple SSO

Пользователи, автоматически созданные через процесс Simple SSO, сохраняются как объекты SSOUser. Доступ к ним и управление ими осуществляются через API SSOUser. См. документацию.

Пользовательские интеграции — миграция с Disqus SSO Internal Link

Самые заметные различия между Disqus и FastComments Secure SSO заключаются в том, что Disqus использует SHA1 для шифрования, тогда как мы используем SHA256.

Это означает, что миграция с Disqus простая - измените используемый алгоритм хеширования с SHA1 на SHA256 и обновите имена свойств, передаваемые в UI.

Пользовательские интеграции — миграция с Commento SSO Internal Link

Commento использует принципиально другой подход к SSO - они требуют, чтобы у вас был endpoint, который они вызывают для аутентификации пользователя.

FastComments действует наоборот - просто закодируйте и захешируйте информацию о пользователе, используя ваш secret key, и передайте её.

Обратные вызовы Internal Link

Все библиотеки для виджета комментариев (в настоящее время Angular, React, Vue) поддерживают обратные вызовы.

Обратные вызовы задаются в объекте конфигурации и имеют одинаковую сигнатуру для каждой библиотеки.

Поддерживаются следующие обратные вызовы:

  • onInit
  • onAuthenticationChange
  • onRender
  • commentCountUpdated
  • onReplySuccess
  • onVoteSuccess
  • onImageClicked
  • onOpenProfile
  • onCommentSubmitStart
  • onCommentsRendered

Точные сигнатуры можно найти в определениях TypeScript.

Ниже приведён пример со всеми используемыми обратными вызовами:

Примеры обратных вызовов
Copy CopyRun External Link
1
2<script async src="https://cdn.fastcomments.com/js/embed-v2-async.min.js"></script>
3<div id="fastcomments-widget"></div>
4<script>
5 window.fcConfigs = [{
6 target: '#fastcomments-widget',
7 tenantId: 'demo',
8 onInit: function () {
9 console.log('Library started to fetch comments!');
10 },
11 onAuthenticationChange: function (eventName, userObj) {
12 console.log('User authenticated!', eventName, userObj);
13 },
14 onRender: function () {
15 console.log('Render event happened!');
16 },
17 commentCountUpdated: function (newCount) {
18 console.log('New comment count:', newCount);
19 },
20 onReplySuccess: function (comment) {
21 console.log('New comment saved!', comment);
22 },
23 onVoteSuccess: function (comment, voteId, direction, status) {
24 console.log('New vote saved!', comment, voteId, direction, status);
25 },
26 onImageClicked: function (src) {
27 console.log('Image clicked!', src);
28 },
29 onOpenProfile: function (userId) {
30 console.log('User tried to open profile', userId);
31 // return true; // вернуть true, чтобы предотвратить стандартное поведение (открытие профиля пользователя на fastcomments.com).
32 },
33 onCommentSubmitStart: function(comment, continueSubmitFn, cancelFn) {
34 console.log('Trying to submit comment', comment);
35 setTimeout(function() { // имитация асинхронного поведения (вызов API и т.д.).
36 if(confirm('Should submit?')) {
37 continueSubmitFn();
38 } else {
39 cancelFn('Some optional error message');
40 }
41 }, 1000);
42 },
43 onCommentsRendered: function(comments) {
44 // комментарии отсортированы по умолчанию на странице — это может быть «Наиболее релевантные» (например: с наибольшим количеством голосов и т.д.) или «Сначала новые»
45 const topCommentInList = comments[0];
46 console.log('First Comment Rendered:', topCommentInList.avatarSrc, topCommentInList.commenterName, topCommentInList.commentHTML);
47 }
48 }];
49</script>
50

Заголовки страниц Internal Link

Текущий заголовок страницы связывается с указанным urlId и сохраняется для использования в инструментах модерации.

По умолчанию он получается из document.title.

При необходимости вы можете указать собственный заголовок страницы следующим образом:

Specifying The Page Title
Copy CopyRun External Link
1
2<script async src="https://cdn.fastcomments.com/js/embed-v2-async.min.js"></script>
3<div id="fastcomments-widget"></div>
4<script>
5window.fcConfigs = [{
6 "tenantId": "demo",
7 "pageTitle": "Article 42"
8}];
9</script>
10

Количество комментариев и подсчёт всех вложенных ответов Internal Link

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

По умолчанию это true — это подсчет второго типа — всех комментариев. В более старых версиях виджета комментариев значение по умолчанию было false.

Мы можем изменить поведение, чтобы это был подсчет всех вложенных комментариев, установив флаг countAll в true.

Counting All Comments
Copy CopyRun External Link
1
2<script async src="https://cdn.fastcomments.com/js/embed-v2-async.min.js"></script>
3<div id="fastcomments-widget"></div>
4<script>
5window.fcConfigs = [{
6 "tenantId": "demo",
7 "countAll": true
8}];
9</script>
10

Если мы хотим, чтобы счетчик отражал только комментарии верхнего уровня, мы устанавливаем флаг в false.

Counting Top Level Comments
Copy CopyRun External Link
1
2<script async src="https://cdn.fastcomments.com/js/embed-v2-async.min.js"></script>
3<div id="fastcomments-widget"></div>
4<script>
5window.fcConfigs = [{
6 "tenantId": "demo",
7 "countAll": false
8}];
9</script>
10

В настоящее время это нельзя настроить без изменения кода.

Упоминание ID групп Internal Link

Список идентификаторов, используемых для автодополнения @mentions. Полезно, когда вы хотите предотвратить упоминание пользователей, если у них нет пересекающихся групп.

Когда задано, в автозаполнении после ввода символа @ будут предлагаться только пользователи из других групп.

Limit Groups for Mentions
Copy CopyRun External Link
1
2<script async src="https://cdn.fastcomments.com/js/embed-v2-async.min.js"></script>
3<div id="fastcomments-widget"></div>
4<script>
5window.fcConfigs = [{
6 "tenantId": "demo",
7 "mentionGroupIds": [
8 "yxZAhjzda",
9 "QT19nXbqB"
10 ]
11}];
12</script>
13