HTML中<code>标签的语法高亮颜色设置
P粉032649413
2023-08-22 16:48:45
<p>在像下面这样的代码片段中...</p>
<pre class="brush:cs;toolbar:false;"> class Foo
{
internal Foo()
{
for (int i = 0; i < 42; ++i);
}
}
</pre>
<p>...当它们在我的浏览器中显示时,各种关键字等都会被着色。</p>
<p>当我点击“查看源代码”时,我没有看到任何特殊的HTML代码来实现这种着色。</p>
<p>那么这种特定语法的颜色高亮是如何实现的呢?例如,它是内置于浏览器中,还是通过特定网站的JavaScript编辑浏览器中的DOM来实现的?</p>
<p>我发现这是一个难以通过谷歌搜索得到答案的问题。</p>
在meta.SE上有一个非常好的FAQ 什么是语法高亮,它是如何工作的?。
它非常详尽。为了方便起见,我会引用与您的问题最相关的部分:
它是如何工作的?
在创建或编辑帖子时,根据问题的标签,语法高亮会在您停止输入5秒后分配给预览。
Stack Exchange没有自己的语法高亮引擎。它使用highlight.js,并且可能不一定使用该库的最新版本。因此,任何关于语法高亮的错误和功能请求都无法由Stack Exchange处理。
为什么我的代码没有正确高亮显示?
[ 继续阅读原始帖子... ]
Stack Overflow使用Google的prettify JS库进行语法高亮。它在HTML由服务器传送到客户端后执行。这就是为什么你在原始HTML源代码中看不到它。如果你安装了像FireBug这样的浏览器插件,你就可以在prettify完成后检查DOM。
更新2020-09-14:Stack Overflow从Google的prettify切换到highlight.js。