Автор Тема: Syntax::Highlight::Perl  (Прочитано 3200 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн AnnA

  • Фанатка форума
  • Старожил
  • ****
  • Сообщений: 263
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Syntax::Highlight::Perl
« : 09 Декабря 2004, 14:02:18 »
Привет. :)
Ребят, поможите пож-ста, а? Никто не разбирался с таким модулем? Вот ссылка: http://search.cpan.org/~johnsca/Syntax-Highlight-Perl-1.0/lib/Syntax/Highlight/Perl.pm
#!/usr/bin/perl
use strict;
use 
Syntax::Highlight::Perl;

my $pages=\'
foreach $c (@k)
	
 { 
	
   my($g,$u,$n)=split(/\\x01/,$c); chomp ($n);
       my $lineprint =
       $doc=~$u ? qq~<img src="i/$g" alt="$n" />~ : qq~<a href="$u"><img src="i/$g" alt="$n" /></a>~ ;
print qq~
<tr><td>$lineprint</td></tr>~;
	
 }
print "</table>";
\';

print "Conten-Type: text/plain\\n\\n";

my $formatter = new Syntax::Highlight::Perl;
my $content  =  $formatter->format_string($pages);
print \'
\',\'==x\'x25,\'
\';
print \'<pre>\',$content,\'</pre>\';

exit;

честно выдаёт содержимое $pages... :)
ерунда, что выводимый код не раскрашен (не до того пока), он не заменяет знак html-тэга на соответствующий код: ну вот эти <> я имею ввиду(форум не даст написать корректно) и ествественно, что браузер честно пытается загрузить картинки из кода скрипта - "$n"
не? не знаете как его научить скобочки заменять, да еще и действительно "подсветку" кода делать?
чего-то я и.... не могу этого осмыслить. :confused:
пока-пока. :)

Оффлайн Phoinix

  • RW
  • Ветеран
  • *****
  • Сообщений: 1097
  • +0/-0
  • 2
    • Просмотр профиля
    • http://phoinix.ucoz.ru
Syntax::Highlight::Perl
« Ответ #1 : 09 Декабря 2004, 19:10:16 »
AnnA

Перед
my $content  =  $formatter->format_string($pages);

$formatter->set_start_format(Operator => \'\');
$formatter->set_end_format(Operator => \'<\\b>\');

Quote Instigator, Here-Doc Instigator, Code Terminators, Keywords, Built-in Functions, Subroutine: &ident, Subroutine: ident(, Variable, Built-in Variables, Whitespace, Character, Bareword / Label, Numbers, Operator, Symbol

Список элементов для форматирования...
AFAIK так...

Цитировать
он не заменяет знак html-тэга на соответствующий код: ну вот эти <> я имею ввиду(форум не даст написать корректно)

Гм... а ты что собственно "подсветить" хочешь? HTML или все таки Perl код?

P.S. Обычно, если не хватает документации и описания по модулю, самый верный результат - "распарсить" его самостоятельно и понять что он делает и как...

Оффлайн AnnA

  • Фанатка форума
  • Старожил
  • ****
  • Сообщений: 263
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Syntax::Highlight::Perl
« Ответ #2 : 09 Декабря 2004, 20:29:10 »
Phoinix :)
Я поняла мысль! ;) Спасибо!
я хочу перл-коду сделать html-подсветку(раскраску).
ну вот как на форумах раскрашивается код, если его пустить внутрь [пхп].....[/пхп]
ну вот пример:foreach $c (@k)
	
 { 
	
   
my($g<b>,</b>$u<b>,</b>$n)<b>=</b>split(/\\x01/<b>,</b>$c); chomp ($n);
       
my $lineprint <b>=</b>
       
$doc<b>=~</b>$u <b>?</bqq~<img src="i/$galt="$n/>~ <b>:</bqq~<a href="$u"><img src="i/$galt="$n/></a>~ ;
<
b>print</bqq~
<
tr><td>$lineprint</td></tr>~;
	
 }
<
b>print</b"</table>";

это выдал скрипт после:
$formatter->set_start_format(Operator => \'\');
$formatter->set_end_format(Operator => \'
\');
my $content  =  $formatter->format_string($pages);

получается, что я просто могу/должна задать просто свой стиль для каждого... оператора, например, как в вашем примере...
ёмкая, конечно, работёнка, но реализуемо. :)
блин. так вот там в чем фишка была.
нет чтоб в доке пример написать... так нет.. обидно.
пока-пока. :)

Оффлайн AnnA

  • Фанатка форума
  • Старожил
  • ****
  • Сообщений: 263
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Syntax::Highlight::Perl
« Ответ #3 : 09 Декабря 2004, 20:41:21 »
блин. тут чтоб голос добавить - еще постараться надо. :(
сейчас постараюсь. ;)
а там описания-то "с гулькин нос". вот. не хватило мне его. точно.
"распарсить" в смысле - открыть и поглядеть чего там да как, да?
там всё на "буржуйском" написано: "смотрю в книгу - вижу ... нос". ;) Вот и решила - дай думаю спрошу. А нет так - уж сама разбираться буду. И разобралась бы, но времени ведь тогда куда больше ушло бы. Спасибо, добрый человек. ;)
пока-пока. :)

