Cela se produit dans ma configuration de développement, sur le forum Discourse en direct https://discourse.gohugo.io/ et sur le terrain de jeu Discourse.
En général, lorsqu’un bloc de code clôturé n’a pas de langage défini, nous obtenons une détection automatique. Cela réussit dans une utilisation normale de Highlight.JS (node ou navigateur) à chaque fois en sélectionnant quelque chose.
Discourse semble sauvegarder ces blocs sous forme de <code class="lang-auto">, ce qui n’est pas un langage valide ![]()
J’ai discuté avec le bot IA ask.discourse.cm…30386 :
il a dit que vous faites de la magie AU MOMENT DE L’EXÉCUTION en supprimant le “lang-auto” et en laissant highlight.js refaire le travail automatique. Il semble que cette mise à jour ne se produise pas toujours AVANT que highlight.JS ne touche au code. Cela ressemble donc à une particularité de l’intégration de highlight.js et de l’implémentation de la détection automatique dans Discourse.
Désactiver un langage par défaut ne fonctionnera pas non plus, car alors la “suppression de lang-auto” ne fonctionne pas et il semble que la méthode Discourse ne refasse pas la détection automatique.
- définir le langage manuellement fonctionne à chaque fois – pour les langages intégrés et un langage personnalisé (hugo-templates) ajouté via l’API Plugin (registerHLJSLanguage) en tant que composant de thème.
- sans langage, cela échoue selon les conditions de course content(), les timings
Définir le langage par défaut sur “text” ne sera pas une solution car nous voulons que cela soit mis en surbrillance et nous voulons la détection automatique pour l’utilisabilité (et cela fonctionne…)
Voici un exemple Markdown, où le deuxième bloc de code échoue (bien sûr seulement si le langage par défaut est défini sur “auto”. Facilement reproductible avec le markdown ci-dessous sur https://try.discourse.org/
et dans les 24h : Failed Discourse Autodetection breaks rendering of fenced code blocks - support - Discourse Demo
# Cela fonctionne
```
{{ $currentPagemd5 := md5 $currentPage.File.Path }}
{{ $currentPagemd5ext := (print $currentPagemd5 ".json")}}
```
# Cela a échoué et assigné "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 }}
```
