Новая большая версия highlight.js 3.0 увидела свет!
Большая она в первую очередь потому, что highlight.js разросся и стал модульным. Теперь, при указании списка используемых языков только эти языки динамически подгружаются в браузер.
Он (скрипт) давно уже напрашивался на разделение, потому что 35 КБ уже начинают вызывать вопросы, особенно у тех, кому из десятка языков нужно только один-два. А поводом в итоге стало то, что Константин Евдокименко с проекта RibKit сделал подсветку для языков RenderMan Shading Language и RenderMan Interface Bytestream. Меня всегда очень радуют такие моменты, когда к проекту добавляются вещи, о которых я сам и подумать никогда не мог. Так работает open source!
Однако очевидно, что языки эти довольно редки, и я понял, что 40 КБ — это уже слишком много. Поэтому скрипт взялся облегчить:
В итоге ядро скирпта занимает 11 КБ (несжатых).
Кроме того, с версии 2.9 накопился очередной набор улучшений эвристики и исправлений корректности. В частности, наконец стало корректно обрабатываться бэкслешное экранирование в строках Си-подобных языков.
Подключение и использование не изменилось практически никак, за исключением маленькой детали. Функция initHighlighting, которая когда-то очень давно использовалась для инициализации вместо initHighlightingOnLoad больше не работает. Поэтому если кто ее использует — поменяйте.
В любом случае всех призываю обновляться!
Комментарии: 12
15.04.07 22:22
Интересная идея. Особенно понравился метод поиска url'а с плагинами поддержки языков :)
15.04.07 23:27
А плагин проапдейтился? :)
15.04.07 23:52
А что там в плагине апдейтить? В плагине только css и сам главный js-файл подключается :)
16.04.07 00:11
про document.write
если нет возможности загрузить нужные языки другим образом, то это может создать некоторые проблемы при интеграции. Вернее, с одной стороны их будет меньше, потому что все работает само. С другой стороны, применять к ним на сервере такие штуки, как чистка и склеивание в один файл, может стать труднее. Я как раз недавно столкнулся с этой проблемой у tinyMCE.
16.04.07 05:54
Отличная новость. Качаем!
16.04.07 06:36
Насколько я помню, другие способы запихивания
<script>в DOM сильно отличаются у разных браузеров, и скрипты фактически надо eval'ить вручную. Кроме того, у script'aculo.us'а в комментариях написанно, что Safari им удалось заставить работать только с document.write.Но что интересно, склеиванию это не сильно мешает. Можно все файлы затолкать внутрь highlight.js обратно, а дописываемые
<script>будут просто звать несуществующие файлы и на этом успокаиваться.16.04.07 10:01
Да, согласен с arty. Лучше вместо document.write вставлять скрипты DOM-методами - createElement, appendChild etc.
16.04.07 10:04
Попробовать по крайней мере стоит, а там разберешься, где что не работает - тоже полезно.
17.04.07 15:38
Попробовать сделать через DOM — значит пустить по минному полю конечных пользователей редких броузеров. А уж они , не увидев расцветки, вряд ли найдут куда писать о баге.
И чем всё же плох document.write (кроме несовместимости с XHTML) ?
20.04.07 09:32
Иван, спасибо за плагин. Но не смог подключить его к Wordpress (последнему). Плагин активировал в админке. Вызов джаваскрипта в хедере вставил. В тексте сообщения пишу
Но ничего не подсвечивается.. Помогите, пожалуйста.
20.04.07 11:57
У меня для highlight.js есть форум: http://softwaremaniacs.org/forum/viewforum.php?id=6
Пожалуйста, напишите туда, только лучше сразу со ссылкой на страницу, где оно не работает. Попробуем разобраться.
18.05.07 21:38
Ещё одна реализация подсветки кода, теперь от Гугла :-), пример: http://google-code-prettify.googlecode.com/svn/trunk/tests/prettify_test.html .