2008-09-16 3 views
25

Я хочу выделить C/C++/Java/C# и т. Д. Исходные коды на моем сайте.Как выделить исходный код в HTML?

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

Это интенсивная работа с ЦП, чтобы выделить исходный код?

+0

Код, который я использовал для этого, опубликован в статье [Colorizing Source Code] (http://www.blackbeltcoder.com/Articles/strings/colorizing-source-code). – 2013-10-17 19:44:41

ответ

27

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

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

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

11

Я использую GeSHi («Generic Syntax Highlighter») на pastebin.com

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

0

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

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

5

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

5

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

6

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

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

Смежные вопросы