Tetapan warna penonjolan sintaks untuk teg <code> dalam HTML
P粉032649413
2023-08-22 16:48:45
<p>Dalam coretan kod seperti ini...</p>
<pre class="brush:cs;toolbar:false;"> kelas Foo
{
internalFoo()
{
untuk (int i = 0; i < 42; ++i);
}
}
</pra>
<p>... Pelbagai kata kunci dsb. diwarnakan apabila ia dipaparkan dalam penyemak imbas saya. </p>
<p>Apabila saya mengklik "Lihat Sumber" saya tidak melihat sebarang kod HTML khas untuk mencapai pewarnaan ini. </p>
<p>Jadi, bagaimanakah penyerlahan warna bagi sintaks tertentu ini dilaksanakan? Contohnya, adakah ia terbina dalam penyemak imbas, atau adakah ia dilaksanakan melalui JavaScript khusus tapak web yang mengedit DOM dalam penyemak imbas? </p>
<p>Saya mendapati ini adalah soalan yang sukar untuk dijawab melalui carian Google. </p>
Terdapat Soalan Lazim tentang meta.SE Apakah penyerlahan sintaks dan bagaimana ia berfungsi? .
Ia sangat terperinci. Untuk kemudahan, saya akan memetik bahagian yang paling relevan dengan soalan anda:
Bagaimana ia berfungsi?
Apabila membuat atau mengedit siaran, penyerlahan sintaks diberikan pada pratonton 5 saat selepas anda berhenti menaip, berdasarkan tag soalan.
Stack Exchange tidak mempunyai enjin penyerlahan sintaksnya sendiri. Ia menggunakan highlight.js dan mungkin tidak semestinya menggunakan versi terkini perpustakaan. Oleh itu, sebarang pepijat dan permintaan ciri mengenai penyerlahan sintaks tidak boleh dikendalikan oleh Stack Exchange.
Mengapa kod saya tidak diserlahkan dengan betul?
[ Teruskan membaca catatan asal... ]
Stack Overflow menggunakan Pustaka JS prettify Google untuk penyerlahan sintaks. Ia dilaksanakan selepas HTML dihantar dari pelayan kepada klien. Itulah sebabnya anda tidak melihatnya dalam kod sumber HTML asal. Jika anda mempunyai pemalam penyemak imbas seperti FireBug dipasang, anda boleh memeriksa DOM selepas prettify selesai.
Kemas kini 2020-09-14: Stack Overflow ditukar daripada prettify Google kepada highlight.js.