FastComments.com

Customizações e Configuração

Personalizações e Configuração

Contexto

Aqui você encontrará documentação detalhada sobre cada um dos recursos e configurações que o widget de comentários suporta.

Esta documentação cobrirá os conceitos principais e se aprofundará em cada área de funcionalidade, com instruções práticas e armadilhas comuns.

Exemplos de código serão fornecidos, com as linhas relevantes destacadas. Capturas de tela das páginas de configuração serão fornecidas quando aplicável.

Os exemplos de código utilizarão nossa biblioteca vanilla JavaScript; no entanto, as opções de configuração usam exatamente os mesmos nomes para todas as versões do widget de comentários (React, Vue, etc.).

A maioria das configurações e recursos descritos neste guia não exige escrever código.

Renderizando os mesmos comentários em diferentes páginas Internal Link

Como o parâmetro urlId nos permite definir a qual página, ou id, os comentários estão vinculados, podemos simplesmente definir urlId para o mesmo valor nessas páginas.

The Same Comments on Multiple Pages
Copy CopyRun External Link
1
2<script async src="https://cdn.fastcomments.com/js/embed-v2-async.min.js"></script>
3<div id="fastcomments-widget"></div>
4<script>
5window.fcConfigs = [{
6 "tenantId": "demo",
7 "urlId": "https://example.com/source-page"
8}];
9</script>
10

Fontes personalizadas Internal Link

O FastComments foi projetado para ser personalizado, e a fonte que nossos widgets usam não é exceção.

Por padrão, o FastComments usa o system font stack para ter a melhor aparência possível em uma ampla variedade de dispositivos.

Para definir suas próprias fontes, consulte a documentação de CSS personalizado.

Lá você encontrará uma forma de definir CSS personalizado, o que permitirá especificar as fontes desejadas.

Como Definir a Fonte

Para sobrescrever a fonte, recomendamos definir seu CSS usando os seletores .fast-comments, textarea. Por exemplo:

Exemplo de Fonte Externa Personalizada
Copy CopyRun External Link
1
2@import url('https://fonts.googleapis.com/css2?family=Roboto:wght@300&display=swap');
3.fast-comments, textarea {
4 font-family: 'Roboto', sans-serif;
5}
6

Suportando fundos escuros (Modo escuro) Internal Link

Por padrão, o widget de comentários FastComments detectará automaticamente o modo escuro na maioria dos sites.

Quando o modo escuro é detectado, o FastComments mudará do texto preto em fundos brancos para texto branco em um fundo preto. Imagens também serão alteradas.

Ao carregar a página, o widget tentará determinar quão escuro é o plano de fundo da página por trás do widget de comentários. Isso significa que a página pode ter um fundo branco, mas se você colocar o widget de comentários dentro de um contêiner com um fundo preto, o modo escuro ainda deverá ser ativado automaticamente para tornar os comentários legíveis.

No entanto, o mecanismo de detecção, que depende de determinar a "luminância", pode não ativar o modo escuro quando você desejar. Para forçá-lo a ativar, defina a flag hasDarkBackground como true da seguinte forma:

Force Dark Background Mode
Copy CopyRun External Link
1
2<script async src="https://cdn.fastcomments.com/js/embed-v2-async.min.js"></script>
3<div id="fastcomments-widget"></div>
4<script>
5window.fcConfigs = [{
6 "tenantId": "demo",
7 "hasDarkBackground": true
8}];
9</script>
10

Linkando dos comentários para páginas Internal Link

Ao enviar e-mails de notificação, ou ao renderizar comentários em interfaces de usuário como a página de moderação, é útil poder vincular do comentário para a página em que ele se encontra.

Se o ID da URL nem sempre for um ID, então precisamos armazenar a URL em outro lugar. É para isso que serve a propriedade "url", definida da seguinte forma.

Defining a Custom URL
Copy CopyRun External Link
1
2<script async src="https://cdn.fastcomments.com/js/embed-v2-async.min.js"></script>
3<div id="fastcomments-widget"></div>
4<script>
5window.fcConfigs = [{
6 "tenantId": "demo",
7 "url": "https://example.com/article-5"
8}];
9</script>
10

