如何在浏览器中检测代码语言

如何在浏览器中检测代码语言

💡 原文英文,约500词,阅读约需2分钟。
📝

内容提要

作者正在开发EchoRSS项目,旨在拦截订阅中的外部链接并在当前页面显示。由于返回的HTML缺乏语言注释,无法高亮显示。文章讨论了三种代码语言检测方案:linguist、highlight.js和guesslang。最终,作者从highlight.js提取检测模块,修复了guesslang-js中的问题,取得成功,并希望获得tensorflow.js的学习资料以进一步改进。

🎯

关键要点

  • 作者正在开发EchoRSS项目,旨在拦截订阅中的外部链接并在当前页面显示。
  • 返回的HTML缺乏语言注释,无法使用工具高亮显示代码。
  • 讨论了三种代码语言检测方案:linguist、highlight.js和guesslang。
  • linguist是一个Ruby项目,适合需要高准确度的服务器计算。
  • highlight.js是一个著名的网页代码高亮库,但存在多个问题,包括需要较长的代码长度和性能差。
  • guesslang是基于tensorflow.js的机器学习项目,但存在内存泄漏和不支持esm等问题。
  • 作者从highlight.js提取了检测模块,并修复了guesslang-js中的问题,最终取得成功。
  • 希望获得tensorflow.js的学习资料,以进一步改进项目。

延伸问答

EchoRSS项目的主要功能是什么?

EchoRSS项目旨在拦截订阅中的外部链接并在当前页面直接显示。

为什么返回的HTML无法高亮显示代码?

返回的HTML缺乏语言注释,导致无法使用工具高亮显示代码。

有哪些代码语言检测方案?

文章讨论了三种方案:linguist、highlight.js和guesslang。

highlight.js存在哪些问题?

highlight.js需要较长的代码长度、性能差、无法在web worker中运行,并且检测模块与解析器紧密耦合。

guesslang的主要缺陷是什么?

guesslang存在内存泄漏、不支持esm格式和不支持web worker等问题。

作者对tensorflow.js有什么需求?

作者希望获得tensorflow.js的学习资料,以进一步改进项目。

➡️

继续阅读