[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: PHP Syntax Highlighter
jetistyum
Давайте поменяем подсветку синтаксиса, вобщем меня интересует не столько сама подсветка синтаксиса, сколько возможность линкования стандартных функция на php.net
пример нашел
http://lapin-blanc.net/wp-content/plugins/...ghter/test.html

http://qbnz.com/highlighter/examples.php?c...=browser-detect

и еще было бы неплохо сделать отдельно кнопочку в редакторе сообщений .... типа f()
которая бы делала ссылку на выбранную функцию на php.net

ой, надеюсь меня поймёт кто-то еще, кроме меня smile.gif





Спустя 42 минуты, 4 секунды (19.05.2009 - 01:36) waldicom написал(а):
Цитата
и еще было бы неплохо сделать отдельно кнопочку в редакторе сообщений .... типа f()
которая бы делала ссылку на выбранную функцию на php.net

телепат? Хотел сам предложить такое, должно быть довольно удобно.
А если встроить такое в парсер, чтобы он автоматически делал из функций ссылки, то это вообще держите меня семеро будет

Спустя 3 минуты, 9 секунд (19.05.2009 - 01:40) FatCat написал(а):
Если хором делать - охотно поучаствую.

Спустя 4 минуты, 19 секунд (19.05.2009 - 01:44) jetistyum написал(а):
Цитата

А если встроить такое в парсер, чтобы он автоматически делал из функций ссылки, то это вообще держите меня семеро будет

Ну вот, моя мысль здравой оказалась wink.gif

Цитата
Если хором делать - охотно поучаствую.


нивапрос .. думаю и остальные уважаемые люди не откажут
только завтра, предположительно вечером, а то голова не очень варит ужо .... а днем свет выключают на соседней улице - линию ремонтируют и у прова все оборудование загибается smile.gif) хотя .. пров.. сильно сказано ...

Спустя 18 минут, 27 секунд (19.05.2009 - 02:02) jetistyum написал(а):
и еще о нововведениях..


1.
хотелось бы такую кнопочку - блокирование темы ... чтобы заставлять юзера - топикстартера переоформить тему, заставить описать нормально название темы а не что-то типа "срочно присрочно помогите", "ничего не получаицо" ... чтобы тему мог разблокировать только кто-то из модераторов.... при успешном переоформлении... это существенно улучшило бы читаемость....

2. заставить переоформить тему когда например код не размечен спец. блоками кода..

3. не разрешать пользователям ниже "такого - то уровня" создавать ссылки в теме оцените дизайн... да вобщем и в других темах.. потому как много появляется ссылок просто рекламирующих ресурс...

4. запрещать незарегистрированным пользователям создавать темы, а только отвечать в созданных. (кто захочет ответ получить - зарегистрируется) ... либо, второй вариант, при создании темы незарег. пользователем сначала пробрасывать его на страницу с правилами, и кнопкой согласен... которая становится активной после 30 сек например.

5. поставить где-то на стартовой ссылку большими буквами на основные правила форума, которые должны быть изложены кратко (чтобы их читали, а не закрывали как EULA при установке программ) в несколько пунктов...

6. повесить на старт в блок "Второй текст на главную" блок рсс- новостей... какойнить, например тут есть много любителей хабра, я в том числе... либо вперемешку нескольких фидов.... и интереснее будет, и рыба уберется со стартовой, а то как-то смотрится, будто форум вообще не рабочий, а тестовый smile.gif)

7. подумать над написанием плагина, который будет на jabber отправлять сообщения с форума... например мне, если я хочу следить за новыми сообщениями.... *(jabber библиотек полно) ... хочу себе на форум такое присобачить, но руки не доходят, как вариант - обратный постинг через jabber в топик... smile.gif

8. сделать отдельный топик - вишлист... smile.gif



Спустя 1 минута, 45 секунд (19.05.2009 - 02:04) jetistyum написал(а):
это лишь варианты... отпишитесь кто что поддерживает, кто что не поддерживает и почему...