Um caso de uso comum é vincular a thread de comentários a um identificador, como um artigo, e então fornecer um link de volta para uma página específica, por exemplo:

Defining Custom URL and URL IDs together
Copy CopyRun External Link
1
2<script async src="https://cdn.fastcomments.com/js/embed-v2-async.min.js"></script>
3<div id="fastcomments-widget"></div>
4<script>
5window.fcConfigs = [{
6 "tenantId": "demo",
7 "url": "https://example.com/article-5",
8 "urlId": "article-5"
9}];
10</script>
11

A URL não é limpa dos parâmetros de marketing comuns. Por padrão, qualquer que seja a URL da página atual, é essa URL que é armazenada com o comentário.

Determinar qual página renderizar Internal Link

Ao buscar e renderizar comentários, o widget de comentários precisa saber em qual página começar. Por padrão, ele começa com a primeira página, renderizando apenas essa página.

Se desejado, a página exata a ser renderizada pode ser passada para o widget de comentários como a configuração startingPage.

Specifying The Page to Render
Copy CopyRun External Link
1
2<script async src="https://cdn.fastcomments.com/js/embed-v2-async.min.js"></script>
3<div id="fastcomments-widget"></div>
4<script>
5window.fcConfigs = [{
6 "tenantId": "demo",
7 "startingPage": 1
8}];
9</script>
10

Observe que os números das páginas começam em zero, então o exemplo acima renderiza a segunda página.

Alternar threads de comentários sem recarregar a página Internal Link

Já cobrimos como urlId é o id da página ou artigo ao qual os comentários estão vinculados.

Além disso, para recapitular, se não for definido, o urlId terá como padrão a URL da página atual.

E quanto a SPAs, ou Single-Page-Applications, onde a página ou conteúdo ao qual os comentários estão vinculados muda dinamicamente sem um recarregamento fresco da página?

Angular, React, Vue, etc

Com nossas bibliotecas como Angular e React, basta atualizar a propriedade urlId passada para o widget para que o widget de comentários seja atualizado. Você pode ver isso em ação no app React, por exemplo, aqui.

VanillaJS

Se você estiver usando a biblioteca VanillaJS, é um pouco mais complicado, pois não há um framework como Angular ou React para lidar com o data binding ou a propagação de estado.

Quando você instancia o widget VanillaJS, ele retorna algumas funções que podem ser chamadas para atualizá-lo.

Aqui está um exemplo funcional onde mudamos o hash da página e atualizamos o widget de comentários:

Exemplo de Troca de Hash da Página
Copy CopyRun External Link
1
2<script src="https://cdn.fastcomments.com/js/embed-v2.min.js"></script>
3<button id="change-page"></button>
4<div id="fastcomments-widget"></div>
5<script>
6 (function fastCommentsMain() {
7 let config = {
8 tenantId: 'demo'
9 };
10 let instance = window.FastCommentsUI(document.getElementById('fastcomments-widget'), config);
11
12 let page = '#page-1';
13 function getNextPage() {
14 if (page === '#page-1') {
15 return '#page-2';
16 } else {
17 return '#page-1';
18 }
19 }
20
21 let button = document.getElementById('change-page');
22 function nextPage() {
23 page = getNextPage();
24 button.innerText = 'Go to ' + getNextPage();
25 window.location.hash = page;
26 let locationString = window.location.toString();
27
28 config.url = locationString; // Também atualizamos url, para que as notificações possam linkar de volta à página correta
29 config.urlId = locationString;
30
31 instance.update(config);
32 }
33 nextPage();
34 button.addEventListener('click', nextPage);
35 })();
36</script>
37

Desativar redirecionamento de imagem Internal Link

Por padrão, o FastComments permite que usuários façam upload de imagens. Quando um usuário clica nessa imagem, o FastComments, por padrão, abrirá uma nova aba para mostrar a imagem em tamanho completo. Definir essa flag como true desativa esse comportamento:

Disable Image Redirect
Copy CopyRun External Link
1
2<script async src="https://cdn.fastcomments.com/js/embed-v2-async.min.js"></script>
3<div id="fastcomments-widget"></div>
4<script>
5window.fcConfigs = [{
6 "tenantId": "demo",
7 "disableImageRedirect": true
8}];
9</script>
10

