Domanda

La funzione più preferita di StackOverflow per me è che è in grado di rilevare automaticamente il codice in post e impostare il colore appropriato per il codice.

Mi chiedo come sia impostato il colore. Quando eseguo un Ctrl + F5 su una pagina, il codice sembra prima essere in nero, quindi cambia in colorato. È fatto da jQuery?

È stato utile?

Soluzione

In risposta a ..

  

Spolsky: come fanno a sapere come fanno a sapere in quale lingua stai scrivendo?

Non lo fa. L'evidenziatore è molto stupido, ma riesce a cavarsela perché la maggior parte dei linguaggi di programmazione sono così simili. Quasi tutto usa la sintassi abbastanza vicina a ..

AFunction("a string")
1 + 4 # <- numbers
      #     /\ a comment
      // also a comment..

..che la maggior parte delle cose evidenzia correttamente. Quanto sopra non è un linguaggio di programmazione effettivo, ma evidenzia perfettamente.

Ci sono eccezioni, ad esempio, a volte può trattare un / come l'inizio di una regex (come in Perl / Ruby). quando non lo è:

this [^\s>/] # is highlighted as a regex, not a comment

.. ma questi sono abbastanza rari, e fa un buon lavoro nell'elaborare la maggior parte delle cose, come ..

/*
this is a multi-line comment
"with a string" =~ /and a regex/
*/
but =~ /this is a regex with a [/*] multiline comment
markers in it! */

Altri suggerimenti

Da Stack Overflow Podcast # 11 :

  

Atwood: lo è. Va bene, quindi viene, è un progetto che alcuni ingegneri di Google, penso, lo hanno scritto - si chiama " Prettify. & Quot; Ed è un po 'interessante in quanto in realtà infligge l'evidenziazione di tutta la sintassi, che suona come se non potesse funzionare - sembra davvero folle, se ci pensate. Ma in realtà funziona in qualche modo. Ora, lo supporta solo per, ci sono alcuni dialetti che non funzionano davvero bene con esso, ma per tutti i dialetti di quel tipo, lo troverai su Google. Penso che provenga dal codice Google di Google. È il codice reale, è il codice JavaScript effettivo che si trova su Google Code che evidenzia il codice che ritorna quando si ospitano progetti su Google Code. E tu, e tu, ehm, perché penso che usano Subversion in modo da poter effettivamente fare clic su ...

     

Spolsky: come fanno a sapere come fanno a sapere in quale lingua stai scrivendo? E quindi, cos'è un commento e ...

     

Atwood: non lo so. È pazzesco. È prettify.js, quindi se qualcuno è interessato a guardare questo, basta fare una ricerca sul web per " prettify.js, " e lo troverai.

Ed ecco dove puoi trovare prettify.js: http://code.google .com / p / google-code-Prettify /

Come detto da dbr, fa un falso highlight dei costrutti più comuni delle lingue. Il che non funziona bene con alcune sintassi esotiche. Mi chiedo se possiamo fare sezioni di codice senza evidenziare, BTW.

For id = 1 To 10 Do
  CallSomething() // It likes CamelCase identifiers...
End

for id = 1 to 10 do # Also highlight some common keywords...
  if id % 2 then call_something(); x++; end
end

'str' "str" 12 + 15.6 * -7e+9 /* Some common constant forms */
=/regex/ ~/regex/ +/RE/ !/regexpr/ but not /[^regex]/ (no operator before it)

(* Some comment conventions are overlooked... *)
-- Lua's (and some other languages')
; So are these comments...
' And these (Basic)

Funziona abbastanza bene perché il codice comune crei illusioni e meglio che caricare dozzine di sintassi nel browser.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top