Спустя 1 час, 19 минут, 20 секунд (19.05.2009 - 03:23) kirik написал(а):
О, jetistyum взялся за порядок! Поддерживаю! cool.gif

1..., 2... - хорошие идеи, но пока наверное это не так важно.. Можно просто предупреждения провинившимся юзерам ставить - user posted image (на то мы и модераторы, чтобы за подобным следить smile.gif )

3... - а можно просто не делать линки линками, если у человека меньше какого-то кол-ва постов.

4... - полностью согласен с первым вариантом (когда не зарегистрированный пользователь может только отвечать в темах)

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

6... - неплохая идея, вот только я на главную захожу ровно один раз в день smile.gif В основном пасусь тут /index.php?act=Search&CODE=getnew

7... - вот это мне кажется лишним, ибо для этого сделаны RSS фиды, и RSS ридеры.

8... - надо! И там же можно распределять задачи smile.gif

Несколько слов про подСветку кода.. Мне кажется реализация на AJAX не совсем удачная, так как тут на одной странице форума может быть довольно много кода, и это будет не только занимать некоторое время, но еще и отжирать ресурсы у простого пользователя. Мне кажется будет лучше реализовать подсветку кода/функций примерно по такому алгоритму:
0 - имеем в наличии массив со всеми стандартными функциями (просто названия)
1 - сначала просто подсвечиваем в сообщении код в [ php] тэгах
2 - регулярками заменяем весь текст в сообщении соответствующий [a-z_](.*) на тот же текст + ссылка (при условии что эта функция находится в массиве стандартных, что и имел ввиду jetistyum)
3 - отдаем юзеру

собственно ничего нового и мегаумного тут нет (кстати над алгоритмом замены нужно еще подумать), но нужно же с чего-то начинать smile.gif

Спустя 3 часа, 41 минута, 23 секунды (19.05.2009 - 07:05) twin написал(а):
Я не ошибся в ассоциации jetistyum biggrin.gif

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

Спустя 2 часа, 15 минут, 3 секунды (19.05.2009 - 09:20) waldicom написал(а):
Цитата
1.хотелось бы такую кнопочку - блокирование темы ... чтобы заставлять юзера - топикстартера переоформить тему, заставить описать нормально название темы а не что-то типа "срочно присрочно помогите", "ничего не получаицо" ... чтобы тему мог разблокировать только кто-то из модераторов.... при успешном переоформлении... это существенно улучшило бы читаемость....

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

Цитата
2. заставить переоформить тему когда например код не размечен спец. блоками кода..

См. выше (плюс конечно писать в посте типа: пожалуйста пользуйтесь тегами)

Цитата
3. не разрешать пользователям ниже "такого - то уровня" создавать ссылки в теме оцените дизайн... да вобщем и в других темах.. потому как много появляется ссылок просто рекламирующих ресурс...

Мммм... А если человек пришел первый раз сюда? Ему надо будет набивать Х сообщений, чтобы его посмотрели. Тоже предлагаю повесить на шею модераторам (оценка реклама/не реклама). При спорных вопросах выяснять во внутреннем


Цитата
4. запрещать незарегистрированным пользователям создавать темы, а только отвечать в созданных. (кто захочет ответ получить - зарегистрируется) ... либо, второй вариант, при создании темы незарег. пользователем сначала пробрасывать его на страницу с правилами, и кнопкой согласен... которая становится активной после 30 сек например.

"...Либо второй вариант" мне кажется предпочтительнее

Цитата
5. поставить где-то на стартовой ссылку большими буквами на основные правила форума, которые должны быть изложены кратко (чтобы их читали, а не закрывали как EULA при установке программ) в несколько пунктов...

Отличная идея!

Цитата
6. повесить на старт в блок "Второй текст на главную" блок рсс- новостей... какойнить, например тут есть много любителей хабра, я в том числе... либо вперемешку нескольких фидов.... и интереснее будет, и рыба уберется со стартовой, а то как-то смотрится, будто форум вообще не рабочий, а тестовый smile.gif)

Супер!

