Страница 1 из 1
[PHP] подсветка кода
Добавлено: 2008-09-13 20:36:15
zg
Никто не баловался скриптами для подсвекти кода php/html? В PHP есть встроенные функции для подсветки, но они мягко говоря

убогие.
Re: [PHP] подсветка кода
Добавлено: 2008-09-13 22:00:06
Alex Keda
зато прсер встроенный юзается

))
быстро до безобразия....
======
я баловался - но я шелл скрипты подсвечивал...
тяжело всё это и муторно до безобразия....
Re: [PHP] подсветка кода
Добавлено: 2008-09-14 7:12:06
zg
у встроенного мне не нравится, что там подсветка идёт только php и то какая-то странная...
да просто вчера в очередной раз сел писать парсер.... и написал: подсветка php, html, css, js, phpDoc. Примерно так выглядит
http://zlobnygrif.fatal.ru/test/example.php , вот и стало интересно как у других сделано. Порыскал в нете, ничего толком не нашёл.
Я и до этого реализовывал парсер, но на PHP4 и там была подсветка только PHP. Тот парсер был куда сложнее, этот настолько прост, что просто безобразие какое-то.
Re: [PHP] подсветка кода
Добавлено: 2008-09-14 10:51:55
Alex Keda
Код: Выделить всё
Время работы: 0.899 сек.
Памяти ушло: 525 КилоБайт
Объём текста: 2 247 байт(а)
некисло....
память как считаешь?
Re: [PHP] подсветка кода
Добавлено: 2008-09-14 11:12:00
zg
время работы скачет от сотых до полуторы секунд в зависимости от нагрузки на сервер, а память считаю memory_get_peak_usage() .
вчера на фатале
http://forum.fatal.ru/viewtopic.php?f=8&p=57066#p57066 админ запустил мой скрипт где-то у себя, дак на обработку 180кб исходного текста ушло менее двух секунд...
Re: [PHP] подсветка кода
Добавлено: 2008-09-14 21:56:20
zg
Re: [PHP] подсветка кода
Добавлено: 2008-09-15 7:45:57
Alex Keda
Код: Выделить всё
Предупреждение: Элемент доступен по идентификатору/имени в глобальной области видимости. Используйте вместо этого соответствующий стандарту W3C метод document.getElemenById().
Источник: http://anton-pribora.ru/site/hl.php
Строка: 291
Re: [PHP] подсветка кода
Добавлено: 2008-09-15 8:44:42
zg
это наверное фф ругается... почему-то фряшный и виндовые фаерфоксы различаются...
проверь должно работать
Re: [PHP] подсветка кода
Добавлено: 2008-09-15 10:59:28
ev
есть еще вариант подсвечивать через JS
таким образом сервер не нагружается (парсится на стороне клиента), да и использовать удобно
Re: [PHP] подсветка кода
Добавлено: 2008-09-15 11:19:27
zg
у гугля видел такое... но честно говоря не очень красиво.. Если можешь предложить вариант, показывай

