Skip to content

Commit

Permalink
✨ feat: add support for Hyvor Talk comments
Browse files Browse the repository at this point in the history
  • Loading branch information
welpo committed Jul 17, 2023
1 parent 5214dd3 commit 7924e82
Show file tree
Hide file tree
Showing 10 changed files with 184 additions and 43 deletions.
10 changes: 10 additions & 0 deletions config.toml
Original file line number Diff line number Diff line change
Expand Up @@ -214,3 +214,13 @@ label = "💬" # https://utteranc.es/#heading-issue-label
light_theme = "github-light" # https://utteranc.es/#heading-theme
dark_theme = "photon-dark" # https://utteranc.es/#heading-theme
lazy_loading = true

# Hyvor Talk support for comments. https://talk.hyvor.com
[extra.hyvortalk]
enabled_for_all_posts = false # Enables hyvortalk on all posts. It can be enabled on individual posts by setting `hyvortalk = true` in the [extra] section of a post's front matter.
automatic_loading = true # If set to false, a "Load comments" button will be shown.
website_id = "1234"
page_id_is_slug = true # If true, it will use the post's filename (slug) as id; this is the only way to share comments between languages. If false, it will use the entire url as id.
lang = "" # Leave blank to match the page's language.
page_author = "" # Email (or base64 encoded email) of the author.
lazy_loading = true
41 changes: 30 additions & 11 deletions content/blog/comments.ca.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
+++
title = "Afegeix comentaris a les teves publicacions amb giscus o utterances"
title = "Afegeix comentaris a les teves publicacions amb giscus, utterances o Hyvor Talk"
date = 2023-07-14
updated = 2023-07-16
description = "Descobreix com habilitar una secció de comentaris a les teves publicacions utilitzant giscus o utterances, permetent la interacció i feedback dels lectors."
description = "Descobreix com habilitar una secció de comentaris a les teves publicacions utilitzant giscus, utterances o Hyvor Talk, permetent la interacció i feedback dels lectors."

[taxonomies]
tags = ["funcionalitat", "tutorial"]
Expand All @@ -12,7 +12,7 @@ giscus = true
quick_navigation_buttons = true
+++