Цитата
7. подумать над написанием плагина, который будет на jabber отправлять сообщения с форума... например мне, если я хочу следить за новыми сообщениями.... *(jabber библиотек полно) ... хочу себе на форум такое присобачить, но руки не доходят, как вариант - обратный постинг через jabber в топик... smile.gif

Тоже отлично, если кто-то возьмется.

Цитата

8. сделать отдельный топик - вишлист... smile.gif

Да, вишлист - \то самое главное smile.gif

Спустя 41 минута, 42 секунды (19.05.2009 - 10:02) FatCat написал(а):
Цитата (jetistyum @ 19.05.2009 - 02:02)
кнопочку - блокирование темы

"Закрыть тему" / "Открыть тему" - штатные функции модераторов.


Цитата (jetistyum @ 19.05.2009 - 02:02)
много появляется ссылок просто рекламирующих ресурс...

Да и пофигу. Они же через редирект.
Для поисковок это внутренняя ссылка.


Цитата (jetistyum @ 19.05.2009 - 02:02)
запрещать незарегистрированным пользователям создавать темы, а только отвечать в созданных.

Тут есть ньюанс...
Чем больше у нас топиков и чем меньше постов в каждом топике - тем лучше мы двигаемся в поисковках.
Чем больше однотипных топиков - тем лучше двигается эта тема в поисковках.


Цитата (jetistyum @ 19.05.2009 - 02:02)
повесить на старт в блок "Второй текст на главную" блок рсс- новостей... какойнить, например тут есть много любителей хабра

На главную ходят в основном боты.
Старики ходят на поиск новых сообщений, из поисковок приходят на внутренние.
Вот когда осилим штурмовать ВЧ - тогда нужно будет сильно перекраивать главную.
Но как временная мера - нет возражений.



Спустя 11 минут, 21 секунда (19.05.2009 - 10:13) FatCat написал(а):
Про подсветку синтаксиса...
В идеале нужно оформить функцией: получает код, ретурнит код с разметкой.
Сложность в том, что все входящие фильтруются функцией парсинга входящих и практически все спецсимволы заменяются метасимволами. Сейчас для пхп-кодов работает:
Код
 $php = str_replace("& #036;","$",$php);
 $php = str_replace("& quot;","\"",$php);
 $php = str_replace("& #092;","\\\\",$php);
 $php = str_replace("& lt;","<",$php);
 $php = str_replace("& gt;",">",$php);
 $php = str_replace("& #39;","'",$php);
 $php = str_replace("& #33;","!",$php);
 $php = str_replace("& amp;","&",$php);
 
 $code = stripslashes($php);
 $code="<?php\n".trim($code)."\n?>";

И все равно глючная конструкция...
Хотелось бы наподобие использованного для разметки sql:
Код
 $sql = preg_replace( "#(=|\+|\-|& gt;|& lt;|~|==|\!=|LIKE|NOT LIKE|REGEXP)#i"            , "<span style='color:orange'>\\1</span>", $sql );
 $sql = preg_replace( "#(MAX|AVG|SUM|COUNT|MIN)\(#i"                                    , "<span style='color:blue'>\\1</span>("    , $sql );
    $sql = preg_replace( "!(& quot;|& #39;|& #039;)(.+?)(& quot;|& #39;|& #039;)!i"              , "<span style='color:red'>\\1\\2\\3</span>" , $sql );

Спустя 2 часа, 14 минут, 11 секунд (19.05.2009 - 12:27) jetistyum написал(а):
1. для простой подсветки php синтаксиса можно использовать hilight_string() - стандартная функция пхп .... разве нет???
2. для более сложных серверных обработчиков подсветки синтаксиса есть
GESHI который написан на php .. работает на сервере и поддерживает стопиццот форматов подсветки в том числе и SQL
FAQ - http://qbnz.com/highlighter/faq.php

он умеет и ссылки вставлять тоже.. так что нужно ли писать свои парсеры????
на сколько я понял это самая распространенная библиотека подсветки синтаксиса.
Но я не настаиваю

