1. Denis Usenko

    21.01.2009

    0 ↑
    0 ↓
    Поставил пятерку и вдруг обнаружил что подсветка перестала работать. Заглянув в код увидел что injectScripts убран, и схемы надо грузить отдельно. Сам для себя решил проблему вернув injectScripts (убрав из нее заморочки с дефолтными схемами).
    И, собственно, сам вопрос и пожелание: чем была плоха подгрузка схем, и может все-таки вернуть ее?
  2. Иван Сагалаев

    21.01.2009

    0 ↑
    0 ↓

    Чем она плоха я как-то подробно описывал: 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, теперь никаких действий, чтобы его "активировать", не надо. Вот что надо — это пожать ваш язык той же тулзой, что и сама библиотека, чтобы названия переменных совпадали. Я, правда, виноват — не включил ее в скачиваемый архив. Включу в следующей версии. А пока можно забрать ее из исходников.

    Если сжимать не хочется (я понимаю, что не всем интересно с этим возиться), то можно использовать и нежатый файл, но тогда и саму библиотеку и все остальные языки тоже надо будет подключать нежатыми.

  3. Denis Usenko

    22.01.2009

    0 ↑
    0 ↓
    Тем не менее, ваша задача вполне решается так:
    Это ясно )) Просто в нескольких местах ковырять шаблоны не хотелось. Быстро поправить саму либу, пока руки не дойдут этим заняться.
    Прочел обсуждение по ссылке, желание объединить все в один скрипт понятно, но обратной совместимости нет, хотя ведь можно было и оставить injectScripts, подгружая только тогда, когда нужной схемы нет (в смысле смотреть hljs.LANGUAGES.<required scheme>), мне кажется это не сломало бы ничего. И код injectScripts копеечный.
    Но это не критично (думаю уже не критично:-)), и на новый односкриптовый вариант наверное перейду.

    PS.
    Спасибо за хороший скрипт ))
  4. Иван Сагалаев

    22.01.2009

    0 ↑
    0 ↓

    хотя ведь можно было и оставить injectScripts, подгружая только тогда, когда нужной схемы нет

    Это бы не спасло обратную совместимость. Ради большого сжатия я переименовываю атрибуты в описании языков. А значит, нежатый язык не будет работать с жатой библиотекой (и наоборот). Поэтому основное несовместимое изменение именно это — язык придется сжимать. А для подключения injectScript просто не нужен уже.

Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.