Esto ocurre en mi configuración de desarrollo, en un foro Discourse en vivo https://discourse.gohugo.io/ y en el campo de pruebas de Discourse.
En general, cuando un bloque de código con vallas no tiene un lenguaje establecido, se activa la detección automática. Esto tiene éxito en un uso normal de Highlight.JS (nodo o navegador) todo el tiempo seleccionando algo.
Discourse parece guardar estos bloques como <code class="lang-auto">, lo cual no es un lenguaje válido ![]()
Hablé con el bot de IA ask.discourse.cm…30386:
me dijo que hacen algo mágico EN TIEMPO DE EJECUCIÓN al eliminar “lang-auto” y luego dejan que highlight.js vuelva a hacer el trabajo automático. Parece que esta actualización no siempre ocurre ANTES de que highlight.JS toque el código. Así que parece ser un quirk en la integración de highlight.js y la implementación de detección automática dentro de Discourse.
Desactivar un lenguaje por defecto tampoco funcionará, porque entonces el “eliminar lang-auto” no funciona y parece que el método de Discourse no vuelve a hacer la detección automática.
- establecer el lenguaje manualmente funciona todo el tiempo – para lenguajes integrados y un lenguaje personalizado (plantillas de Hugo) añadido a través de la API de plugins (registerHLJSLanguage) como un componente de tema.
- sin un lenguaje, falla dependiendo de las condiciones de carrera de content(), tiempos
Establecer el lenguaje por defecto a “text” no será una opción porque queremos que esté resaltado y queremos la detección automática para usabilidad (y funciona…)
Aquí hay un ejemplo de Markdown, donde el segundo bloque de código falla (por supuesto, solo si el lenguaje por defecto está establecido en “auto”. Fácilmente reproducible con el siguiente markdown en https://try.discourse.org/
y dentro de 24h: Failed Discourse Autodetection breaks rendering of fenced code blocks - support - Discourse Demo
# Esto funciona
```
{{ $currentPagemd5 := md5 $currentPage.File.Path }}
{{ $currentPagemd5ext := (print $currentPagemd5 ".json")}}
```
# Esto falló y asignó "lang-auto"
```
{{ $currentPage := . }}
{{ $jsonFile := "" }}
{{ with $currentPage.File }}
{{ $currentPagemd5 := md5 $currentPage.File.Path }}
{{ $currentPagemd5ext := (print $currentPagemd5 ".json")}}
{{ $files := readDir "data/commits/" }}
{{if gt (len $files ) 0}}
<div class="bord-bas"></div>
<div>
<details>
<summary>Changements de la page</summary>
<div>
{{ range $files }}
{{ if eq .Name $currentPagemd5ext }}
{{ $jsonFile := $currentPagemd5 }}
{{ $data := index $.Site.Data.commits $jsonFile }}
<ul>
{{ range $data }}
<li>
{{ dateFormat "02/01/2006" .commit_date }} : {{ trim .message "\n" }} ({{ .author }})
</li>
{{ end }}
</ul>
{{ end }}
{{ end }}
</div>
</details>
</div>
{{ end }}
{{ end }}
```