Se você não pretende capturar o clique na imagem por conta própria (veja onImageClicked), recomendamos que isso seja combinado com algum styling para remover a aparência de que a imagem pode ser clicada.

Destacar novos comentários Internal Link

O FastComments oferece várias maneiras de destacar novos comentários.

Antes de tudo, por padrão, os comentários que acionaram uma notificação no aplicativo (respostas, respostas na mesma thread, ou comentários em uma página na qual você está inscrito) serão automaticamente destacados com o avatar do usuário brilhando levemente. A cor pode ser personalizada via CSS usando a classe is-unread.

Comentários publicados nas últimas 24 horas têm a classe 24hr aplicada, que pode ser usada para estilização.

Por fim, quaisquer novos comentários ao vivo que apareçam na sessão do usuário serão destacados por vários segundos por meio de uma animação. Isso é feito através da classe CSS is-live e também pode ser personalizada.

Modelos de e‑mail Internal Link

E-mails enviados pelo FastComments aos seus clientes podem ser personalizados. O modelo, a lógica, e as traduções podem ser alterados. O texto pode ser personalizado por localidade, e o estilo pode até ser alterado por domínio. Saiba mais sobre modelos de e-mail personalizados aqui.

Novos comentários ao vivo na parte inferior Internal Link

Por padrão, novos comentários ao vivo aparecem no topo da lista de comentários à medida que são publicados em tempo real.

Quando essa opção está habilitada, novos comentários ao vivo serão adicionados ao final da lista. Isso afeta como os comentários aparecem quando são publicados ao vivo enquanto os usuários estão visualizando o tópico de comentários.

New Live Comments to Bottom
Copy CopyRun External Link
1
2<script async src="https://cdn.fastcomments.com/js/embed-v2-async.min.js"></script>
3<div id="fastcomments-widget"></div>
4<script>
5window.fcConfigs = [{
6 "tenantId": "demo",
7 "newCommentsToBottom": true
8}];
9</script>
10

Com essa configuração habilitada:

  • Novos comentários ao vivo postados por outros usuários aparecerão no final da lista de comentários
  • Os usuários verão novos comentários aparecerem abaixo dos comentários existentes em tempo real
  • Isso afeta apenas as atualizações de comentários ao vivo - não o carregamento inicial da página
  • Isso pode ajudar a manter o fluxo de leitura quando os usuários estão acompanhando uma discussão

Observe que esta configuração afeta apenas onde novos comentários ao vivo são colocados conforme chegam em tempo real. Ela não afeta a ordem de classificação inicial quando a página é carregada.

Habilitar rolagem infinita Internal Link

Por padrão, o widget do FastComments redimensiona-se verticalmente para ajustar todos os comentários visíveis. A paginação é feita através de um botão "Ver próximos" ao final da página atual, pois descobrimos que essa é a interação que mais agrada a maioria dos usuários.

No entanto, existem alguns casos em que a rolagem infinita é preferida. Por exemplo, usamos esse recurso em nosso produto Stream Chat.

Podemos ocultar os botões "Ver próximos" e alternar para rolagem infinita definindo a flag enableInfiniteScrolling como true:

Enabling Infinite Scrolling
Copy CopyRun External Link
1
2<script async src="https://cdn.fastcomments.com/js/embed-v2-async.min.js"></script>
3<div id="fastcomments-widget"></div>
4<script>
5window.fcConfigs = [{
6 "tenantId": "demo",
7 "enableInfiniteScrolling": true
8}];
9</script>
10

Isso também requer a adição de CSS personalizado. Adicione CSS personalizado para o seletor .comments para habilitar a rolagem, por exemplo:

Ativar Rolagem Infinita
Copy CopyRun External Link
1
2.comments {
3 max-height: 500px;
4 overflow-y: auto;
5}
6

Um exemplo completo e funcional seria:

Enabling Infinite Scrolling
Copy CopyRun External Link
1
2<script async src="https://cdn.fastcomments.com/js/embed-v2-async.min.js"></script>
3<div id="fastcomments-widget"></div>
4<script>
5window.fcConfigs = [{
6 "tenantId": "demo",
7 "enableInfiniteScrolling": true,
8 "customCSS": ".comments { max-height: 500px; overflow-y: auto; }"
9}];
10</script>
11