Оффлайн AnnA

  • Фанатка форума
  • Старожил
  • ****
  • Сообщений: 263
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Syntax::Highlight::Perl
« Ответ #4 : 09 Декабря 2004, 20:57:16 »
а вот я и примерчик нашла в другой доке, правда:
Comment_Normal
Default is {color:#006699;font-style:italic;}
Comment_POD
Default is {color:#001144;font-family:garamond,serif;font-size:11pt;font-style:italic;}
Directive
Default is {color:#339999;font-style:italic;}
Label
Default is {color:#993399;font-style:italic;}
Quote
Default is {color:#0000aa;}
String
Default is {color:#0000aa;}
Subroutine
Default is {color:#998800;}
Variable_Scalar
Default is {color:#008800;}
Variable_Array
Default is {color:#ff7700;}
Variable_Hash
Default is {color:#8800ff;}
Variable_Typeglob
Default is {color:#ff0033;}
Whitespace
Not yet used
Character
Default is {color:#880000;}
Keyword
Default is {color:#000000; font-weight:bold;}
Builtin_Function
Default is {color:#000000; font-weight:bold;}
Builtin_Operator
Default is {color:#000000; font-weight:bold;}
Operator
Default is {color:#000000;}
Bareword
Default is {color:#33AA33;}
Package
Default is {color:#990000;}
Number
Default is {color:#ff00ff;}
Symbol
Default is {color:#000000;}
CodeTerm
Default is {color:#AA0000;}
DATA
Default is {color:#CCCCCC;}
пока-пока. :)

Оффлайн Phoinix

  • RW
  • Ветеран
  • *****
  • Сообщений: 1097
  • +0/-0
  • 2
    • Просмотр профиля
    • http://phoinix.ucoz.ru
Syntax::Highlight::Perl
« Ответ #5 : 10 Декабря 2004, 14:10:54 »
AnnA
Цитировать
Цитировать
Гм... а ты что собственно "подсветить" хочешь? HTML или все таки Perl код?

я хочу перл-коду сделать html-подсветку(раскраску).

Ты не правильно поняла мой вопрос:
#!/usr/bin/perl
use strict;
use 
Syntax::Highlight::Perl;

my $pages=\'
foreach $c (@k)
     {
       my($g,$u,$n)=split(/x01/,$c); chomp ($n);
       my $lineprint =
       $doc=~$u ? qq~<img src="i/$g" alt="$n" />~ : qq~<a href="$u"><img src="i/$g" alt="$n" /></a>~ ;
print qq~
<tr><td>$lineprint</td></tr>~;
     }
print "</table>";
\';

print "Conten-Type: text/plain\\n\\n";

my $formatter = new Syntax::Highlight::Perl;
my $content  =  $formatter->format_string($pages);
print \'
\',\'==x\'x25,\'
\';
print \'<pre>\',$content,\'</pre>\';

exit;

Что в твоем примере Perl код, а что HTML???
Потом ответь на вопрос что ты пытаешься раскрасить...
Тогда, я думаю, поймешь, почему символы < > не заменяются на &_lt; и &_gt;

Оффлайн AnnA

  • Фанатка форума
  • Старожил
  • ****
  • Сообщений: 263
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Syntax::Highlight::Perl
« Ответ #6 : 10 Декабря 2004, 15:36:23 »
хочу раскрасить содержимое переменной $pages. это же очевидно. разве нет? в ней есть как перл-код, так и хтмл. угм?
да ладно - перед тем, как скормить модулю подсветки переменную я сначала позаменяла регекспом знаки тэгов да и всё.
пока-пока. :)

Оффлайн AnnA

  • Фанатка форума
  • Старожил
  • ****
  • Сообщений: 263
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Syntax::Highlight::Perl
« Ответ #7 : 10 Декабря 2004, 15:43:32 »
блин.
почему нельзя нормально сказать, а? почему нельзя написать одну строчку примера в документации? А то "если это, - то то, а вот если так - это, если эдак тогда - да..." неудивительно потом, что все программисты слывут страшными занудами. блин. (что б не сказать крепче).
это "крик души". не обращайте внимания.
знаю, что сама виновата.
пока-пока. :)

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28