FastComments.com

Додајте коментаре на ваш Hugo сајт

Ово је званична Hugo библиотека за FastComments.

Уградите видгете за коментаре у реалном времену, ћаскање и рецензије на ваш Hugo сајт.

Репозиторијум

Погледајте на GitHub


Презентација уживо Internal Link

Да бисте видели све shortcode-ове и theme partial-ове који раде локално против јавног demo tenant-а, клонирајте репозиторијум и покрените уграђени exampleSite:

git clone https://github.com/FastComments/fastcomments-hugo.git
cd fastcomments-hugo/exampleSite
hugo server

Сваки widget има своју страницу у exampleSite/content/ коју можете директно копирати у свој сајт.

Инсталација Internal Link

Изаберите један од два стандардна начина да додате компоненту теме за Hugo.

Опција A: Hugo модул (препоручено)

Из корена вашег сајта:

hugo mod init github.com/you/your-site   # only if your site is not already a module
hugo mod get github.com/FastComments/fastcomments-hugo

Затим додајте import у ваш hugo.toml:

[module]
  [[module.imports]]
    path = "github.com/FastComments/fastcomments-hugo"

Опција B: Компонента теме (Git подмодул)

git submodule add https://github.com/FastComments/fastcomments-hugo.git themes/fastcomments-hugo

Затим референцирајте то из вашег hugo.toml. Наведите га поред ваше теме; каснији уноси имају предност, па ставите вашу тему прву:

theme = ["your-theme", "fastcomments-hugo"]

Брзи почетак Internal Link


Подесите ваш tenant ID једном у hugo.toml:

[params.fastcomments]
  tenantId = "demo"   # замените "demo" вашим FastComments tenant ID-ом

Затим или повежите видгет коментара у вашу тему (види Интеграција теме), или убаците shortcode у било коју страницу у Markdown:

\{{< fastcomments >}}

Кратки кодови Internal Link

ShortcodeDescription
fastcommentsКоментари у низу са одговорима, гласањем и @поменама
fastcomments-comment-countБрој коментара за једну страницу
fastcomments-comment-count-bulkБројеви коментара за више страница у једном захтеву (погледајте Групни бројеви коментара)
fastcomments-live-chatВидгет за разговор уживо
fastcomments-collab-chatКолаборативно инлајн коментарисање (захтева target)
fastcomments-image-chatКоментари са анотацијом слика (захтева target)
fastcomments-recent-commentsНајновији коментари на целом сајту
fastcomments-recent-discussionsНедавно активне дискусије
fastcomments-reviews-summaryСажетак рецензија са звездицама
fastcomments-top-pagesСтранице са највише дискусија
fastcomments-user-activity-feedФид активности по кориснику (захтева userId)

Примери

Број коментара у тексту:

This page has \{{< fastcomments-comment-count >}} comments.

Разговор уживо:

\{{< 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 userId="demo:demo-user" >}}

Интеграција теме Internal Link


Да бисте додали коментаре на сваки пост на исти начин као што то ради уграђена подршка за Disqus у Hugo-у, додајте једну линију у single шаблон ваше теме (layouts/_default/single.html):

\{{ partial "fastcomments/comments.html" . }}

Део шаблона (partial) ће се приказати само када је tenantId конфигурисан. Искључите коментаре на појединачној страници помоћу front matter-а:

+++
title = "A page with no comments"
comments = false
+++

Бројање коментара за више објава Internal Link

Да бисте приказали број коментара поред више страница одједном (индекс блога, листа одељка), користите видгет за масовно бројање. Он преузима све бројеве на страници у једном захтеву. Састоји се из два дела: маркера поред сваке ставке и једног иницијализационог позива након листе.

У шаблону листе (layouts/_default/list.html):

<ul>
  \{{ range .Pages }}
    <li>
      <a href="\{{ .RelPermalink }}">\{{ .Title }}</a>
      \{{ partial "fastcomments/count-marker.html" . }}
    </li>
  \{{ end }}
</ul>
\{{ partial "fastcomments/bulk-count.html" (dict "page" .) }}

count-marker.html рендерује <span class="fast-comments-count" data-fast-comments-url-id="..."></span>, користећи исти идентификатор који видгет за коментаре користи за ту страницу (urlId странице, или permalink странице када urlId није подешен), тако да се бројеви поклапају са стварним нитима. bulk-count.html шаље један захтев који их попуњава.

Ако маркере пишете сами (на пример у Markdown-у странице), користите шорткод да бисте уместо тога емитовали иницијализациони позив:

<span class="fast-comments-count" data-fast-comments-url-id="article-1"></span>
<span class="fast-comments-count" data-fast-comments-url-id="article-2"></span>

\{{< fastcomments-comment-count-bulk >}}

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

Све FastComments виџет опције се постављају под [params.fastcomments] у hugo.toml, и могу се преписати по страници у front matter‑у под [fastcomments]. Приоритет, од најниже до највише: параметри сајта, front matter странице, параметри кратког кода.

# hugo.toml
[params.fastcomments]
  tenantId = "your-tenant-id"
  hasDarkBackground = true
  voteStyle = 1
  enableSearch = true
# a page's front matter
+++
title = "Article"
[fastcomments]
  urlId = "article-42"
  collapseReplies = true
+++

Када ни url ни urlId нису наведени, url подразумевано добија permalink странице тако да теме коментара остану везане за стабилну URL адресу.

Резиденција података у ЕУ

Клијенти из ЕУ постављају region = "eu" да би усмерили виџет ка cdn-eu.fastcomments.com:

[params.fastcomments]
  tenantId = "your-tenant-id"
  region = "eu"

Напомена о великим/малим словима у кључевима

Hugo претвара сваки кључ у hugo.toml и front matter у мала слова, али FastComments виџети захтевају camelCase кључеве (tenantId, hasDarkBackground). Ова компонента аутоматски враћа исправно велико/мало слово за сваку познату опцију највишег нивоа, па пишите опције у њиховом уобичајеном camelCase облику. Кључеви угнеждени унутар објектних вредности (на пример кључеви мапе translations или поља pageReactConfig) се не враћају. Конфигуришите их преко FastComments контролне табле за прилагођавање уместо тога.

Референца за конфигурацију виџета Internal Link

За комплетну листу опција виџета, погледајте FastComments документацију за прилагођавање. Два виџета захтевају обавезну опцију која нема подразумевану вредност:

  • fastcomments-collab-chat и fastcomments-image-chat захтевају target, CSS селектор за елемент на који ће се прикачити.
  • fastcomments-user-activity-feed захтева userId.

Статус одржавања Internal Link


Ове компоненте су танки омотачи око наших основних VanillaJS видџета. Можемо ажурирати те видџете (поправљати грешке, додавати функције) без објављивања овог репозиторијума, па тиха историја издања не значи да FastComments није активан. Погледајте наш блог за ажурирања. Промене које ремете компатибилност у основним видџетима испоручују се уз повећање верзије овде.

Потребна помоћ?

Ако наиђете на било какве проблеме или имате питања у вези са Hugo Library, молимо вас:

Допринес

Допринеси су добродошли! Посетите репозиторијум на GitHub-у за упутства о доприносу.