Highlight.js нужен для подсветки синтаксиса в примерах кода в блогах, форумах и вообще на любых веб-страницах. Пользоваться им очень просто, потому что работает он автоматически: сам находит блоки кода, сам определяет язык, сам подсвечивает.
Этот автоматизм не только удобен, но и делает возможным подсветку кода, даже если текст набирается каким-нибудь синтаксисом вроде Markdown, где нет возможности легко и просто проставить нужный class для HTML-элемента кода.
Библиотека знает 46 языков и поставляется с 18 стилевыми темами.
Программисты и дизайнеры приглашаются принять участие в разработке.
версия 6.2
Новости
-
07.04.2012
Версия 6.2
За время с предыдущей версии активность вокруг highlight.js чувствительно возросла! Появилось девять новых контрибьюторов, зажило обсуждение в рассылке, у основного бранча на github количество фолловеров перевалило за 350. Вот наиболее заметные результаты этой активности:
- 5 (пять!) новых языков: Rust, ActionScript, CoffeeScript, MatLab и экспериментальный markdown. Спасибо Андрею Власовских, Александру Мядзелю, Дмитрию Нагирняку, Олегу Ефимову, Денису Бардадыму и Джону Крепецци.
- 2 новых темы: Monokai авторства Луиджи Мазелли и имитация стиля известного хайлайтера Google Code Prettify от Аахана Криша.
- Несчётное количество фиксов корректности и рефакторинг кода, в основном стараниями Олега Ефимова и Евгения Степанищева.
-
23.09.2011
Версия 6.1 — Solarized
Джереми Халл воплотил мою давнюю мечту — спортировал для highlight.js стилевую тему Solarized, знаменитую тем, что в ней чётко проработаны вопросы контрастности и восприятия в соответствии с мудрёной цветовой теорией. Теперь она доступна для highlight.js в обоих вариантах — светлом и тёмном.
Также добавился ещё один оригинальный стиль — Arta. Его автор pumbur ведёт на GitHub'е сильно модифицированный порт highlight.js.
-
21.05.2011
Версия 6.0
Новая большая версия хайлайтера с сильно переписанным синтаксисом, благодаря чему она стала меньше, а языков поддерживает больше!
Новые языки:
- Haskell авторства Джереми Халла
- Erlang в двух видах — модуль и REPL — коллективного авторства Николая Захарова, Дмитрия Ковеги и Сергея Игнатова
- Objective C от Валерий Хиоры
- Vala от Антоно Васильева
- Go от Степана Кунцьо
Также новая версия стала немножко быстрее, и в ней исправлены многие давнишние мелкие ошибки.
Обзор нового синтаксиса для разработчиков можно прочитать в посте про выход бета-версии.
P.S. Новая версия пока ещё не доступна на CDN Яндекса, но всегда можно скачать собственную копию.
-
13.10.2010
Версия 5.14
Исправлены ошибки в определении и релевантности HTML и XML, внесённые предыдущим рефакторингом.
Также test.html стал показывать кроме определившегося языка ещё ближайшего конкурента по релевантности.
-
05.10.2010
Версия 5.13
Минувшие выходные начались с пары простых добавлений в существующие языки, а закончились большим рефакторингом кода, который принёс приятные изменения ещё и разработчикам языков.
Пользователям
- В описание C++ добавлены ключевые слова будущего стандарта C++ 0x.
- В описание HTML добавлены новые теги HTML 5.
- CSS-стили теперь используют одинаковые отступы, и в них пропали выпадающие подписи с определившимся языков.
- Игорь Кальницкий описал два новых языка: CMake и VHDL.
Таким образом общее количество языков, которые знает highlight.js достигло 35.
Исправления:
- Блоки
<pre>теперь не теряют пользовательские классы, которые были на них до расцветки. - Расцветка блоков, заданных не тегом
<pre>, стала более корректной: теперь хайлайтер не подменяет их на собственный контейнер, а меняет только содержимое. - Мелкие исправления браузерной совместимости и эвристики.
Разработчикам
Самое большое изменение -- возможность описывать подрежимы языков прямо в
contains, не заводя именованного режима в основном списке:contains: [ 'string', 'number', {begin: '\\n', end: hljs.IMMEDIATE_RE} ]Это удобно для служебных режимов, использующихся только в одном месте для задания структуры парсинга. Обратите внимание, что у таких режимов часто отсутствует className -- это автоматически означает, что для них не будет генерироваться отдельный
<span>в разметке, аналогично свойствуnoMarkup: true. Все существующие языки были отрефакторены с использованием этого подхода.Тестовый файл test.html теперь на самом деле стал тестом: кроме подписывания определившегося языка под кусочком кода, он проверяется на соответствие тому, который задуман. Общая статистика тестирования выводится сверху всех языков.