Einstellung der Syntaxhervorhebungsfarbe für das <code>-Tag in HTML
P粉032649413
2023-08-22 16:48:45
<p>In einem Codeausschnitt wie diesem...</p>
<pre class="brush:cs;toolbar:false;">
{
internalFoo()
{
for (int i = 0; i < 42; ++i);
}
}
</pre>
<p>... Verschiedene Schlüsselwörter usw. werden in meinem Browser farbig angezeigt. </p>
<p>Wenn ich auf „Quelle anzeigen“ klicke, wird mir kein spezieller HTML-Code angezeigt, um diese Farbgebung zu erreichen. </p>
<p>Wie wird also diese farbliche Hervorhebung einer bestimmten Syntax implementiert? Ist es beispielsweise in den Browser integriert oder wird es durch websitespezifisches JavaScript implementiert, das das DOM im Browser bearbeitet? </p>
<p>Ich fand, dass es schwierig ist, diese Frage über eine Google-Suche zu beantworten. </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。