FastComments.com

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

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

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

Репозитория

Вижте в GitHub


Живо представяне 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. Контекст на страницата, извлечен автоматично за джунджурии (widgets), обвързани със страница (виж по-долу).
  3. Атрибути на тагa, записани директно върху тага.

Така че 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_idtenantId, url_idurlId, page_titlepageTitle, has_dark_backgroundhasDarkBackground и т.н.). Всеки друг параметър от widget configuration преминава по същия начин.

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

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

  • url_idpage.url (стабилен идентификатор, независим от домейна на посетителя)
  • urlsite.url + page.url (само когато url е зададен в _config.yml)
  • page_titlepage.title

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

EU data residency

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

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

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



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

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


Нужна помощ?

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

Принос

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