Подтвердить что ты не робот

Как цвет кода установлен в StackOverflow?

Самая любимая функция StackOverflow для меня заключается в том, что она может автоматически определять код в сообщении и устанавливать соответствующий цвет для кода.

Мне интересно, как настроен цвет. Когда я делаю Ctrl + F5 на странице, код сначала выглядит черным, а затем меняет цвет на красочный. Это делается с помощью jQuery?

4b9b3361

Ответ 1

В ответ на..

Спольский: Как они знают, как они даже знают, на каком языке вы пишете?

Это не так. Маркер очень тупой, но ему удается уйти от него, потому что большинство языков программирования настолько похожи. Почти все использует синтаксис, достаточно близкий к..

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

.. что большинство вещей выделяется правильно. Вышеупомянутый не является языком программирования, но он отлично выделяется.

Есть исключения, например, иногда он может обрабатывать / как начало регулярного выражения (как в Perl/Ruby). когда это не так:

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! */

Ответ 2

От Qaru Podcast # 11:

Этвуд:. Хорошо, так что из этого, что проект, какой-то инженер Google, я думаю, написал это - он назывался "Prettify". И это немного интересно в том, что на самом деле он отображает все подсветки синтаксиса, которые звучат так, как будто они не могут работать - это кажется сумасшедшим, если вы думаете об этом. Но это на самом деле вид работ. Теперь он только поддерживает его, там есть определенные диалекты, которые на самом деле не очень хорошо работают с ним, но для всех подобных диалектов вы найдете в Google. Я думаю, что это происходит из Google Google Code. Это фактический код, это фактический JavaScript, который находится в коде Google, который подчеркивает, что код, который возвращается, когда вы размещаете проекты в Google Code. И вы, и вы, гм, потому что я думаю, что они используют Subversion, чтобы вы могли на самом деле щелкнуть...

Спольский: Как они знают, как они даже знают, на каком языке вы пишете? И поэтому, что такое комментарий и...

Этвуд: Я не знаю. Это безумие. Это prettify.js, поэтому, если кому-то интересно посмотреть на это, просто выполните поиск в Интернете для "prettify.js", и вы его найдете.

И здесь, где вы можете найти prettify.js: http://code.google.com/p/google-code-prettify/

Ответ 3

Как сказано в dbr, он делает фиктивный изюминкой большинства общих конструкций языков. Что плохо работает с некоторыми экзотическими синтаксисами. Интересно, можем ли мы сделать разделы кода без выделения, 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 (and some other languages')
; So are these comments...
' And these (Basic)

Хорошо работает для того, чтобы общий код делал иллюзию и лучше, чем загружать дюжину синтаксисов в браузере.