Подсветка кода на сайтах — JavaScript решения

Подсветка кода на сайтах — JavaScript решения

Всем привет!

Когда-то давно я написал статью про подсветку кода внутри textarea. Там я привел несколько решений этой задачи. Сегодня же мы рассмотрим некоторые (естественно, что не все) решения для подсветки кода на страницах сайта. Обращаю ваше внимание, что мы рассмотрим только клиентские решения, так как они не перегружают контент лишним кодом и их использование наиболее удобно. Ну по крайней мере мне так кажется ;-)

SyntaxHighlighter

Подсветка кода — Syntaxhighlighter

Довольно сильный инструмент. Имеет поддержку огромного количества языков, несколько тем оформления и различные расширения и дополнения. Что особо приятно, каждый язык вынесен в отдельный файл — это позволяет, во-первых, подгружать только те языки, которые нужны, а, во-вторых, (при особой надобности) дописывать интерпретаторы для недостающих языков. Единственный минус — это то, что скрипт не является XHTML валидным, точнее для его использования нужно написать невалидный код (аттрибут name не разрешен у тега pre).

Добрый человек Ларс Корнелиуссен взял и сделал из этого скрипта плагин для jQuery, заодно сделав так, что плагин можно использовать и с валидным xhtml кодом.

Google Code Prettify

Подсветка кода — Google Code Prettify

Как понятно из названия, это решения от компании Гугл, которое используется, например, в Гугл сайтах. Скрипт автоматически определяет язык и подсвечивает его синтаксис. Оформление можно менять через CSS.

HighLight.js

Подсветка кода — Highlight.js

Еще один скрипт с автоопределением языка. Имеет довольно большой список поддерживаемых языков программирования. Среди доступных на сайте расширений стоит упомянуть плагин для Файерфокса, который будет находить автоматически подсвечивать код на посматриваемых страницах.

SHJS

Подсветка кода — SHJS

Этот вариант подсвечивает код только внутри тега pre (не ясно, с чем это связано). Кроме того, для каждой области с кодом нужно указывать, на каком именно языке там код. Для каждого языка существует свой js-файл и css-файл. Подгружать их можно либо руками, либо автоматически.

Chili

Подсветка кода — Chili jQuery

Плагин для jQuery. Быстрый, имеет поддержку многих популярных языков.

Lighter.js

Подсветка кода — Lighter.js

А вот плагин для Mootools 1.2.1. Скрипту нужно сообщать, какой именно язык подсвечивать. Есть куча полезных настроек, выглядит красиво — вроде бы неплохой скрипт.

 

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

Расскажите друзьям

Оцените статью:
  • 1
  • 2
  • 3
  • 4
  • 5

Комментарии — 11

Влад
В RSS ссылка "подсветку кода внутри textarea" нерабочая... feedburner вместо vremenno.net
#
Влад
Grin
Спасибо, Влад, исправил
kikaha
это скорее фидбурнеру исправлять надо - он все относительные пути типа a href=/внутренняя_ссылка меняет на a href=ввв.фидбурнер/внутренняя_сылка - имхо это кривые ручки программеров фидбурнера
Алик Кириллович
Очень рекомендую библиотеку «HighLight.js» от Ивана Сагалаева (3-я в списке).

Сама библиотека внутренне очень утонченна и красива.

Для своего сайта я несколько модифицировал библиотеку:

Например, добавил поддержку <![CDATA внутри блока <pre>...</pre>. Благодаря этому, можно писать гораздо более чистый и красивый XML/HTML-код, не заменяя угловые скобки «<» и «>» на entity «&lt;» и «&gt;»

Т.е. вместо:
<pre><code>
  &lt;tag parametr1 = "значение1" parametr2 = "значение2"&gt;
   Содержимое
  &lt;/tag&gt;
</code></pre>
писать более чисто и красиво:
<pre>
  <![CDATA[!!!
    <tag parametr1 = "значение1" parametr2 = "значение2">
     Содержимое
    </tag>
  !!!]]>
</pre>
См. например HTML-код моей статьи: http://www.alik.su/articles/xml-and-yaml/

Также там есть другие улучшения, например поддержка русского языка в именах и параметрах XML-тегов и др.
Evgeniy
Парни, вы чаго почту не проверяете? (mailbox@estetic-design.ru)
Вам что клиенты не нужны?
#
Evgeniy
Grin
Evgeniy, я тебе уже написал
Sergiy S. Tkachenko
Спасибо за статью, а то я сам всё разукрашиваю.
Зоя
подсветка це круто!!
alexpts
Давно ставил какой-то плагин для wordpress, но он просто "вешал" мой блог, потом решил забыть про эту идею. Нужно попробывать ваш вариант. Думаю, получится.
Piks
Кажется, статья устарела. По крайней мере плагин для WordPress Syntax Highlighter Evolved (в основе которого лежит скрипт Syntax Highlighter) не генерирует невалидного html

Новый комментарий

как выглядит какой тег
жирный текст <b>жирный текст</b>
курсивный тект <i>курсивный тект</i>
зачеркнутый текст <s>зачеркнутый текст</s>
подчеркнутый текст <u>подчеркнутый текст</u>
ссылка <a href="адрес">ссылка</a>
function foo() { ... }
<pre><code>function foo() { ... } </code></pre>
разрешенные теги или посмотреть как будет выглядеть
как выглядит какой тег
жирный текст <b>жирный текст</b>
курсивный тект <i>курсивный тект</i>
зачеркнутый текст <s>зачеркнутый текст</s>
подчеркнутый текст <u>подчеркнутый текст</u>
ссылка <a href="адрес">ссылка</a>
function foo() { ... }
<pre><code>function foo() { ... } </code></pre>
разрешенные теги или посмотреть как будет выглядеть

metin2 pvp metin2 pvp serverler pvp serverler