Как выделить исходный код в HTML?
Я хочу выделить исходные коды C/C++/Java/C# и т. Д. На моем веб-сайте.
Как я могу это сделать?
Это интенсивная загрузка процессора для выделения исходного кода?
9 ответов
Вы можете сделать это на стороне сервера или на стороне клиента. Это не очень интенсивно использует процессор, но если вы сделаете это на стороне клиента (используя Javascript), будет заметное отставание. Большинство решений на стороне клиента вращаются вокруг механизма подсветки синтаксиса Google Code. Это, кажется, самый популярный: SyntaxHighlighter
Серверные решения имеют тенденцию быть более гибкими, особенно в плане определения новых языков и настройки их выделения (например, используемых цветов). Я использую GeSHi, PHP-решение с умеренно красивым плагином для Wordpress. Есть также несколько библиотек, построенных для Java, и даже некоторые, основанные на VIM (обычно требующие установки модуля Perl из CPAN).
Короче говоря: у вас есть несколько вариантов, каковы ваши критерии? Трудно дать твердую рекомендацию, не зная ваших требований.
Я использую GeSHi (" Обобщающий синтаксис") на http://pastebin.com/
У pastebin высокий трафик, поэтому я кеширую результаты преобразования, что, безусловно, снижает нагрузку.
Лично я предпочитаю автономные инструменты: я не вижу смысла анализировать код (особенно большие) снова и снова для каждой обслуживаемой страницы или, что еще хуже, в каждом браузере (для библиотек JS), потому что, как указано выше, эти библиотеки часто запаздывают (вы часто видите исходный код до того, как он отформатирован).
Есть несколько инструментов для этой работы, некоторые из которых указаны выше. Я просто использую функцию экспорта моего любимого редактора (SciTE), потому что он просто учитывает выбор цвета, который я тщательно настроил...:-) И он также может выводить XML, PDF, RTF и LaTeX.
Pygment - это хорошая библиотека Python для генерации кода HTML, RTF, ANSI (в стиле терминала) или LaTeX. Он поддерживает широкий спектр языков (C, C++, Lua, Erlang, ...), и вы даже можете написать свой собственный форматер вывода.
Я использую https://github.com/google/code-prettify. Он прост в настройке и прекрасно работает со всеми языками в стиле Си.
Просто запустите его с помощью такого инструмента, как: http://www.gnu.org/software/src-highlite/
Если вы используете PHP, вы можете использовать GeSHi, чтобы выделить много разных языков. Я использовал его раньше, и он работает довольно хорошо. Быстрый поиск в Google также раскроет плагины GeSHi для WordPress и Drupal.
Я бы не подумал, что подсветка потребляет слишком много ресурсов процессора, если вы не собираетесь отображать мегабайты всего этого сразу. И даже в этом случае нагрузка на процессор будет минимальной, и вашей главной проблемой будет скорость передачи данных.