FastComments.com

Añadir comentarios a tu sitio Jekyll

Esta es la biblioteca oficial de Jekyll para FastComments.

Incrusta widgets de comentarios en vivo, chat y reseñas en tu sitio Jekyll.

Repositorio

Ver en GitHub


Presentación en vivo Internal Link

Para ver cada etiqueta ejecutándose localmente contra el tenant público demo, clona el repositorio y ejecuta:

cd example
bundle install
bundle exec jekyll serve

Cada widget tiene su propia página bajo example/ que puedes copiar directamente en tu propio sitio Jekyll.

Instalación Internal Link


Gema

Añada la gema al grupo :jekyll_plugins en el Gemfile de su sitio:

group :jekyll_plugins do
  gem "fastcomments-jekyll"
end

Luego:

bundle install

(Compatible con Jekyll 3.7+ y 4.x.)

Etiquetas Internal Link

EtiquetaDescripción
fastcommentsComentarios en vivo con respuestas, votación, moderación y actualizaciones en tiempo real
fastcomments_comment_countRecuento de comentarios para la página actual
fastcomments_comment_count_bulkRecuentos de comentarios para muchas páginas en una página de lista/índice
fastcomments_live_chatWidget de chat en tiempo real (streaming)
fastcomments_collab_chatComentarios colaborativos inline (anotaciones de texto)
fastcomments_image_chatComentarios de anotación en imágenes
fastcomments_recent_commentsComentarios recientes en todo el sitio
fastcomments_recent_discussionsHilos de discusión recientemente activos
fastcomments_reviews_summaryResumen de reseñas con calificación por estrellas
fastcomments_top_pagesPáginas más comentadas
fastcomments_user_activity_feedFeed de actividad por usuario

Ejemplos

{% raw %}{# Recuento de comentarios. El widget muestra su propia etiqueta, p. ej. "0 comentarios" #}
{% fastcomments_comment_count %}

{# Chat en vivo #}
{% fastcomments_live_chat %}

{# Chat colaborativo. Apúntalo a un elemento de contenido con un selector CSS #}
<article id="post-body">
  <p>Highlight me to leave a comment.</p>
</article>
{% fastcomments_collab_chat target="#post-body" %}

{# Chat de imagen. Apúntalo a un elemento de imagen con un selector CSS #}
<img id="hero" src="/hero.jpg" alt="Hero image">
{% fastcomments_image_chat target="#hero" %}

{# Resumen de reseñas #}
{% fastcomments_reviews_summary %}

{# Feed de actividad de usuario. Requiere un ID de usuario #}
{% fastcomments_user_activity_feed user_id="demo:demo-user" %}

{# Recuentos masivos de comentarios para un í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 %}

Configuración Internal Link

La configuración proviene de tres lugares. Las fuentes posteriores prevalecen:

  1. Valores predeterminados globales en _config.yml bajo la clave fastcomments:.
  2. Contexto de la página, derivado automáticamente para los widgets con ámbito de página (véase más abajo).
  3. Atributos de la etiqueta escritos en la propia etiqueta.

Por tanto, un url_id en la etiqueta anula el valor derivado de la página, que a su vez anula cualquier valor predeterminado global.

Sintaxis de atributos

Los atributos son pares key=value en snake_case:

{% raw %}{% fastcomments url_id="my-stable-id" readonly=true count=20 %}{% endraw %}
  • Valores entrecomillados ("..." o '...') son cadenas literales.
  • No entrecomillados true/false se convierten en booleanos, y los números se convierten en números.
  • No entrecomillados cualquier otra cosa se resuelve como una variable de Liquid desde el contexto de la página, p. ej. url_id=page.slug. (Liquid no expande {% raw %}\{{ ... }}{% endraw %} dentro de los atributos de una etiqueta, así que use la forma sin adornos page.slug en lugar de "{% raw %}\{{ page.slug }}{% endraw %}".)

Las claves de atributos y de configuración en snake_case se mapean automáticamente a las claves en camelCase que FastComments espera (tenant_idtenantId, url_idurlId, page_titlepageTitle, has_dark_backgroundhasDarkBackground, etc.). Cualquier otra opción de la configuración del widget pasa directamente de la misma manera.

Valores derivados de la página

Para los widgets con ámbito de página (fastcomments, fastcomments_comment_count, fastcomments_live_chat, fastcomments_collab_chat, fastcomments_image_chat) estos se completan automáticamente desde la página actual a menos que los establezca usted mismo:

  • url_idpage.url (un identificador estable independiente del dominio visitante)
  • urlsite.url + page.url (solo cuando url está establecido en _config.yml)
  • page_titlepage.title

Los widgets a nivel de sitio (comentarios/discusiones recientes, páginas principales, resumen de reseñas, feed de actividad de usuarios, recuento por lotes) no están ligados a una página y no derivan estos valores.

Residencia de datos en la UE

Los clientes de la UE añaden region: eu, ya sea globalmente:

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

o por etiqueta: {% raw %}{% fastcomments region="eu" %}{% endraw %}. Los widgets entonces se cargan desde la CDN de la UE.



Estado de mantenimiento Internal Link

Estos componentes son envoltorios alrededor de nuestros componentes centrales de VanillaJS. Podemos actualizar automáticamente esos componentes (corregir errores, añadir funciones) sin publicar esta biblioteca, así que, aunque puede que no se publique durante un tiempo, ¡eso no significa que FastComments no esté en desarrollo activo! No dude en consultar nuestro blog para actualizaciones. Los cambios o características que rompan la API nunca se enviarán a la biblioteca central subyacente sin un incremento de versión en esta biblioteca.

¿Necesita ayuda?

Si encuentra algún problema o tiene preguntas sobre la biblioteca Jekyll, por favor:

Contribuir

¡Las contribuciones son bienvenidas! Por favor visite el repositorio de GitHub para las directrices de contribución.