-
Поставил пятерку и вдруг обнаружил что подсветка перестала работать. Заглянув в код увидел что injectScripts убран, и схемы надо грузить отдельно. Сам для себя решил проблему вернув injectScripts (убрав из нее заморочки с дефолтными схемами).
И, собственно, сам вопрос и пожелание: чем была плоха подгрузка схем, и может все-таки вернуть ее? -
Чем она плоха я как-то подробно описывал: http://softwaremaniacs.org/blog/2008/10/14/building-highlight-js-with-languages/
Тем не менее, ваша задача вполне решается так:
<script src="highlight.pack.js"></script> <script src="custom_language.pack.js"></script> <script>hljs.initHighlightingOnLoad();</script>Самому хайлайтеру достаточно, чтобы ваш язык просто был добавлен в hljs.LANGUAGES, теперь никаких действий, чтобы его "активировать", не надо. Вот что надо — это пожать ваш язык той же тулзой, что и сама библиотека, чтобы названия переменных совпадали. Я, правда, виноват — не включил ее в скачиваемый архив. Включу в следующей версии. А пока можно забрать ее из исходников.
Если сжимать не хочется (я понимаю, что не всем интересно с этим возиться), то можно использовать и нежатый файл, но тогда и саму библиотеку и все остальные языки тоже надо будет подключать нежатыми.
-
Тем не менее, ваша задача вполне решается так:Это ясно )) Просто в нескольких местах ковырять шаблоны не хотелось. Быстро поправить саму либу, пока руки не дойдут этим заняться.
Прочел обсуждение по ссылке, желание объединить все в один скрипт понятно, но обратной совместимости нет, хотя ведь можно было и оставить injectScripts, подгружая только тогда, когда нужной схемы нет (в смысле смотреть hljs.LANGUAGES.<required scheme>), мне кажется это не сломало бы ничего. И код injectScripts копеечный.
Но это не критично (думаю уже не критично:-)), и на новый односкриптовый вариант наверное перейду.
PS.
Спасибо за хороший скрипт )) -
хотя ведь можно было и оставить injectScripts, подгружая только тогда, когда нужной схемы нет
Это бы не спасло обратную совместимость. Ради большого сжатия я переименовываю атрибуты в описании языков. А значит, нежатый язык не будет работать с жатой библиотекой (и наоборот). Поэтому основное несовместимое изменение именно это — язык придется сжимать. А для подключения injectScript просто не нужен уже.
Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.