просто пхп мне роднее чем js, хотя сделать впринципе можно
Re: [PHP] подсветка кода
Добавлено: 2008-09-15 11:25:01
ev
Re: [PHP] подсветка кода
Добавлено: 2008-09-15 12:10:59
zg
Скрипт на этой странице привёл к перегрузке KHTML. Если он продолжит работать, другие приложения будут отзываться медленнее.
Прервать работу скрипта?
посмотрел скрипт... у меня первая реализация была такой. На такой логике моего функционала не сделать... Хотя не спорю, проект интересный. А ещё есть подобные проекты?
UPD: поковырял скрипт, вот что у меня получилось через highlight.js
http://zlobnygrif.fatal.ru/test/hljs.html против
http://zlobnygrif.fatal.ru/test/example.php
Re: [PHP] подсветка кода
Добавлено: 2008-09-15 20:23:51
ev
так вроде внешний вид можно настраивать
так же как и добавлять новые языки
Re: [PHP] подсветка кода
Добавлено: 2008-09-15 21:56:59
zg
в том и проблема, что язык только один, если делать подсветку html, то ни css, ни js, ни php не будут подсвечены корректно, в примере это хорошо видно. Это самое узкое место в подобной реализации.
Re: [PHP] подсветка кода
Добавлено: 2008-09-16 4:22:35
krilya
highlight.js умеет подсвечивать "вложенные языки", о чем говорит сам
авторВложенные языки. Я люблю повторять, что highlight.js -- это не тупой набор регулярок, а нормальный парсер. В развитие этой мысли я научил его теперь раскрашивать языки, которые находятся внутри другого языка. В частности сейчас реализована раскраска CSS и Javascript внутри HTML'ного кода.
ps. еще можно посмотреть
GeSHi
Re: [PHP] подсветка кода
Добавлено: 2008-09-16 9:12:04
zg
krilya писал(а):highlight.js умеет подсвечивать "вложенные языки", о чем говорит сам автор
он это писал в марте, пол-года прошло, а её статус так и не перешёл в релизы....
krilya писал(а):ps. еще можно посмотреть GeSHi
оооо

классная хреновина, именно такое мне интересно, потестю отпишусь

Re: [PHP] подсветка кода
Добавлено: 2008-09-16 9:29:47
krilya
zg писал(а):он это писал в марте, пол-года прошло, а её статус так и не перешёл в релизы....
у вас неактуальная информация
highlight.js 4.0 (релиз)
p.s. обратите внимание на дату новости
Re: [PHP] подсветка кода
Добавлено: 2008-09-16 10:09:30
zg
krilya писал(а):у вас неактуальная информация highlight.js 4.0 (релиз)
да я его вообще первый раз вижу, скачал по первой ссылке, вставил пример в "экспортёр" и получил подсвеченный

код
в ридми написано следующее
Код: Выделить всё
## Contacts
Version: 4.2.1
URL: http://softwaremaniacs.org/soft/highlight/en/
Author: Ivan Sagalaev (Maniac@SoftwareManiacs.Org)

хз где он там чего добавил... если найдёшь плз прогони через него
http://zlobnygrif.fatal.ru/test/example.php и если есть возможность выложи результат

может я и впрвду предвзято к нему отнёсся
Re: [PHP] подсветка кода
Добавлено: 2008-09-16 14:49:53
zg
гмм.. потестил геши, та ещё хреновина

почему-то он упорно отказывается подсвечивать html css и php одновременно...

по быстродействию на реальном хостинге примерно сопоставимо, но на домашнем серваке разница почти 3 секунды при обработке 184кб текста (4.5 zg против 7.5 geshi). Ну и памяти геши кушает примерно в три раза больше, хотя тут на буферизацию примерно треть уходит.
http://anton-pribora.ru/parsers/geshi/zgHTML.php
Код: Выделить всё
Время работы: 2.220 сек.
Памяти ушло: 1 249 КилоБайт
Объём текста: 184 812 байт(а)
http://anton-pribora.ru/parsers/geshi/geshiPHP.php
Код: Выделить всё
Время работы: 2.100 сек.
Памяти ушло: 4 432 КилоБайт
Объём текста: 184 812 байт(а)
гуд,

ещё проекты есть?
Re: [PHP] подсветка кода
Добавлено: 2008-09-17 5:23:27
krilya
глянул форум про highlight.js, судя по всему для подобного случая нужны дополнительные манипуляции

попробуйте форум почитать, самому разбираться если чесно желания особого нет, других хайлайтеров не знаю
при подкючении highlight.js можно указывать определяемые языки для ускорения работы
Код: Выделить всё
hljs.initHighlightingOnLoad('html', 'css');
может и в GeSHi есть что-то подобное..
Re: [PHP] подсветка кода
Добавлено: 2008-09-17 8:42:44
zg
нее, ковырять не хочется...

я тут в пеаре какую-то функцию нарыл, parse_php называется или как-то так

ща буду разбираться
