Jump to content

Подсветка синтаксиса кода


ShumNo
 Share

Recommended Posts

Ребят кто сталкивался и пробовал подсвечивать код, особенно, если это было на друпале

Вариантов 2 либо подсвечивать на стороне сервера либо на стороне клиента

Критические минусы подсветки на сервере - нагрузка возрастает крайне сильно (модуль GeSHi) растет примерно в 2 раза

Критические минусы на стороне клиента - код надо переделывать то есть "<" менять на "<" "& lt;" (не ставится тут такой значок)

вопросы:

Как можно код достаточно быстро преобразовывать из "<" в "& lt;" ?

Есть ли решения где преобразовывать "<" в "& lt;" не надо совсем, а выделить там тегами <code> или <pre> или это в принципе нельзя?

И чисто гипотетически можно кто знает плагин где код был бы помещен теги скажем <code> "<" а система выдала бы уже как код "& lt;"

Если есть варианты еще проще - поделитесь

Спасибо :)

Edited by ShumNo
Link to comment
Share on other sites

На друпал геши, как и любой фильтр даёт нагрузку при реблиде компилята CSS и при сохрании ноды. Дальше всё это кешируется и работает отлично. Если хотите нивелировать нагрузку совсем, то просто ограничьте набор фильтров и сделайте свой CSS для подсветки, при этом настройте модуль только на добавление классов.

Link to comment
Share on other sites

Я больше сторонник подсветки на стороне клиента, потому как больше использовал именно этот подход. Но соглашусь, что в Друпале все кэшируется и нагрузку можно снизить. Кстати, еще один недостаток серверной подсветки это увеличение объема страницы.

Link to comment
Share on other sites

Vlad, я одно время размечал через code и всякие теги типа b для атрибутов, strong для элементов и т.д. Но это жуткий геморой т.к. весь код приходилось писать через спец символы. Очень медленно и не наглядно.

Код да ... раздувается порядком, но зато маленькие пассажи конструкций изумительно индексируются. Тут span хорошо работает.

Edited by Shift-Web
Link to comment
Share on other sites

Вазап ))) Буду курить )))) Спасибо.

Но наверное буду думать как модифицировать под span пассажное разделение ибо на псевдо-маркапе писать очень медленно .... JS тяжеловат конечно, к сожалению

Edited by Shift-Web
Link to comment
Share on other sites

  • 2 years later...

Почти 3 года назад я об это писал и снова необходимо сделать подсветку кода на друпале. Тогда я это сделал на стороне сервера с GeSHi. Но время не стоит на месте и все меняется. Быть может и в этом вопросе есть изменения. Собсна чем GeSHi не то чтобы не устраивает, но хочется оптимизации

Причины 2:

1. так как я использую друпал, то GeSHi в моем случае модуль, а вернее 2 модуля так как придется еще и Libraries ставить, а как известно чем меньше модулей тем спокойней сон.

2. раздутие кода. не знаю как с точки зрения seo ПС смотрят на код где почти каждый символ в теге span то есть не считает ли что это мусор или спам или еще какое чудо-юдо. Учитывая собственный опыт - страницы индексируются вроде бы нормально, но много кода я не использовал, а планирую.

Вот и хочется перегрузить всю эту обработку на головы компьютеры пользователей с помощью какого-нибудь чуда js чтоб весило кб 10 :)

Но возможно есть какие-то подводные камни? Поделитесь опытом :)

Link to comment
Share on other sites

Штука мощная этот CodeMirror, практически возможности десктопного редактора и даже в некоторых моментах чуть больше, но 300 кб ...

вот такой еще нешел... steamdev.com/snippet/ но не маленький, но что-то он не обновляется уже давно... может и не надо ему и так работает

Edited by ShumNo
Link to comment
Share on other sites

Вот из-за слова "может" я лучше выберу первый вариант. )) Кстати Codemirror весит не 300кб, без аддонов он весит 60кб.

Но он всеже именно редактор с подсветкой.

Для подсветки есть ещё http://alexgorbatche...taxHighlighter/ и http://softwaremaniacs.org/soft/highlight/

Edited by wwt
Link to comment
Share on other sites

странно в Codemirror основной js весит 222 кб и нет ни каких других + подключается еще около 5 js во всяком случае в демке

как раз посмотрел http://softwaremania...soft/highlight/ удобно что можно выбрать только интересующие языки - выбрал 3 - внимание! js весит всего 9 kb так же удобно, что скрипт несмотря на 9 kb можно грузить с яндекса. одним словом пока он фаворит :)

Edited by ShumNo
Link to comment
Share on other sites

перепробовал кучу вариантов и остановился на следующем для drupal

маленький модуль Code Filter который преобразует код для его отображения на странице

и подсветка на стороне клиента маленький js скрипт highlight

в общем доволен. не хотел использовать лишних модулей и искал скрипты, которые работают с textarea но в итоге либо этот крипт настолько монстроподобен, что весит чуть ли не больше чем сайт либо ему требуется переделывать код в спец символы. Так что маленький модуль все же пришлось поставить.

Для друпала это нормальная ситуация когда установлено 30+ модулей, просто думал, что в этом вопросе можно обойтись без них, а нет не обошлось

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy