
Език 🇧🇬 Български
Документация
Започване
Конфигурация
Добавете коментари към вашия Jekyll сайт
Това е официалната Jekyll библиотека за FastComments.
Вградете уиджети за коментари в реално време, чат и отзиви във вашия Jekyll сайт.
Репозитория
AI агенти за кодиране 
Дайте на вашия кодиращ агент контекста на FastComments, който му е необходим – уиджети, конфигурация, Secure SSO, REST API и SDK‑те:
npx skills add fastcomments/skills
Работи с Claude Code, Codex, Cursor, Copilot, Gemini и всеки друг агент, който поддържа skills CLI поддръжка.
Демонстрация на живо 
Опитайте всяко уиджет на живо на https://fastcomments.com/commenting-system-for-jekyll/.
Живо представяне 
За да видите всеки таг, работещ локално срещу публичния demo наемател, клонирайте хранилището и изпълнете:
cd example
bundle install
bundle exec jekyll serve
Всяки widget има своя собствена страница под example/, която можете да копирате директно във вашия собствен Jekyll сайт.
Бърз старт 
Задайте tenant id-а си веднъж в _config.yml:
fastcomments:
tenant_id: demo
След това добавете таг навсякъде, където искате уиджета, в шаблон, публикация или страница:
{% raw %}{% fastcomments %}{% endraw %}
Това е всичко. Заменете demo с вашия FastComments tenant id (намира се в Настройки > API/SSO).
Тагове 
| Таг | Описание |
|---|---|
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 %}
Конфигурация 
Конфигурацията идва от три места. По-късните източници имат предимство:
- Глобални настройки по подразбиране в
_config.ymlпод ключаfastcomments:. - Контекст на страницата, извличан автоматично за уиджети, обвързани със страница (виж по-долу).
- Атрибути на тага, записани директно върху тага.
Така 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-а в ЕС.
Статус на поддръжка 
Тези компоненти са обвивки около нашите основни VanillaJS компоненти. Можем автоматично да актуализираме тези компоненти (да поправяме бъгове, да добавяме функции) без да публикуваме тази библиотека, така че въпреки че може да не бъде публикувана за известно време, това не означава, че FastComments не е в активно развитие! Не се колебайте да посетите нашия блог за актуализации. Промени в API-то, които нарушават съвместимостта, или функции, които въвеждат несъвместимости, никога няма да бъдат прехвърляни в подлежащата основна библиотека без увеличение на версията на тази библиотека.
Нужна помощ?
Ако срещнете проблеми или имате въпроси относно библиотеката Jekyll, моля:
Принос
Приноси са добре дошли! Моля, посетете хранилището в GitHub за указания за приноси.