а про ньюансы про кол-во топиков и прочее....
иногда нужно делать перевес от количества к качеству.

про закрыть - открыть - возьму на вооружение.... если остальные меня поддержат


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

Спустя 59 минут, 12 секунд (19.05.2009 - 13:26) FatCat написал(а):
Цитата (jetistyum @ 19.05.2009 - 12:27)
можно использовать hilight_string() - стандартная функция пхп .... разве нет???

Эта функция нестандартно работает, если в коде есть ошибки синтаксиса.


Цитата (jetistyum @ 19.05.2009 - 12:27)
GESHI который написан на php

Стремно...
Он писался для сайтов, а не для форумов. Что там как с безопасностью...


Цитата (jetistyum @ 19.05.2009 - 12:27)
а про ньюансы про кол-во топиков и прочее....
иногда нужно делать перевес от количества к качеству.

Несомненно. У нас форум для людей, а не для одной лишь индексации в поисковках. Нужно оптимальное соотношение.
Потому и предлагаю: дублирующие темы снабжать ссылкой на основную и закрывать. Но не удалять и не особо зверствовать с новичками, не читающими правила и не пользующимися поиском. Наша благожелательность в таком исполнении будет и инструментом продвижения в поисковках.

Спустя 27 минут, 20 секунд (19.05.2009 - 13:54) jetistyum написал(а):
Цитата
Стремно...
Он писался для сайтов, а не для форумов. Что там как с безопасностью...


С оффсафта:

Цитата
GeSHi started as an idea to create a generic syntax highlighter for the phpBB forum system, but has been generalised to this project.


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


Спустя 8 минут (19.05.2009 - 14:02) jetistyum написал(а):
+ посмотри
http://www.phpclasses.org/browse/package/1759.html

кто использует GESHI
довольно небезызвестные приложения....

Спустя 1 час, 42 минуты, 16 секунд (19.05.2009 - 15:44) FatCat написал(а):
Цитата
You need to be a registered user and log in to access this file.

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

Спустя 21 минута, 54 секунды (19.05.2009 - 16:06) Joker написал(а):
GESHI - Мне очень нравиться и подсветка настраиваеться в два счета. С безопасностью там всё ок))

Спустя 1 час, 44 минуты, 17 секунд (19.05.2009 - 17:50) FatCat написал(а):
Цитата (Joker @ 19.05.2009 - 16:06)
С безопасностью там всё ок))

Мей би.

Посмотрел, 2 проблемы бросились в глаза:
1. При первой же пробе вставки кода с ошибкой получил фатальную ошибку:
Свернутый текст
Warning: is_readable() [function.is-readable]: Stat failed for z:\home\fatcat\www\geshi\geshi\functionregex_php_tagphpinclude_oncegeshigeshiphpphpstr_replacephpphpstr_replacequotphpphpstr_replacephpphpstr_replaceltphpphpstr_replacegtphpphpstr_replacephpphpstr_replacephpphpstr_replaceampphplanguagephpgeshinewgeshisourcelanguagecodegeshi_highlightsourcephppathtruediecode.php (errno=0 - No error) in z:\home\fatcat\www\geshi\geshi.php on line 486


2. Не нашел обратной функции. Код будет нередактируемым?

Спустя 14 минут, 34 секунды (19.05.2009 - 18:05) Joker написал(а):
Цитата (FatCat @ 19.05.2009 - 14:50)
1. При первой же пробе вставки кода с ошибкой получил фатальную ошибку:


Странно... можтет ты чонить не так сделал?


Цитата (FatCat @ 19.05.2009 - 14:50)
2. Не нашел обратной функции. Код будет нередактируемым?


Непонел что ты имеешь в виду?


Спустя 7 минут, 15 секунд (19.05.2009 - 18:12) jetistyum написал(а):
о, чет глюк был какой-то ... хотел запостить, сказали что нет такого топика больше...
а тут опять есть... мистика..

Цитата
2. Не нашел обратной функции. Код будет нередактируемым?


либо при выдаче разукрашивать, либо каждый пост хранить в двух вариантах...




