FastComments.com

Adicione comentários ao seu site Jekyll


Esta é a biblioteca oficial do Jekyll para o FastComments.

Incorpore widgets de comentários em tempo real, chat e avaliações no seu site Jekyll.

Repositório

Ver no GitHub


Apresentação ao vivo Internal Link

Para ver todas as tags sendo executadas localmente contra o tenant público demo, clone o repositório e execute:

cd example
bundle install
bundle exec jekyll serve

Cada widget tem sua própria página em example/ que você pode copiar diretamente para o seu próprio site Jekyll.

Instalação Internal Link


Gem

Adicione a gem ao grupo :jekyll_plugins no Gemfile do seu site:

group :jekyll_plugins do
  gem "fastcomments-jekyll"
end

Then:

bundle install

(Compatível com Jekyll 3.7+ e 4.x.)

Tags Internal Link

TagDescrição
fastcommentsComentários ao vivo com respostas, votação, moderação e atualizações em tempo real
fastcomments_comment_countContador de comentários para a página atual
fastcomments_comment_count_bulkContadores de comentários para várias páginas em uma página de lista/índice
fastcomments_live_chatWidget de chat de streaming em tempo real
fastcomments_collab_chatComentário colaborativo inline (anotações de texto)
fastcomments_image_chatComentários de anotação de imagem
fastcomments_recent_commentsComentários recentes em todo o site
fastcomments_recent_discussionsTópicos de discussão recentemente ativos
fastcomments_reviews_summaryResumo de avaliações com estrelas
fastcomments_top_pagesPáginas mais comentadas
fastcomments_user_activity_feedFeed de atividade por usuário

Exemplos

{% raw %}{# Contador de comentários. O widget gera seu próprio rótulo, ex.: "0 comentários" #}
{% fastcomments_comment_count %}

{# Chat ao vivo #}
{% fastcomments_live_chat %}

{# Chat colaborativo. Aponte para um elemento de conteúdo com um seletor CSS #}
<article id="post-body">
  <p>Highlight me to leave a comment.</p>
</article>
{% fastcomments_collab_chat target="#post-body" %}

{# Chat de imagem. Aponte para um elemento de imagem com um seletor CSS #}
<img id="hero" src="/hero.jpg" alt="Hero image">
{% fastcomments_image_chat target="#hero" %}

{# Resumo de avaliações #}
{% fastcomments_reviews_summary %}

{# Feed de atividade do usuário. Requer um id de usuário #}
{% fastcomments_user_activity_feed user_id="demo:demo-user" %}

{# Contadores de comentários em massa para um índice de blog #}
{% 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 %}

Configuração Internal Link

Config vem de três lugares. Fontes posteriores prevalecem:

  1. Padrões globais em _config.yml sob a chave fastcomments:.
  2. Contexto da página, derivado automaticamente para widgets com escopo de página (veja abaixo).
  3. Atributos da tag escritos na própria tag.

Então um url_id na tag sobrescreve o valor derivado da página, que por sua vez sobrescreve qualquer padrão global.

Sintaxe de atributos

Atributos são pares key=value em snake_case:

{% raw %}{% fastcomments url_id="my-stable-id" readonly=true count=20 %}{% endraw %}
  • Valores entre aspas ("..." ou '...') são strings literais.
  • Sem aspas true/false tornam-se booleanos, e números tornam-se números.
  • Sem aspas qualquer outra coisa é resolvida como uma variável Liquid a partir do contexto da página, por exemplo url_id=page.slug. (Liquid does not expand {% raw %}\{{ ... }}{% endraw %} inside a tag's attributes, so use the bare page.slug form rather than "{% raw %}\{{ page.slug }}{% endraw %}".)

Chaves em snake_case de atributos e de configuração são mapeadas automaticamente para as chaves em camelCase que o FastComments espera (tenant_idtenantId, url_idurlId, page_titlepageTitle, has_dark_backgroundhasDarkBackground, e assim por diante). Qualquer outra opção da widget configuration passa direto da mesma maneira.

Valores derivados da página

Para os widgets com escopo de página (fastcomments, fastcomments_comment_count, fastcomments_live_chat, fastcomments_collab_chat, fastcomments_image_chat) estes são preenchidos automaticamente a partir da página atual, a menos que você os defina você mesmo:

  • url_idpage.url (um identificador estável independente do domínio visitante)
  • urlsite.url + page.url (apenas quando url está definido em _config.yml)
  • page_titlepage.title

Widgets de site inteiro (comentários/discussões recentes, páginas principais, resumo de avaliações, feed de atividade do usuário, contagem em massa) não estão vinculados a uma página e não derivam estes valores.

Residência de dados na UE

Clientes da UE adicionam region: eu, seja globalmente:

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

ou por tag: {% raw %}{% fastcomments region="eu" %}{% endraw %}. Os widgets então carregam a partir da CDN da UE.



Status de manutenção Internal Link

Esses componentes são wrappers em torno dos nossos componentes core do VanillaJS. Podemos atualizar automaticamente esses componentes (corrigir bugs, adicionar recursos) sem publicar esta biblioteca, então, embora ela possa não ser publicada por um tempo, isso não significa que o FastComments não esteja em desenvolvimento ativo! Fique à vontade para conferir nosso blog para atualizações. Mudanças de API incompatíveis ou recursos nunca serão enviados para a biblioteca core subjacente sem um aumento de versão nesta biblioteca.


Precisa de ajuda?

Se você encontrar algum problema ou tiver dúvidas sobre a Biblioteca Jekyll, por favor:

Contribuindo

Contribuições são bem-vindas! Visite o repositório do GitHub para as diretrizes de contribuição.