Как выделить исходный код в HTML?

Я хочу выделить исходные коды C/С++/Java/С# etc на моем веб-сайте.

Как я могу это сделать?

Является ли это задачей интенсивного процессора, чтобы выделить исходный код?

Ответ 1

Вы можете либо сделать это на стороне сервера, либо на стороне клиента. Это не очень интенсивный процессор, но если вы сделаете это на стороне клиента (используя Javascript), будет заметный лаг. Большинство клиентских решений вращаются вокруг механизма подсветки синтаксиса кода Google. Это кажется самым популярным: SyntaxHighlighter

Серверные решения имеют тенденцию быть более гибкими, особенно в том, что касается определения новых языков и настройки того, как они выделены (например, используемые цвета). Я использую GeSHi, который представляет собой PHP-решение с умеренно приятным плагином для Wordpress. Существует также несколько библиотек, построенных для Java, и даже некоторые из них основаны на VIM (обычно требуется, чтобы модуль Perl устанавливался из CPAN).

Короче: у вас есть несколько вариантов, каковы ваши критерии? Трудно сделать твердую рекомендацию, не зная ваших требований.

Ответ 2

Я использую GeSHi ( "Обозначитель синтаксиса синтаксиса" ) на pastebin.com

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

Ответ 3

Лично я предпочитаю автономные инструменты: я не вижу смысла разбора кода (особенно больших) снова и снова, для каждой обслуживаемой страницы или, что еще хуже, для каждого браузера (для JS-библиотек), потому что поскольку указанные библиотеки часто отстают (вы часто видите исходный исходный код до его форматирования).

Существует множество инструментов для выполнения этой работы, некоторые из которых указаны выше. Я просто использую функцию экспорта моего любимого редактора (SciTE), потому что он просто уважает выбор цвета, который я тщательно настроил...:-) И он также может выводить XML, PDF, RTF и LaTeX.

Ответ 4

Я использую google-code-prettify. Он прост в настройке и отлично работает со всеми языками C-стиля.

Ответ 5

Pygment - хорошая библиотека Python для генерации HTML, RTF, ANSI (терминального стиля) или кода LaTeX. Он поддерживает большой диапазон языков (C, С++, Lua, Erlang,...), и вы даже можете написать свой собственный выходной форматтер.

Ответ 6

Если вы используете jEdit, вы можете использовать Code2HTML.

Ответ 9

Если вы используете PHP, вы можете использовать GeSHi, чтобы выделить много разных языков. Я использовал его раньше, и он работает очень хорошо. Быстрый googling также откроет плагины GeSHi для wordpress и drupal.

Я бы не хотел, чтобы подсветка была активной, если вы не собираетесь отображать мегабайты всего за один раз. И даже тогда загрузка процессора будет минимальной, и основной проблемой будет скорость передачи для всего этого.