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 себя вполне оправдал: появились новые контрибьюторы

Ссылки

Источник: https://www.kobzarev.com/programming/highlight-js-6-0-beta/

Михаил Кобзарёв

Суровый русский тимлид. Жил в Магадане, в офисе московских веб студий и в Тульской деревне. Виртуозно знает WordPress, PHP, ООП, Vue.js и вот это вот все. Делает крутые высоконагруженные сайты, поэтому уже почти захватил весь рынок WordPress разработки в России. Не дает никому делать сайты без спроса. Ведет блог о разработке, дайджест в телеграмме и в ВК. Любит сиськи, баню и радиоэлектронику. 100% патриот (но это не точно). Тролль 542 уровня. Ездит в отпуск раз в 5 лет.

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

%d такие блоггеры, как: