15

私が最も気に入っている StackOverflow の機能は、ポスト内のコードを自動的に検出し、コードに適切な色を設定できることです。

色をどうするか迷っています。Ctrlページで+を実行するF5と、コードは最初は黒いテキストのように見え、次にカラフルに変わります。それはjQueryによって行われますか?

4

3 に答える 3

20

スタック オーバーフロー ポッドキャスト #11から:

アトウッド:そうです。これは、Google のエンジニアが書いたプロジェクトで、「Prettify」という名前のプロジェクトに由来します。そして、それがすべての構文強調表示を実際に推論するという点で少し興味深いです。これはおそらく機能しないように思えます。しかし、実際にはある程度機能します。現在、彼はそれをサポートしているだけで、実際にはうまく機能しない特定の方言がありますが、そのようなすべての方言については、Googleで見つけることができます. GoogleのGoogleコードから来ていると思います。それは実際のコードです。Google Code でプロジェクトをホストしているときに返されるコードを強調するのは、Google Code にある実際の JavaScript です。そして、あなた、そしてあなた、ええと、'

スポルスキー:彼らはどのようにして、あなたがどの言語で書いているかを知っていますか? したがって、コメントとは何ですか...

アトウッド:わかりません。それはクレイジーです。これは prettify.js です。興味がある人は、「prettify.js」を Web 検索してください。

prettify.js は次の場所にあります: http://code.google.com/p/google-code-prettify/

于 2008-10-25T06:10:43.973 に答える
11

への返信で..

スポルスキー: 彼らはどのようにして、あなたがどの言語で書いているかを知っていますか?

そうではありません。蛍光ペンは非常に馬鹿げていますが、ほとんどのプログラミング言語は非常に似ているため、なんとかうまくいきます。ほぼすべての構文が、..

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

..ほとんどのものは適切に強調表示されます。上記は実際のプログラミング言語ではありませんが、完全に強調表示されています。

例外もあります。たとえば、/(Perl/Ruby のように) a を正規表現の開始として扱うことがあります。そうでない場合:

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

..しかし、これらはかなりまれであり、ほとんどのことをうまく処理します..

/*
this is a multi-line comment
"with a string" =~ /and a regex/
*/
but =~ /this is a regex with a [/*] multiline comment
markers in it! */
于 2008-10-25T07:41:39.780 に答える
4

dbr が言ったように、言語の最も一般的な構造のダミーの強調表示を行います。一部のエキゾチックな構文ではうまく機能しません。ところで、強調表示せずにコード セクションを実行できるかどうか疑問に思っています。

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)

一般的なコードが錯覚するのに十分なほどうまく機能し、ブラウザーに多数の構文をロードするよりも優れています。

于 2008-10-25T14:05:46.663 に答える