highlight_js

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

Ссылки

Похожие публикации:

  1. highlight.js 5.9
    Решение для подсветки кода на стороне клиента highlight.js обновилось до версии 5.9 Что нового Андрей Фёдоров описал язык Lua давний...
  2. Многострочные переменные в JavaScript
    В многих языках программирования есть heredoc-синтаксис для создания многострочных переменных, содержащих как одинарные кавычки, так и двойные. В JavaScript же...
  3. CSS3 PIE 1.0 beta 3
    Вышла новая бета перспективной библиотеки, предназначенной для эмуляции отсутствующей в IE поддержки CSS3. Плюшки В четыре раза быстрее чем beta...
  4. PIE 1.0 beta 4
    PIE – скрипт (.htc-файл либо JavaScript-файл), позволяющий браузерам Internet Explorer 6-8 отрисовывать наиболее полезные CSS3 красивости: градиенты, тени, скругленные уголки....

Теги: ,

Один комментарий

  1. LuxCore:

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

Оставить комментарий

При написании кода в комментариях вы можете использовать Zen Coding для быстрого ввода HTML.

Необходимо вывезти мусор? Звоните: вывоз тбо. Продажа мусоровозов. . специализируемся - лифт монтаж, обслуживание лифтов . покупка и ремонт сварочника - сварочное оборудование.