|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
12.10.2008, 19:57 | #1 |
Участник клуба
Регистрация: 07.07.2007
Сообщений: 1,518
|
Подсветка "Pascal" на PHP
Всем привет.
Я уже, как-то "поднимал" подобный вопрос о подсветке синтаксиса, но этот решил выделить в отдельную тему. Посмотрел немало скриптов для подсветки различных языков, но остался недоволен увиденным. Так как меня интересует только подсветка "Паскаля" [..code]...[../code], мне всегда хотелось написать для его подсветки !!!одну-единственную функцию, а не мощный скрипт, который будет тормозить систему. Мой сайт работает на движке Slaed (хотя я переписал больше половины "для себя"), поэтому и функцию подстраивал под него, но должна работать везде.... Все вопросы в комментариях... Вот сама функция (давайте доделаем, и будем все пользоваться...) Функция ниже... |
12.10.2008, 19:58 | #2 |
Участник клуба
Регистрация: 07.07.2007
Сообщений: 1,518
|
PHP код:
Последний раз редактировалось _SERGEYX_; 12.10.2008 в 22:17. |
12.10.2008, 23:34 | #3 |
Участник клуба
Регистрация: 12.10.2007
Сообщений: 1,204
|
А если все-таки разбить код на части ?
В архиве пример. Я оставил всю отладочную информацию. Разбор делается вызовом syntax_pas. Она вызывает syntax_all c настройками для паскаля. Поменяв настройки можно сменить язык. Сюда бы еще добавить массивы ключевых слов. syntax_all делит текст кода на части и для кажой части вызывается своя функция: set_syntax_comment() - для комментариев set_syntax_str() - для строк set_syntax_asm() - для кода asm set_syntax_normal() - для остального кода Функции не доделанные (для комментариев я сделал выделение наклонным шрифом). В них нужно сделать выделение синтаксиса. |
13.10.2008, 14:04 | #4 |
Участник клуба
Регистрация: 07.07.2007
Сообщений: 1,518
|
Спасибо. Попробую.
|
18.10.2008, 20:29 | #5 |
Участник клуба
Регистрация: 07.07.2007
Сообщений: 1,518
|
alexBlack, я, вроде, "домучил" модуль.
Образец подсветки можно посмотреть, например, здесь. А здесь лежит сам модуль. Там внутри readme-файл. В нем функция, которой я вызываю syntax_pas(). Подгонял для своего сайта, может что-то нужно переделать. И стили изменить на свои. И еще... Я так и не врубился как сделать ключевые слова без учета регистра. Не хочется писать в массив '/(\bstring\b)/','/(\bString\b)/'. А так, вроде, все ОК. Заменить пробел на &_n_b_s_p; не получилось, т.к. в тегах тоже произойдет замена <font class на font&_n_b_s_p;class, поэтому я поставил <_pre>...<_/pre>, удалив <_br />. Отпишись после просмотра... Последний раз редактировалось _SERGEYX_; 18.10.2008 в 21:06. |
19.10.2008, 00:07 | #6 |
Участник клуба
Регистрация: 12.10.2007
Сообщений: 1,204
|
---------------------
|
19.10.2008, 00:11 | #7 | |
Участник клуба
Регистрация: 12.10.2007
Сообщений: 1,204
|
Цитата:
По коду. Комментарии до конца строки - Вы совершенно верно заметили - у меня в коде была ошибка. Нужно так: Код:
Я не понял вот эту часть. Зачем обратная замена ? Код:
Вызов nl2br, похоже тоже нужно убрать: Код:
|
|
19.10.2008, 10:44 | #8 |
Участник клуба
Регистрация: 07.07.2007
Сообщений: 1,518
|
Код:
Код:
//********************** Позже... В прикрепленном файле все исправил, на случай, если кто скачать захочет... Последний раз редактировалось _SERGEYX_; 20.10.2008 в 09:56. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
"Наложение" картинок и их подсветка .. | crus | HTML и CSS | 3 | 04.07.2008 19:37 |
если пользователь наберет какой-то другой символ не "y" или "n" и нажмет enter, программа проигнорирует | skobets | Общие вопросы C/C++ | 2 | 03.06.2008 06:51 |
PHP как язык для обучения программированию "с нуля"? | DooM1k | Свободное общение | 10 | 31.03.2008 17:58 |
Кто-нибудь, напишите пожалуйста формулу на "Pascal" для этой задачи... | Andrei18 | Помощь студентам | 5 | 30.03.2007 15:45 |