No exemplo acima usamos a propriedade customCSS, no entanto, é sugerido usar a UI de Configuração do Widget em vez disso por razões de desempenho. Veja a documentação de CSS personalizado.

Renderizar todos os comentários de uma vez - Desativar paginação Internal Link

Para desativar a paginação e renderizar todos os comentários de uma vez, defina startingPage como -1.

Render All Comments
Copy CopyRun External Link
1
2<script async src="https://cdn.fastcomments.com/js/embed-v2-async.min.js"></script>
3<div id="fastcomments-widget"></div>
4<script>
5window.fcConfigs = [{
6 "tenantId": "demo",
7 "startingPage": -1
8}];
9</script>
10

Impedir novos comentários de nível superior Internal Link

Definir noNewRootComments como true fará com que o widget oculte a área de resposta raiz, mas ainda permitir que os usuários respondam a comentários filhos. Você poderia, por exemplo, definir isso condicionalmente ao carregar a página para permitir que apenas alguns usuários deixem comentários de nível superior.

Prevent New Root Comments
Copy CopyRun External Link
1
2<script async src="https://cdn.fastcomments.com/js/embed-v2-async.min.js"></script>
3<div id="fastcomments-widget"></div>
4<script>
5window.fcConfigs = [{
6 "tenantId": "demo",
7 "noNewRootComments": true
8}];
9</script>
10

Profundidade máxima de respostas Internal Link

Por padrão, o FastComments permite aninhamento ilimitado de respostas, criando uma estrutura de thread onde os usuários podem responder a respostas indefinidamente.

A opção maxReplyDepth permite limitar o quão profundas as threads de respostas podem ser. Quando a profundidade máxima é atingida, os usuários não verão mais o botão de resposta nos comentários nesse nível.

Limiting Reply Depth to 2 Levels
Copy CopyRun External Link
1
2<script async src="https://cdn.fastcomments.com/js/embed-v2-async.min.js"></script>
3<div id="fastcomments-widget"></div>
4<script>
5window.fcConfigs = [{
6 "tenantId": "demo",
7 "maxReplyDepth": 2
8}];
9</script>
10

Com maxReplyDepth definido como 2:

  • Usuários podem comentar no nível superior (depth 0)
  • Usuários podem responder a comentários de nível superior (depth 1)
  • Usuários podem responder a essas respostas (depth 2)
  • Não são permitidas mais respostas além da profundidade 2

Definir como 1 permitiria apenas respostas a comentários de nível superior, criando uma estrutura de discussão mais rasa.

Definir maxReplyDepth como 0 desabilitaria todas as respostas, permitindo apenas comentários de nível superior. Se não especificado, as respostas podem ser aninhadas sem limite.

Avisar antes de sair com um comentário não enviado Internal Link

Por padrão, se um usuário digitar um comentário e então atualizar a página, fechar a aba ou navegar para outro lugar antes de enviá‑lo, o rascunho é perdido silenciosamente.

Definir warnOnUnsavedComment como true faz com que o navegador peça ao usuário que confirme antes de sair da página enquanto qualquer caixa de comentário, ou uma edição em andamento, ainda contiver texto. Uma vez que o comentário é enviado, o texto é limpo, portanto nenhum prompt é exibido.

Avisar sobre comentário não salvo
Copy CopyRun External Link
1
2<script async src="https://cdn.fastcomments.com/js/embed-v2-async.min.js"></script>
3<div id="fastcomments-widget"></div>
4<script>
5window.fcConfigs = [{
6 "tenantId": "demo",
7 "warnOnUnsavedComment": true
8}];
9</script>
10

O prompt usa a própria caixa de diálogo do navegador. Navegadores modernos exibem sua própria redação e ignoram texto personalizado, portanto a mensagem não pode ser customizada.

Esta opção carrega uma pequena extensão sob demanda, portanto não adiciona nada ao widget para sites que não a habilitam.

Visão geral de Single Sign On (SSO) Internal Link

