Maison >interface Web >js tutoriel >Comment détecter le langage de code dans le navigateur
Dépôt : https://github.com/ray-d-song/guesslang-js
Démo : https://ray-d-song.github.io/guesslang-js/
Récemment, je travaille sur un projet appelé EchoRSS, et j'ai une fonctionnalité très recherchée, qui est d'intercepter les liens externes dans les abonnements (lire le texte intégral, citer, etc.) et de les afficher directement sur la page courante.
Il y a un problème : le bloc de code HTML renvoyé perd l'annotation de langue (ou la langue n'a pas été annotée sur les balises pre et code dans le bloc de code d'origine), il ne peut donc pas être mis en évidence à l'aide d'outils comme shiki ou prism.js. .
J'ai trouvé trois solutions pour détecter le langage du code :
Il s'agit d'un projet Ruby déployé sur le serveur, et Github l'utilise pour détecter la composition linguistique du référentiel. Si vous avez besoin d'une précision extrêmement élevée et que vous pouvez calculer sur le serveur, c'est la meilleure solution.
highlight.js est une bibliothèque de mise en évidence de code Web très célèbre, et c'est également la seule bibliothèque qui permet une détection automatique de code.
Le principe est très simple, il s'agit d'énumérer les mots-clés de la langue, puis de les associer un à un avec le texte, et enfin de voir lequel a le plus haut degré de correspondance.
hljs a quatre problèmes.
guesslang est un projet d'apprentissage automatique basé sur tensorflow.js.
Microsoft a porté ce projet sur node.js en 2021 et a ajouté la fonction de détection automatique de langue à vscode.
Un vietnamien, hieplpvip, a également porté ce projet sur le navigateur il y a trois ans, mais il y a aussi trois problèmes :