tabi actualment suporta dos sistemes de comentaris: [giscus](https://giscus.app/ca) i [utterances](https://utteranc.es/).
tabi actualment suporta tres sistemes de comentaris: [giscus](https://giscus.app/ca) i [utterances](https://utteranc.es/) y [Hyvor Talk](https://talk.hyvor.com/).

giscus i utterances són projectes de codi obert que et permeten afegir una secció de comentaris al teu lloc web utilitzant les «issues» (utterances) o «discussions» (giscus) de GitHub. Són perfectes per a generadors de llocs estàtics com Zola, ja que permeten als teus lectors interactuar i deixar comentaris a les teves publicacions sense requerir un backend tradicional o una base de dades.

Expand All @@ -24,15 +24,19 @@ Ambdues són excel·lents eines per afegir comentaris al teu blog, però giscus
- Respostes a comentaris i vista de conversa.
- Més segur: utterances requereix habilitar estils en línia no segurs («unsafe inline styles») per establir l'altura del frame; giscus no.
- Suport multilingüe: utterances només està disponible en anglès; giscus suporta més de 20 idiomes.
- Desenvolupament més actiu: l'últim commit de giscus, en el moment d'aquesta publicació, va ser fa una setmana. L'últim commit d'utterances es va fer fa més d'un any.
- Desenvolupament més actiu: l'últim commit de giscus, en el moment d'aquesta publicació, va ser fa dos dies. L'últim commit d'utterances es va fer fa més d'un any.

Hyvor Talk és una plataforma de comentaris de pagament centrada en la privadesa. Ofereix tots els avantatges del giscus i alguns més, com la moderació i la detecció de correu brossa.

## Configuració

Tots dos sistemes requereixen una configuració similar. Primer, visita el lloc web del sistema que vols habilitar: [giscus.app](https://giscus.app/ca) o [utteranc.es](https://utteranc.es/).
### Sistemes basats en GitHub

giscus y utterances requereixen una configuració similar. Primer, visita el lloc web del sistema que vulguis habilitar: [giscus.app](https://giscus.app/ca) o [utteranc.es](https://utteranc.es/).

Segueix les instruccions de la secció **Configuració** del lloc web, i tria les opcions que prefereixis. Finalment, estableix els valors que es mostren a la secció **Habilitar giscus/utterances** (el bloc de codi `script`) en la secció corresponent del teu `config.toml`: `[extra.giscus]` o `[extra.utterances]`.

### Giscus
#### giscus

giscus té més opcions que utterances:

Expand All @@ -53,7 +57,7 @@ dark_theme = "noborder_dark"
lang = "" # Deixa en blanc perquè coincideixi amb l'idioma de la pàgina.
lazy_loading = true
```
### utterances
#### utterances

```
[extra.utterances]
Expand All @@ -66,17 +70,32 @@ light_theme = "github-light"
dark_theme = "photon-dark"
lazy_loading = true
```

### Hyvor Talk

Configura el teu lloc web des de la [consola Hyvor Talk](https://talk.hyvor.com/console) i completa la configuració a `config.toml`:

```toml
[extra.hyvortalk]
enabled_for_all_posts = false
automatic_loading = true
website_id = "1234"
page_id_is_slug = true
lang = ""
page_author = "" # Correu (o correu codificat en base64) de l'autor.
lazy_loading = true
```

### Configuracions comunes

La opció `enabled_for_all_posts = true` habilita globalment el sistema de comentaris corresponent.

Alternativament, pots habilitar els comentaris de publicacions concretes afegint `utterances = true` o `giscus = true`. Per exemple, així és com habilitaries giscus:
Alternativament, pots habilitar els comentaris a publicacions concretes afegint el nom del sistema (`utterances`, `giscus` o `hyvortalk`) ` = true`. Per exemple, així és com habilitaries giscus:

```toml,hl_lines=09-10
+++
title = "L'art de l'entremaliadura segons Shin-Chan
date = 1990-02-14
updated = 2023-07-16
description = "Descobreix com les travessures poden canviar la teva perspectiva de vida."
[taxonomies]
Expand All @@ -87,9 +106,9 @@ giscus = true
+++
```

Si accidentalment habilitas tots dos sistemes, Zola mostrarà un error.
Si accidentalment habilites més d'un sistema, Zola mostrarà un error.

Si el teu lloc web té múltiples idiomes amb publicacions coincidents (com aquesta demo), i t'agradaria compartir comentaris entre idiomes, has d'utilitzar `issue_term = "slug"`. Això utilitzarà el nom de l'arxiu Markdown (sense l'etiqueta d'idioma) com a identificador. Totes les altres opcions crearan diferents seccions de comentaris per a cada idioma.
Si el teu lloc web té múltiples idiomes amb publicacions coincidents (com aquesta demo), i t'agradaria compartir comentaris entre idiomes, has d'utilitzar `issue_term = "slug"` (per giscus y utterances) o `page_id_is_slug = true` (per Hyvor Talk). Això utilitzarà el nom de l'arxiu Markdown (sense l'etiqueta d'idioma) com a identificador. Totes les altres opcions crearan diferents seccions de comentaris per a cada idioma.

## Exemple en viu

Expand Down
43 changes: 31 additions & 12 deletions content/blog/comments.es.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
+++
title = "Añade comentarios a tus publicaciones con giscus o utterances"
title = "Añade comentarios a tus publicaciones con giscus, utterances o Hyvor Talk"
date = 2023-07-14
updated = 2023-07-16
description = "Descubre cómo habilitar una sección de comentarios en tus publicaciones usando giscus o utterances, permitiendo la interacción y feedback de los lectores."
description = "Descubre cómo habilitar una sección de comentarios en tus publicaciones usando giscus, utterances o Hyvor Talk, permitiendo la interacción y feedback de los lectores."

[taxonomies]
tags = ["funcionalidad", "tutorial"]
Expand All @@ -12,7 +12,7 @@ giscus = true
quick_navigation_buttons = true
+++

tabi actualmente soporta dos sistemas de comentarios: [giscus](https://giscus.app/es) y [utterances](https://utteranc.es/).
tabi actualmente soporta tres sistemas de comentarios: [giscus](https://giscus.app/es) y [utterances](https://utteranc.es/) y [Hyvor Talk](https://talk.hyvor.com/).

giscus y utterances son proyectos de código abierto que te permiten añadir una sección de comentarios a tu sitio web usando las «issues» (utterances) o «discussions» (giscus) de GitHub. Son perfectos para generadores de sitios estáticos como Zola, ya que permiten a tus lectores interactuar y dejar comentarios en tus publicaciones sin requerir un backend tradicional ni una base de datos.

Expand All @@ -24,15 +24,19 @@ Ambas son excelentes herramientas para agregar comentarios a tu blog, pero giscu
- Respuestas a comentarios y vista de conversación.
- Más seguro: utterances requiere habilitar estilos en línea inseguros («unsafe inline styles») para ajustar la altura del frame; giscus no.
- Soporte multilingüe: utterances solo está disponible en inglés; giscus soporta más de 20 idiomas.
- Desarrollo más activo: el último commit de giscus, a fecha de esta publicación, fue hace una semana. El último commit de utterances fue hace más de un año.
- Desarrollo más activo: el último commit de giscus, a fecha de esta publicación, fue hace una dos días. El último commit de utterances fue hace más de un año.

Hyvor Talk es una plataforma de comentarios de pago centrada en la privacidad. Ofrece todas las ventajas de giscus y algunas más, como moderación y detección de spam.

## Configuración

Cada sistema de comentarios requiere una configuración similar. Primero, visita el sitio web del sistema que quieres habilitar: [giscus.app](https://giscus.app/es) o [utteranc.es](https://utteranc.es/).
### Sistemas basados en GitHub

giscus y utterances requieren una configuración similar. Primero, visita el sitio web del sistema que quieras habilitar: [giscus.app](https://giscus.app/es) o [utteranc.es](https://utteranc.es/).

Sigue las instrucciones de la sección **Configuración** del sitio web, y elige las opciones que prefieras. Luego, establece los valores que se muestran en la sección **Habilitar giscus/utterances** (el bloque de código `script`) en la sección correspondiente de tu `config.toml`: `[extra.giscus]` o `[extra.utterances]`.

### giscus
#### giscus

giscus tiene algunos ajustes más que utterances:

Expand All @@ -54,9 +58,9 @@ lang = "" # Deja en blanco para que coincida con el idioma de la página.
lazy_loading = true
```

### utterances
#### utterances

```
```toml
[extra.utterances]
enabled_for_all_posts = false
automatic_loading = true
Expand All @@ -68,17 +72,32 @@ dark_theme = "photon-dark"
lazy_loading = true
```

### Hyvor Talk

Configura tu web desde la [consola de Hyvor Talk](https://talk.hyvor.com/console) y rellena las opciones en `config.toml`:

```toml
[extra.hyvortalk]
enabled_for_all_posts = false
automatic_loading = true
website_id = "1234"
page_id_is_slug = true
lang = ""
page_author = "" # Correo (o correo codificado en base64) del autor.
lazy_loading = true
```

### Ajustes comunes

La opción `enabled_for_all_posts = true` habilitará globalmente el sistema de comentarios correspondiente.

Alternativamente, puedes habilitar los comentarios en publicaciones concretas con `utterances = true` o `giscus = true`. Por ejemplo, así habilitarías giscus:
Alternativamente, puedes habilitar los comentarios en publicaciones concretas añadiendo el nombre del sistema (`utterances`, `giscus` o `hyvortalk`) `= true`. Por ejemplo, así habilitarías giscus:

```toml,hl_lines=09-10
+++
title = "Los molinos de viento de mi vida: reflexiones de un escudero"
date = 1605-01-16
updated = 2023-07-16
updated = 2023-07-17
description = "Mi viaje junto a Don Quijote, enfrentándome a gigantes imaginarios y descubriendo las verdaderas batallas de la vida."
[taxonomies]
Expand All @@ -89,9 +108,9 @@ giscus = true
+++
```

Si accidentalmente habilitas ambos sistemas, Zola mostrará un error.
Si accidentalmente habilitas más de un sistema, Zola mostrará un error.

Si tu web tiene múltiples idiomas con publicaciones coincidentes (como esta demo), y te gustaría compartir comentarios entre idiomas, debes usar `issue_term = "slug"`. Esto usará el nombre del archivo Markdown (sin la etiqueta de idioma) como identificador. Todas las demás opciones crearán diferentes secciones de comentarios para cada idioma.
Si tu web tiene múltiples idiomas con publicaciones coincidentes (como esta demo), y te gustaría compartir comentarios entre idiomas, debes usar `issue_term = "slug"` (en el caso de giscus y utterances) o `page_id_is_slug = true` (para Hyvor Talk). Esto usará el nombre del archivo Markdown (sin la etiqueta de idioma) como identificador. Todas las demás opciones crearán diferentes secciones de comentarios para cada idioma.


## Ejemplo en vivo
Expand Down
43 changes: 31 additions & 12 deletions content/blog/comments.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
+++
title = "Add comments to your posts with giscus or utterances"
title = "Add comments to your posts with giscus, utterances or Hyvor Talk"
date = 2023-07-14
updated = 2023-07-16
description = "Discover how to enable a comments section on your posts using giscus or utterances, enabling reader interaction and feedback."
description = "Discover how to enable a comments section on your posts using giscus, utterances, or Hyvor Talk, enabling reader interaction and feedback."

[taxonomies]
tags = ["showcase", "tutorial"]
Expand All @@ -12,7 +12,7 @@ giscus = true
quick_navigation_buttons = true
+++

tabi currently supports two comment systems: [giscus](https://giscus.app/) and [utterances](https://utteranc.es/).
tabi currently supports three comment systems: [giscus](https://giscus.app/), [utterances](https://utteranc.es/), and [Hyvor Talk](https://talk.hyvor.com/).

giscus and utterances are open-source projects that let you add a comments section to your website using GitHub issues (utterances) or discussions (giscus). They are perfect for static site generators like Zola, since they enable your readers to interact and leave comments on your posts without requiring a traditional backend or database.

Expand All @@ -24,15 +24,19 @@ Both are great tools for adding comments to your blog, but giscus has a few adva
- Comment replies and conversation view.
- Safer: utterances requires enabling unsafe inline styles to set the height of the frame; giscus doesn't.
- Multilanguage support: utterances is only available in English; giscus supports over 20 languages.
- More active development: giscus' last commit, as of this post, was a week ago. utterances' last commit was over a year ago.
- More active development: giscus' last commit, as of this post, was a two days ago. utterances' last commit was over a year ago.

Hyvor Talk is a paid privacy-focused commenting platform. It offers all of the giscus' advantages, and a few more, like moderation and spam detection.

## Setup

The configuration of both systems is quite similar. First, visit the website of the system you want to enable: [giscus.app](https://giscus.app/) or [utteranc.es](https://utteranc.es/).
### GitHub based systems

The configuration of both giscus and utterances is quite similar. First, visit the website of the system you want to enable: [giscus.app](https://giscus.app/) or [utteranc.es](https://utteranc.es/).

Follow the instructions on the **Configuration** section of the website, and set it up it to your liking. Then, set the values shown on the **Enable giscus/utterances** section (the `script` codeblock) on the proper section of your `config.toml`: `[extra.giscus]` or `[extra.utterances]`.

### giscus
#### giscus

giscus has a few more settings than utterances:

Expand All @@ -54,7 +58,7 @@ lang = "" # Leave blank to match the page's language.
lazy_loading = true
```

### utterances
#### utterances

```toml
[extra.utterances]
Expand All @@ -68,17 +72,32 @@ dark_theme = "photon-dark"
lazy_loading = true
```

### Hyvor Talk

Set up your website from the [Hyvor Talk console](https://talk.hyvor.com/console) and fill in the settings in `config.toml`:

```toml
[extra.hyvortalk]
enabled_for_all_posts = false
automatic_loading = true
website_id = "1234"
page_id_is_slug = true
lang = ""
page_author = "" # Email (or base64 encoded email) of the author.
lazy_loading = true
```

### Common settings

Setting `enabled_for_all_posts = true` for either comment system will enable it globally.
Setting `enabled_for_all_posts = true` for a comment system will enable it globally.

Alternatively, enable comments on an individual post's front matter by adding `utterances = true` or `giscus = true`. For example, this is how you would enable giscus:
Alternatively, enable comments on an individual post's front matter by adding the name of the system (i.e. `utterances`, `giscus` or `hyvortalk`) `= true`. For example, this is how you would enable giscus:

```toml,hl_lines=09-10
+++
title = "Bears, Beets, Battlestar Galactica: The Dwight Schrute Guide to Life"
date = 2007-04-26
updated = 2023-07-16
updated = 2023-07-17
description = "Lessons learned from beet farming and paper sales."
[taxonomies]
Expand All @@ -89,9 +108,9 @@ giscus = true
+++
```

If you accidentally enable both systems, your site will fail to build with an error.
If you accidentally enable more than one system, your site will fail to build with an error.

If your site has multiple languages with matching posts (like this demo), and you'd like to share comments between languages, you must use `issue_term = "slug"`. This will use the name of the Markdown file (sans the language tag) as the identifier. All other options will create different comment sections for each language.
If your site has multiple languages with matching posts (like this demo), and you'd like to share comments between languages, you must use `issue_term = "slug"` (for giscus and utterances) or `page_id_is_slug = true` (for Hyvor Talk). This will use the name of the Markdown file (sans the language tag) as the identifier. All other options will create different comment sections for each language.

## Live example

Expand Down
43 changes: 43 additions & 0 deletions static/js/hyvortalk.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
function initHyvorTalk() {
// Get the div that will contain the comments.
const commentsDiv = document.querySelector('#comments');
if (commentsDiv) {
// Get the various settings from data attributes on the div.
const websiteId = commentsDiv.getAttribute('data-website-id');
const pageId = commentsDiv.getAttribute('data-page-id');
const pageLanguage = commentsDiv.getAttribute('data-page-language');
const loading = commentsDiv.getAttribute('data-loading');
const pageAuthor = commentsDiv.getAttribute('data-page-author');

// Create a new script tag that will load the Hyvor Talk script.
const script = document.createElement('script');
script.src = 'https://talk.hyvor.com/embed/embed.js';
script.async = true;
script.type = 'module';
document.head.appendChild(script);

// Create a new Hyvor Talk comments tag.
const comments = document.createElement('hyvor-talk-comments');
comments.setAttribute('website-id', websiteId);
comments.setAttribute('page-id', pageId);
comments.setAttribute('page-language', pageLanguage);
comments.setAttribute('loading', loading);
comments.setAttribute('page-author', pageAuthor);

// Choose the correct theme based on the current theme of the document.
const currentTheme = document.documentElement.getAttribute('data-theme') || 'light';
comments.setAttribute('colors', currentTheme);

// Add the Hyvor Talk comments tag to the div.
commentsDiv.appendChild(comments);

// Listen for theme changes and update the Hyvor Talk theme when they occur.
window.addEventListener('themeChanged', (event) => {
const selectedTheme = event.detail.theme;
comments.setAttribute('colors', selectedTheme);
});
}
}

// Initialize HyvorTalk.
initHyvorTalk();
1 change: 1 addition & 0 deletions static/js/hyvortalk_min.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading

0 comments on commit 7924e82

Please sign in to comment.