在如下代码片段中...
class Foo
{
internal Foo()
{
for (int i = 0; i < 42; ++i);
}
}
...它的各种关键字等在我的浏览器中显示时都是用颜色编码的。
当我执行“查看源代码”时,我在 HTML 中没有看到任何可以实现此颜色编码的特殊内容。
那么,这种特定于语法的颜色突出显示是如何和/或在哪里实现的呢?例如,它是内置于浏览器中的,还是通过特定于站点的 JavaScript 在浏览器中编辑 DOM 来实现?我发现这个问题很难用谷歌搜索。
Google 的 prettify JS 库来进行语法突出显示。它在服务器传送 HTML 后在客户端执行。这就是为什么您在原始 HTML 源代码中看不到它的原因。如果您有一个浏览器插件,例如 FireBug,您将能够在 prettify 发挥其魔力后检查 DOM。
2020-09-14 更新:Stack Overflow 从 Google 的 prettify 切换到highlight.js。
FAQ 什么是语法高亮以及它是如何工作的?在 meta.SE 上。
范围相当广泛。为了您的方便,我将引用与您的问题最相关的部分:
Stack Exchange 没有自己的语法突出显示引擎。它使用 highlight.js,并且可能不一定使用该库的最新版本。因此,任何有关语法突出显示的错误和功能请求都无法由 Stack Exchange 处理。
为什么我的代码没有正确突出显示?SyntaxHighlighter交易链接。不过,我个人最喜欢的是Chili。