SSO, ou single-sign-on (login único), é um conjunto de convenções usadas para permitir que você ou seus usuários usem o FastComments sem precisar criar outra conta.

Assumindo que você não permite comentários anônimos, uma conta é necessária para comentar com o FastComments. Tornamos esse processo de cadastro muito fácil - o usuário apenas deixa seu e-mail ao comentar. No entanto, entendemos que mesmo isso é uma fricção extra que alguns sites desejam evitar.

Podemos reduzir essa fricção tendo apenas um fluxo de login para todo o seu site.

Como obtenho isso?

Todos os tipos de conta atualmente têm acesso ao SSO. No entanto, o número máximo de usuários SSO varia de acordo com o seu pacote. Assim como outros recursos, os planos Pro e superiores oferecem suporte direto ao desenvolvimento.

Vamos comparar as opções e depois entrar nos detalhes de cada uma.

Migração de Usuários e Comentários

Ao migrar de uma plataforma com SSO como o Disqus, você já terá os usuários e seus comentários.

Os comentários são importados como parte da sua migração, seja pela API, pela nossa UI de Importação ou pelo suporte ao cliente. A UI de Importação é preferível se ela suportar a plataforma da qual você está migrando, pois incorpora tratamento de erros, extração e upload de avatares e mídias, e um sistema de monitoramento de tarefas em lote.

Os usuários em si são adicionados automaticamente ao visualizar as threads de comentários pela primeira vez. Alternativamente, eles podem ser pré-adicionados via API, mas esse trabalho não traz muitas vantagens.

Se os comentários forem importados e os usuários SSO não forem adicionados manualmente via API, os comentários serão automaticamente migrados para a conta do usuário na primeira vez que ela for criada quando ele visualizar qualquer thread de comentários. Eles então poderão gerenciar, editar e excluir os comentários que escreveram originalmente.

A migração automática é feita via e-mail ou nome de usuário. Algumas plataformas não fornecem e-mails na exportação, como o Disqus, então usamos o nome de usuário como fallback nesse caso.

  • Contanto que você passe um nome de usuário correspondente e um e-mail no payload do SSO, adicionaremos o e-mail aos objetos de comentários individuais para que notificações e menções funcionem.

Se for desejado importar seus comentários e usuários de uma só vez, trabalhe com o suporte para migrar os comentários para as respectivas contas dos usuários após os usuários serem importados via API.

Então, para resumir o caminho mais fácil para a migração:

  1. Importe os comentários.
    1. Avatares e outras mídias são migrados automaticamente se você usar a UI de Importação em Manage Data -> Imports.
  2. Configure o SSO Seguro ou Simples.
  3. Deixe a migração acontecer por usuário automaticamente quando ele fizer login pela primeira vez.
    1. Isso geralmente adiciona menos de um segundo ao tempo de carregamento da página se o usuário tiver menos de 50 mil comentários.

Usuários do WordPress

Se você está usando nosso plugin do WordPress, não há código para escrever! Basta ir à página Admin do plugin, clicar em SSO Settings e depois em Enable.

Isso levará você a um assistente de um único clique que criará sua chave de API, a enviará para a sua instalação do WordPress e ativará o SSO. Consolidamos isso em um único clique para você.

Observe que se você estiver instalando o plugin pela primeira vez, terá que concluir o processo de configuração antes de ver a página de administração com o botão SSO Settings.

SSO do WordPress - Moderadores

Observe que, atualmente, para que o selo "Moderator" apareça ao lado dos seus moderadores quando eles comentarem com o plugin do FastComments para WordPress, eles também devem ser adicionados como Moderadores no painel do FastComments e ter seus e-mails verificados.

Integrações Personalizadas

Para integrações personalizadas, existem duas opções.

Opção Um - SSO Seguro

Com o SSO Seguro, o FastComments sabe que o usuário que comenta, vota e lê comentários é um usuário real do seu site.

Contanto que você crie um payload válido, o usuário sempre terá uma experiência de comentários sem interrupções.

Com o SSO Seguro, o payload do SSO é criado no servidor usando autenticação HMAC e depois passado para o widget no cliente.

