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

Sve FastComments widget opcije se podešavaju pod [params.fastcomments] u hugo.toml, i mogu se prepisati po strani u front matter pod [fastcomments]. Prednost, od najniže do najviše: parametri sajta, front matter stranice, parametri shortcode-a.

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

Kada nisu navedeni ni url ni urlId, url podrazumevano koristi permalink stranice kako bi niti komentara ostale vezane za stabilan URL.

EU rezidencija podataka

EU kupci postavljaju region = "eu" da usmere widget na cdn-eu.fastcomments.com:

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

Napomena o pisanju ključeva (casing)

Hugo pretvara svaki ključ u hugo.toml i front matter u mala slova, ali FastComments widgeti zahtevaju camelCase ključeve (tenantId, hasDarkBackground). Ovaj komponent automatski vraća ispravan zapis velikih/malih slova za svaku poznatu top-level opciju, tako da pišite opcije u njihovom uobičajenom camelCase obliku. Ključevi ugnježdeni unutar vrednosti objekta (na primer ključevi mape translations, ili polja pageReactConfig) se ne vraćaju. Podesite te kroz kontrolni panel FastComments za prilagođavanje umesto toga.

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

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

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

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


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

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

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

Допринес

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