
Idioma 🇧🇷 Português (Brasil)
Contexto
API
Desenvolvendo Extensões
Contexto
FastComments fornece a capacidade de estender nossa funcionalidade principal por meio de scripts que chamamos de Extensions.
Um Extension pode adicionar marcação adicional ao widget de comentários, ouvintes de eventos e executar código arbitrário.
Aqui você encontrará exemplos de extensões que estão em produção, bem como documentação sobre como escrever extensões.
O Ciclo de Vida da Extensão 
O script para cada extensão é buscado e invocado antes que o widget de comentários comece a buscar o primeiro conjunto de comentários e renderizar a UI.
No carregamento inicial, os seguintes dados serão anexados ao objeto da extensão:
config- Uma referência ao objetoconfig.translations- Uma referência ao objetotranslations.commentsById- Uma referência a todos os comentários por id.root- Uma referência ao nó DOM raiz.
As extensões devem sobrescrever as funções desejadas, que o widget de comentários chamará nos momentos apropriados.
Definindo uma Extensão 
A menor extensão possível seria:
Run 
Para este exemplo, salve isto como my-extension.js, e torne-o disponível em https://example.com/my-extension.min.js.
Esta extensão não faz nada; ao ser carregada, ela busca o objeto de extensão criado pela biblioteca principal de comentários.
Este objeto Extension é um singleton e não é compartilhado com outras extensões.
A seguir, para carregar nossa extensão, precisamos informar o widget de comentários sobre ela. Por exemplo:
Run 
Para exemplos funcionais, veja a próxima seção.
Extensões de Exemplo 
Na FastComments, escrevemos nossas próprias extensões, usando a mesma API. Você pode visualizar o código não-minificado para essas extensões nos seguintes endpoints:
Dark Mode
A extensão Dark Mode é carregada condicionalmente quando uma página "dark" é detectada. Esta extensão simplesmente adiciona algum CSS ao widget de comentários. Dessa forma não precisamos carregar o CSS do modo escuro quando não é necessário.
https://fastcomments.com/js/comment-ui/extensions/comment-ui.dark.extension.js
Moderation
Quando o usuário atual é um moderador, usamos a extensão de moderação.
Este é um bom exemplo para adicionar manipuladores de eventos baseados em clique, fazer requisições à API, adicionar ao menu do comentário e às áreas de comentário.
https://fastcomments.com/js/comment-ui/extensions/comment-ui.moderation.extension.js
Live Chat
A extensão Live Chat (em combinação com outras configurações e estilos) transforma o widget de comentários em um componente de chat ao vivo.
https://fastcomments.com/js/comment-ui/extensions/live-chat.extension.js
O Objeto da Extensão 
O objeto de extensão consiste na seguinte definição:
Run 
A API da Extensão 
Interacting with the Extension is simple, as we simply define references to functions we want invoked.
To build off the example earlier, let's say we want to add HTML to the top of each comment:
Run 
Whenever you return HTML like this, it will get merged into the UI via a dom-diffing algorithm.
Manually triggering the re-render of a comment
We can wait for the initial page load and manually re-render a comment by invoking reRenderComment:
Run 