Com o SSO Seguro, a conta do usuário é completamente separada do restante da base de usuários do FastComments. Isso significa que se tivermos dois parceiros, Empresa A e Empresa B, cada um pode ter um usuário SSO com o nome de usuário "Bob".

Requisitos

  • Conhecimento básico de desenvolvimento backend.
  • Conhecimento básico sobre como lidar com chaves de API secretas.
  • Conhecimento básico de desenvolvimento de API ou renderização no servidor.

Prós

  • Seguro.
  • Experiência de comentários sem interrupções.

Contras

  • Requer desenvolvimento backend.

Atualizando Dados do Usuário

Com o SSO Seguro, cada vez que você passa o payload do usuário SSO, atualizamos o usuário dele com as informações mais recentes. Por exemplo, se o usuário tem o nome de usuário X e você passa Y no payload do SSO, o nome de usuário dele se tornará Y.

Se você quiser remover valores usando essa abordagem, defina-os como null (não undefined).

API do SSO Seguro

Também fornecemos uma API para interagir com os usuários SSO. Veja a documentação.

Observe que ao usar o SSO Seguro, os usuários são criados automaticamente nos bastidores no carregamento da página. Você não precisa importar seus usuários em massa.

Opção Dois - SSO Simples

A alternativa ao SSO Seguro é simplesmente passar as informações do usuário para o widget de comentários.

Fornecer um e-mail com o SSO Simples não é obrigatório, porém sem isso os comentários deles aparecerão como "Unverified".

Nota! Desde o início de 2022, nomes de usuário com o SSO Simples não precisam ser únicos em todo o FastComments.com.

Idealmente, o SSO Simples deve ser escolhido apenas ao desenvolver em uma plataforma que não fornece acesso ao backend.

Requisitos

  • Conhecimento básico de desenvolvimento client-side.
  • É preciso saber pelo menos o e-mail do usuário.

Prós

  • Simples.
  • Toda atividade ainda é verificada.
  • O usuário nunca insere seu nome de usuário ou e-mail.

Contras

  • Menos seguro que o SSO Seguro, pois o payload do lado do cliente poderia ser manipulado para se tornar qualquer usuário.

API do SSO Simples

Os usuários criados automaticamente pelo fluxo do SSO Simples são armazenados como objetos SSOUser. Eles podem ser acessados e gerenciados via API SSOUser. Veja a documentação.

Integrações personalizadas - Migração do Disqus SSO Internal Link

A maior diferença entre Disqus e o FastComments Secure SSO é que o Disqus usa SHA1 para criptografia enquanto nós usamos SHA256. Isso significa que migrar do Disqus é fácil - altere o algoritmo de hashing usado de SHA1 para SHA256 e atualize os nomes das propriedades passadas para a UI.

Integrações personalizadas - Migração do Commento SSO Internal Link

Commento usa uma abordagem de SSO drasticamente diferente - eles exigem que você tenha um endpoint que eles invoquem para autenticar o usuário. FastComments é o contrário - simplesmente codifique e aplique hash nas informações do usuário usando sua chave secreta e as envie.

Callbacks Internal Link

Todas as bibliotecas para o widget de comentários (atualmente Angular, React, Vue) suportam callbacks.

Os callbacks são especificados no objeto de configuração, com a mesma assinatura para cada biblioteca.

Os callbacks suportados são:

  • onInit
  • onAuthenticationChange
  • onRender
  • commentCountUpdated
  • onReplySuccess
  • onVoteSuccess
  • onImageClicked
  • onOpenProfile
  • onCommentSubmitStart
  • onCommentsRendered

As assinaturas exatas podem ser encontradas nas definições TypeScript.

Aqui está um exemplo com todos os callbacks usados:

