
Idioma 🇪🇸 Español
Antecedentes
API
Desarrollo de Extensiones
Contexto
FastComments proporciona la capacidad de ampliar nuestra funcionalidad principal mediante scripts que llamamos Extensions.
Un Extension puede añadir marcado adicional al widget de comentarios, registrar manejadores de eventos y ejecutar código arbitrario.
Aquí encontrará ejemplos de extensiones que tenemos en producción, así como documentación sobre cómo escribir extensiones.
El ciclo de vida de la extensión 
El script de cada extensión se obtiene e invoca antes de que el widget de comentarios comience a obtener el primer conjunto de comentarios y a renderizar la interfaz de usuario.
En la carga inicial, los siguientes datos se anexarán al objeto de la extensión:
config- A reference to theconfigobject.translations- A reference to thetranslationsobject.commentsById- A reference to all comments by id.root- A reference to the root DOM node.
Las extensiones deben sobrescribir las funciones deseadas, que el widget de comentarios invocará en los momentos apropiados.
Definir una extensión 
La extensión más pequeña posible sería:
Run 
Para este ejemplo, guárdalo como my-extension.js, y ponlo disponible en https://example.com/my-extension.min.js.
Esta extensión no hace nada; excepto que al cargarse recupera el objeto de extensión creado por la biblioteca principal de comentarios.
Este objeto Extension es una instancia única y no se comparte con ninguna otra extensión.
A continuación, para cargar nuestra extensión, tenemos que informar al widget de comentarios sobre ella. Por ejemplo:
Run 
Para ejemplos funcionales, vea la siguiente sección.
Ejemplos de extensiones 
En FastComments, escribimos nuestras propias extensiones, usando la misma API. Puedes ver el código sin minimizar para estas extensiones en los siguientes endpoints:
Modo Oscuro
La extensión Modo Oscuro se carga de forma condicional cuando se detecta una página "oscura". Esta extensión simplemente añade algo de CSS al widget de comentarios. De esta manera no tenemos que cargar el CSS del modo oscuro cuando no es necesario.
https://fastcomments.com/js/comment-ui/extensions/comment-ui.dark.extension.js
Moderación
Cuando el usuario actual es moderador, usamos la extensión de moderación.
Este es un buen ejemplo para añadir escuchadores de eventos basados en clic, realizar solicitudes a la API, y añadir elementos al menú de comentarios y a las áreas de comentarios.
https://fastcomments.com/js/comment-ui/extensions/comment-ui.moderation.extension.js
Chat en Vivo
La extensión Chat en Vivo (en combinación con otra configuración y estilos) convierte el widget de comentarios en un componente de chat en vivo.
https://fastcomments.com/js/comment-ui/extensions/live-chat.extension.js
El objeto de la extensión 
El objeto de extensión consiste en la siguiente definición:
Run 
La API de la extensión 
Interactuar con la Extension es sencillo, ya que simplemente definimos referencias a las funciones que queremos invocar.
Para basarnos en el ejemplo anterior, digamos que queremos añadir HTML al principio de cada comentario:
Run 
Cada vez que devuelvas HTML así, se fusionará en la interfaz mediante un algoritmo de dom-diffing.
Volver a renderizar un comentario manualmente
Podemos esperar a la carga inicial de la página y volver a renderizar manualmente un comentario invocando reRenderComment:
Run 