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 новых языка:
- Haskell авторства Джереми Халла
- Erlang в двух видах — модуль и REPL — коллективного авторства Николая Захарова, Дмитрия Ковеги и Сергея Игнатова
- Objective C от Валерий Хиоры
- Vala от Антоно Васильева
Общее количество языков таким образом достигло 40!
Кроме того, два старых языка — HTML и CSS — подверглись радикальному изменению, так как два отдельных определения HTML и XML не имеют смысла их объединили в одно. А заодно выкинуты длинные списки ключевых слов из HTML и CSS, потому что синтаксис обоих языков задуман расширяемым и не зависит от конкретных ключевых слов. Теперь названия тегов и атрибутов раскрашиваются всегда, даже если они нестандартные.
Самое приятное, что выкидывание ключевых слов вместе с переходом на новый синтаксис позволило новой версии библиотеки быть меньше, даже с учётом четырёх совершенно новых языков!
Инфраструктура
Переезд на GitHub себя вполне оправдал: появились новые контрибьюторы
Ссылки
- Официальный релиз
- Проект на GitHub. Исходники, тулзы, тесты.
- Полная упакованная библиотека. 90 КБ, все языки.
- Упакованная версия с 12 популярными языками. 26 КБ, содержит HTML/XML, Javascript, CSS, PHP, Ruby, Perl, Python, C++, C#, Java, SQL, Bash.
- Архив стилей. Для удобства запаковал отдельно.
Источник: https://www.kobzarev.com/programming/highlight-js-6-0-beta/