Exemplos de Callbacks
Copy CopyRun External Link
1
2<script async src="https://cdn.fastcomments.com/js/embed-v2-async.min.js"></script>
3<div id="fastcomments-widget"></div>
4<script>
5 window.fcConfigs = [{
6 target: '#fastcomments-widget',
7 tenantId: 'demo',
8 onInit: function () {
9 console.log('Library started to fetch comments!');
10 },
11 onAuthenticationChange: function (eventName, userObj) {
12 console.log('User authenticated!', eventName, userObj);
13 },
14 onRender: function () {
15 console.log('Render event happened!');
16 },
17 commentCountUpdated: function (newCount) {
18 console.log('New comment count:', newCount);
19 },
20 onReplySuccess: function (comment) {
21 console.log('New comment saved!', comment);
22 },
23 onVoteSuccess: function (comment, voteId, direction, status) {
24 console.log('New vote saved!', comment, voteId, direction, status);
25 },
26 onImageClicked: function (src) {
27 console.log('Image clicked!', src);
28 },
29 onOpenProfile: function (userId) {
30 console.log('User tried to open profile', userId);
31 // return true; // retornar true para impedir o comportamento padrão (abrir o perfil de usuário em fastcomments.com).
32 },
33 onCommentSubmitStart: function(comment, continueSubmitFn, cancelFn) {
34 console.log('Trying to submit comment', comment);
35 setTimeout(function() { // emulando comportamento assíncrono (chamando API, etc).
36 if(confirm('Should submit?')) {
37 continueSubmitFn();
38 } else {
39 cancelFn('Some optional error message');
40 }
41 }, 1000);
42 },
43 onCommentsRendered: function(comments) {
44 // comments está ordenado pela ordenação padrão na página, que pode ser Mais Relevantes (ex: mais votados, etc.), ou Mais Recentes primeiro
45 const topCommentInList = comments[0];
46 console.log('First Comment Rendered:', topCommentInList.avatarSrc, topCommentInList.commenterName, topCommentInList.commentHTML);
47 }
48 }];
49</script>
50

Títulos de página Internal Link

O título da página atual é associado ao urlId especificado e salvo para uso nas ferramentas de moderação.

Por padrão, ele é obtido de document.title.

Se desejar, você pode especificar seu próprio título de página da seguinte forma:

Specifying The Page Title
Copy CopyRun External Link
1
2<script async src="https://cdn.fastcomments.com/js/embed-v2-async.min.js"></script>
3<div id="fastcomments-widget"></div>
4<script>
5window.fcConfigs = [{
6 "tenantId": "demo",
7 "pageTitle": "Article 42"
8}];
9</script>
10

A contagem de comentários e contagem de todas as respostas aninhadas Internal Link

A contagem de comentários exibida no topo do widget de comentários pode mostrar ou todos os comentários "top-level", ou seja, aquelas respostas que são respostas diretamente para a página ou artigo em si, ou pode ser uma contagem de todos os comentários aninhados.

Por padrão, isso é true - é uma contagem do último caso - todos os comentários. Em versões antigas do widget de comentários o valor padrão é false.

Podemos alterar o comportamento, de modo que seja uma contagem de todos os comentários aninhados definindo a flag countAll para true.

Counting All Comments
Copy CopyRun External Link
1
2<script async src="https://cdn.fastcomments.com/js/embed-v2-async.min.js"></script>
3<div id="fastcomments-widget"></div>
4<script>
5window.fcConfigs = [{
6 "tenantId": "demo",
7 "countAll": true
8}];
9</script>
10

Se quiséssemos que a contagem refletisse apenas os comentários de nível superior, definimos a flag para false.

Counting Top Level Comments
Copy CopyRun External Link
1
2<script async src="https://cdn.fastcomments.com/js/embed-v2-async.min.js"></script>
3<div id="fastcomments-widget"></div>
4<script>
5window.fcConfigs = [{
6 "tenantId": "demo",
7 "countAll": false
8}];
9</script>
10

Atualmente, isso não pode ser personalizado sem alterações no código.

IDs de grupos de menção Internal Link

Uma lista de ids para usar no autocompletar de @mentions. Útil quando você quer evitar marcar usuários que não possuem grupos em comum.

Quando especificado, apenas usuários de outros grupos serão exibidos no autocompletar após digitar o caractere @.

Limit Groups for Mentions
Copy CopyRun External Link
1
2<script async src="https://cdn.fastcomments.com/js/embed-v2-async.min.js"></script>
3<div id="fastcomments-widget"></div>
4<script>
5window.fcConfigs = [{
6 "tenantId": "demo",
7 "mentionGroupIds": [
8 "yxZAhjzda",
9 "QT19nXbqB"
10 ]
11}];
12</script>
13