FastComments.com

Добавете коментари към вашия Jekyll сайт

Това е официалната Jekyll библиотека за FastComments.

Вградете уиджети за коментари в реално време, чат и отзиви във вашия Jekyll сайт.

Репозитория

Вижте в GitHub

AI агенти за кодиране Internal Link

skills.sh

Дайте на вашия кодиращ агент контекста на FastComments, който му е необходим – уиджети, конфигурация, Secure SSO, REST API и SDK‑те:

npx skills add fastcomments/skills

Работи с Claude Code, Codex, Cursor, Copilot, Gemini и всеки друг агент, който поддържа skills CLI поддръжка.

Живо представяне Internal Link

За да видите всеки таг, работещ локално срещу публичния demo наемател, клонирайте хранилището и изпълнете:

cd example
bundle install
bundle exec jekyll serve

Всяки widget има своя собствена страница под example/, която можете да копирате директно във вашия собствен Jekyll сайт.

Инсталиране Internal Link

Гем

Добавете gem-а към групата :jekyll_plugins във Gemfile на вашия сайт:

group :jekyll_plugins do
  gem "fastcomments-jekyll"
end

След това:

bundle install

(Съвместимо с Jekyll 3.7+ и 4.x.)

Тагове Internal Link

ТагОписание
fastcommentsЖиви коментари с отговори, гласуване, модериране и актуализации в реално време
fastcomments_comment_countБрой коментари за текущата страница
fastcomments_comment_count_bulkБрой коментари за множество страници на една страница със списък/индекс
fastcomments_live_chatУиджет за потоков чат в реално време
fastcomments_collab_chatСъвместно вградено коментиране (текстови анотации)
fastcomments_image_chatКоментари за анотиране на изображения
fastcomments_recent_commentsСкорошни коментари в целия сайт
fastcomments_recent_discussionsНаскоро активни дискусии
fastcomments_reviews_summaryОбобщение на ревюта с оценка в звезди
fastcomments_top_pagesНай-обсъжданите страници
fastcomments_user_activity_feedЛента с активност за всеки потребител

Примери

{% raw %}{# Брой коментари. Уиджетът изобразява собствен етикет, напр. "0 коментара" #}
{% fastcomments_comment_count %}

{# Чат на живо #}
{% fastcomments_live_chat %}

{# Съвместен чат. Насочете го към елемент на съдържанието чрез CSS селектор #}
<article id="post-body">
  <p>Highlight me to leave a comment.</p>
</article>
{% fastcomments_collab_chat target="#post-body" %}

{# Чат за изображения. Насочете го към елемент изображение чрез CSS селектор #}
<img id="hero" src="/hero.jpg" alt="Hero image">
{% fastcomments_image_chat target="#hero" %}

{# Обобщение на ревюта #}
{% fastcomments_reviews_summary %}

{# Лента с активността на потребителя. Изисква идентификатор на потребителя #}
{% fastcomments_user_activity_feed user_id="demo:demo-user" %}

{# Масово преброяване на коментари за индекс на блог #}
{% for post in site.posts %}
  <a href="\{{ post.url }}">\{{ post.title }}</a>
  <span class="fast-comments-count" data-fast-comments-url-id="\{{ post.url }}"></span>
{% endfor %}
{% fastcomments_comment_count_bulk %}{% endraw %}

Конфигурация Internal Link

Конфигурацията идва от три места. По-късните източници имат предимство:

  1. Глобални настройки по подразбиране в _config.yml под ключа fastcomments:.
  2. Контекст на страницата, извличан автоматично за уиджети, обвързани със страница (виж по-долу).
  3. Атрибути на тага, записани директно върху тага.

Така url_id върху тага презаписва стойността, извлечена от страницата, която на свой ред презаписва всяка глобална настройка по подразбиране.

Синтаксис на атрибутите

Атрибутите са двойки key=value в snake_case:

{% raw %}{% fastcomments url_id="my-stable-id" readonly=true count=20 %}{% endraw %}
  • В кавички стойностите ("..." или '...') са литерални низове.
  • Без кавички true/false се превръщат в булеви стойности, а числата — в числа.
  • Без кавички всичко останало се интерпретира като Liquid променлива от контекста на страницата, напр. url_id=page.slug. (Liquid не разширява {% raw %}\{{ ... }}{% endraw %} вътре в атрибутите на таг, затова използвайте голата форма page.slug, а не "{% raw %}\{{ page.slug }}{% endraw %}".)

Ключовете на атрибутите и конфигурацията в snake_case се преобразуват автоматично в camelCase ключовете, които FastComments очаква (tenant_id → tenantId, url_id → urlId, page_title → pageTitle, has_dark_background → hasDarkBackground и т.н.). Всяка друга опция от конфигурацията на уиджета се предава директно по същия начин.

Стойности, извлечени от страницата

За уиджетите, обвързани със страница (fastcomments, fastcomments_comment_count, fastcomments_live_chat, fastcomments_collab_chat, fastcomments_image_chat) те се попълват автоматично от текущата страница, освен ако не ги зададете сами:

  • url_id ← page.url (стабилен идентификатор, независим от посещавания домейн)
  • url ← site.url + page.url (само когато url е зададен в _config.yml)
  • page_title ← page.title

Уиджетите за целия сайт (скорошни коментари/дискусии, топ страници, обобщение на ревюта, емисия на потребителска активност, bulk count) не са обвързани със страница и не извличат тези стойности.

Съхранение на данни в ЕС

Клиентите от ЕС добавят region: eu, или глобално:

fastcomments:
  tenant_id: your-tenant-id
  region: eu

или на ниво таг: {% raw %}{% fastcomments region="eu" %}{% endraw %}. Уиджетите тогава се зареждат от CDN-а в ЕС.

Статус на поддръжка Internal Link

Тези компоненти са обвивки около нашите основни VanillaJS компоненти. Можем автоматично да актуализираме тези компоненти (да поправяме бъгове, да добавяме функции) без да публикуваме тази библиотека, така че въпреки че може да не бъде публикувана за известно време, това не означава, че FastComments не е в активно развитие! Не се колебайте да посетите нашия блог за актуализации. Промени в API-то, които нарушават съвместимостта, или функции, които въвеждат несъвместимости, никога няма да бъдат прехвърляни в подлежащата основна библиотека без увеличение на версията на тази библиотека.

Нужна помощ?

Ако срещнете проблеми или имате въпроси относно библиотеката Jekyll, моля:

Принос

Приноси са добре дошли! Моля, посетете хранилището в GitHub за указания за приноси.