Javascript-форум (https://javascript.ru/forum/)
-   Сайт Javascript.ru (https://javascript.ru/forum/site/)
-   -   Перевод подсветки на highlight.js (https://javascript.ru/forum/site/7071-perevod-podsvetki-na-highlight-js.html)

e1f 13.06.2010 18:34

Да, полет уже тоже нормальный :)
Большое спасибо.

Kolyaj 13.06.2010 21:22

А как word wrap отключить?

Илья Кантор 14.06.2010 00:17

Что отключить? Где?
Если в коде - сейчас не отключается. Имхо там если что-то еще и стоит сделать, то добавить глифы с индикацией переноса строк.

Гориз. прокрутка зло..

Kolyaj 14.06.2010 08:56

Цитата:

Сообщение от Илья Кантор
Гориз. прокрутка зло..

word wrap зло, ибо портит все отступы, делая из кода кашу.

B@rmaley.e><e 24.08.2010 19:04

SyntaxHighlighter обновился до 3-ей версии.

bevalorous 19.10.2012 09:50

Не работает подсветка кода при открытии локально сохраненной страницы
 
При открытии локально сохраненных страниц учебника не работает подсветка кода.
Firebug при этом показывает следующее сообщение в консоли ошибок:
Код:

ReferenceError: docRoot is not defined
Ошибка возникает только для страниц, которые были скачаны оффлайн-браузером Teleport Pro, т.к. там они сохраняются "как есть". Браузер Firefox сохраняет страницу по-другому, - меняя ее код, - и ошибка не появляется.

Ошибка вызвана тем, что не происходит правильная инициализация одного из классов SyntaxHighlighter - SHStrings. Конкретный участок кода, вызывающий ошибку, находится в файле shCore.js библиотеки SyntaxHighlighter, строки 40 и 41:
Код:

showhtml:
location.protocol == 'file:' ?
docRoot+'/files/local/showhtml.html' :
'http://ru.lookatcode.com/showhtml',
showjs:
location.protocol == 'file:' ?
docRoot+'/files/local/showjs.html' :
'http://ru.lookatcode.com/showjs',

Точнее, ошибку вызывает сжатая версия этого файла, которая лежит в папке /files/js, но ведь она, скорее всего, создается у вас автоматически?

Как видите, переменная docRoot нигде не инициализирована, и ошибка возникает только при открытии локального файла (location.protocol == 'file:'). Соответствующие файлы (showhtml.html и showjs.html) также отсутствуют на сервере.
Возможно, для устранения ошибки нужно обновить библиотеку SyntaxHighlighter, в последней версии (3.0.83) этот участок кода уже переработан и выглядит совершенно по-другому. Если я не ошибаюсь, ваш сайт использует SyntaxHighlighter версии 2.1.382, вышедшую около 2 лет назад.

Илья Кантор 19.10.2012 14:29

Старая версия хайлайтера лучше, поэтому используется она. Кроме того, на ней багфиксы и патчи мои.

Работа сайтов, скачанных при помощи телепорт или других качалок, не гарантуется, там не только эта проблема.

bevalorous 22.10.2012 09:09

Цитата:

Сообщение от Илья Кантор (Сообщение 211201)
Старая версия хайлайтера лучше, поэтому используется она. Кроме того, на ней багфиксы и патчи мои.

Работа сайтов, скачанных при помощи телепорт или других качалок, не гарантуется, там не только эта проблема.

Понимаю, что не гарантируется и что обновлять SyntaxHighlighter - не вариант. Но в данном случае ошибка совершенно точно возникает не по вине Teleport, а из-за того, что в режиме просмотра локального файла переменная docRoot не определена. Это ошибка в javascript-коде, и она проявляется и при сохранении страницы обычным браузером.

Если сохранить страницу локально в Opera, Chrome или IE8, при ее открытии возникает эта же самая ошибка, и подсветка не показывается как надо: все эти браузеры "спотыкаются" на неизвестной переменной docRoot и заканчивают выполнение скрипта (Chrome - продолжает). Firefox сохраняет страницу своим особым способом, выкидывая Javascript, и лишь поэтому ошибка при просмотре локально сохраненной страницы в нем не возникает.

Очень хороший учебник, примеры простые и понятные, указываются многие подводные камни :thanks: Скачал его себе целиком, а подсветка кода при локальном просмотре не работает :( У себя я эту ошибку заблокировал - достаточно оказалось просто закомментировать единственные два упоминания переменной docRoot в shCore.js, строки 40 и 41, - но вдруг кто-то еще наткнется на эту ситуацию и не сможет найти, в чем причина?

tenshi 22.10.2012 18:30

думаю было бы не плохо иметь такой учебник в chm формате, как для php.

nerv_ 05.11.2012 00:53

если написать $( и заключить в теги [js][//js] будет неожиданный результат :)


Часовой пояс GMT +3, время: 07:17.