Цитата
Любопытно было посмотреть, как осуществляется подсветка. Но не настолько, чтобы совершать телодвижения по регистрации в буржуйнете


на счет phpclassess ты зря... это намбер уан ресурс пхп библиотек..... регистрация там должна быть.... я оттуда частенько что-то брал....

но на офсайте ГЕШИ можно все скачать без регистрации
а точнее на сурсфордже
http://sourceforge.net/project/showfiles.php?group_id=114997



Спустя 19 минут, 40 секунд (19.05.2009 - 18:32) Joker написал(а):
Цитата (jetistyum @ 19.05.2009 - 15:12)
либо при выдаче разукрашивать,


Я предпологал что все всегда пре выдаче разукрашивают....

Спустя 22 секунды (19.05.2009 - 18:32) FatCat написал(а):
Цитата (Joker @ 19.05.2009 - 18:05)
Странно... можтет ты чонить не так сделал?

Их демо-код отлично раскрасился. Вставил свой код, заведомо невалидный.


Цитата (jetistyum @ 19.05.2009 - 18:12)
либо при выдаче разукрашивать, либо каждый пост хранить в двух вариантах...

Я думаю, я не зря скачал.
Залез в кишки, там есть массивы слов и подстрок под раскраску.
Как будет время, попробую под наш движок переписать использование этих массивов. Раскрасить спанами, а на анконверте просто убивание всех спанов.

Спустя 44 минуты, 9 секунд (19.05.2009 - 19:16) Joker написал(а):
Цитата (FatCat @ 19.05.2009 - 15:32)
Вставил свой код, заведомо невалидный.


Поробуц тут тынц увидишь что норм красит и валидный и не валидный код. Скорее ты что то не так сделал.

Спустя 13 минут, 13 секунд (19.05.2009 - 19:29) jetistyum написал(а):
Какой ты шустрый, Joker smile.gif
уже прилепил smile.gif


Спустя 1 минута, 13 секунд (19.05.2009 - 19:30) twin написал(а):
Мы эту идею давно обкатываем. Я же говорю - можем поделиться.

Только красим мы на выходе, у FatCat'a своя система, он лучше в СЕО разбирается.

Спустя 5 минут, 54 секунды (19.05.2009 - 19:36) jetistyum написал(а):
twin, так это не GESHI?
это ваша разработка???

ЗЫ. только нужно добавить перенос строк.. в соответствии с введенным текстом (nl2br) а то у тебя встрочку все лепится:(




Спустя 12 минут, 55 секунд (19.05.2009 - 19:49) twin написал(а):
Он самый. Нафига чтото изобретать, сам говоришь. Шикарная весчь. Идея такая, что сделать легкую версию мануала, разжеванную. Потому что пугаются новички первоисточника. И там много на буржуйском еще. Вот сейчас как раз пишем мануал. Я предлагаю скооперироваться, чтоб в партнерской системе было как бы. У нас еще куча идей в разработке, если интересно, могу рассказать, только в служебном форуме.

Спустя 3 минуты, 53 секунды (19.05.2009 - 19:53) Joker написал(а):
А может вы меня пустите к служебному форуму)) если собретесь))

Спустя 2 минуты, 21 секунда (19.05.2009 - 19:56) jetistyum написал(а):
значит Геша рулит smile.gif, я просто не так понял,.... ну да ладно...

что на счет идей - создай топик wink.gif ... и подтянутся люди .

Спустя 3 минуты, 4 секунды (19.05.2009 - 19:59) FatCat написал(а):
Цитата (Joker @ 19.05.2009 - 19:16)
Поробуц тут тынц увидишь

Лучше ты попробуй на нашем движке с его препарсингом входящих... cool.gif


Цитата (twin @ 19.05.2009 - 19:30)
Только красим мы на выходе

Хм...
В принципе, можно подключить на фазе вывода.
Но тогда будет пытаться раскрашивать всё сообщение?
Или отпарсить только код, и его отдать под раскраску...
Хм...
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.