highlight_js
Время для прочтения: 0 мин. 51 сек.

highlight.js 6.0 beta

Highlight.js нужен для подсветки синтаксиса в примерах кода в блогах, форумах и вообще на любых веб-страницах. Пользоваться им очень просто, потому что работает он автоматически: сам находит блоки кода, сам определяет язык, сам подсвечивает.

Вышла новая бета-версия. Ставьте к себе на сайты, ловите баги, пишите в рассылку или в баг-трекер.

Синтаксис

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

Было:


defaultMode: {
 contains: ['string'],
 modes: [
  {
   className: 'string',
   begin: '"', end: '"',
   contains: ['escape']
  },
  {
   className: 'escape', noMarkup: true,
   begin: '\\.', end: hljs.IMMEDIATE_RE
  }
 ]
}

Стало:


defaultMode: {
 contains: [
  {
   className: 'string',
   begin: '"', end: '"',
   contains: [{begin: '\\.'}]
  }
 ]
}

Поменялось вот что:

  • определения режимов modes и их вложенности contains слились в одну структуру
  • hljs.IMMEDIATE_RE стал дефолтным значением для регулярок
  • вместо указания className одновременно с noMarkup стало можно не указывать className

По большей части код стал более красивым и читаемым, хотя и не без изъянов: прямо сейчас определение Руби насчитывает десять переменных для строк, которые таскаются хвостом по всему файлу :-).

Тулзы

Точнее, теперь — «тулза». Два скрипта, которые паковали и собирали языки в финальную сборку, стали одним, которым стало удобней пользоваться, в том числе и при отладке.

Языки

В этой версии 4 новых языка:

Общее количество языков таким образом достигло 40!

Кроме того, два старых языка — HTML и CSS — подверглись радикальному изменению, так как два отдельных определения HTML и XML не имеют смысла их объединили в одно. А заодно выкинуты длинные списки ключевых слов из HTML и CSS, потому что синтаксис обоих языков задуман расширяемым и не зависит от конкретных ключевых слов. Теперь названия тегов и атрибутов раскрашиваются всегда, даже если они нестандартные.

Самое приятное, что выкидывание ключевых слов вместе с переходом на новый синтаксис позволило новой версии библиотеки быть меньше, даже с учётом четырёх совершенно новых языков!

Инфраструктура

Переезд на GitHub себя вполне оправдал: появились новые контрибьюторы

Ссылки

Для вставки кода используйте HTML-теги
<pre><code class="php">ваш код</code></pre>

Добавить комментарий

Такой e-mail уже зарегистрирован. Воспользуйтесь формой входа или введите другой.

Вы ввели некорректные логин или пароль

Извините, для комментирования необходимо войти.

1 комментарий

по хронологии
по рейтингу сначала новые по хронологии

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