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>我發現這是一個難以透過Google搜尋得到答案的問題。 </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。