Forum Webscript.Ru
Программирование => Perl => Тема начата: AnnA от 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~~ : qq~~ ;
print qq~
$lineprint |
~;
}
print "";
\';
print "Conten-Type: text/plain\\n\\n";
my $formatter = new Syntax::Highlight::Perl;
my $content = $formatter->format_string($pages);
print \'
\',\'==x\'x25,\'
\';
print \'\',$content,\'
\';
exit;
честно выдаёт содержимое $pages... :)
ерунда, что выводимый код не раскрашен (не до того пока), он не заменяет знак html-тэга на соответствующий код: ну вот эти <> я имею ввиду(форум не даст написать корректно) и ествественно, что браузер честно пытается загрузить картинки из кода скрипта -
не? не знаете как его научить скобочки заменять, да еще и действительно "подсветку" кода делать?
чего-то я и.... не могу этого осмыслить. :confused:
-
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. Обычно, если не хватает документации и описания по модулю, самый верный результат - "распарсить" его самостоятельно и понять что он делает и как...
-
Phoinix :)
Я поняла мысль! ;) Спасибо!
я хочу перл-коду сделать html-подсветку(раскраску).
ну вот как на форумах раскрашивается код, если его пустить внутрь [пхп].....[/пхп]
ну вот пример:foreach $c (@k)
{
my($g,$u,$n)=split(/\\x01/,$c); chomp ($n);
my $lineprint =
$doc=~$u ? qq~~ : qq~~ ;
print qq~
$lineprint |
~;
}
print "";
это выдал скрипт после:
$formatter->set_start_format(Operator => \'\');
$formatter->set_end_format(Operator => \'\');
my $content = $formatter->format_string($pages);
получается, что я просто могу/должна задать просто свой стиль для каждого... оператора, например, как в вашем примере...
ёмкая, конечно, работёнка, но реализуемо. :)
блин. так вот там в чем фишка была.
нет чтоб в доке пример написать... так нет.. обидно.
-
блин. тут чтоб голос добавить - еще постараться надо. :(
сейчас постараюсь. ;)
а там описания-то "с гулькин нос". вот. не хватило мне его. точно.
"распарсить" в смысле - открыть и поглядеть чего там да как, да?
там всё на "буржуйском" написано: "смотрю в книгу - вижу ... нос". ;) Вот и решила - дай думаю спрошу. А нет так - уж сама разбираться буду. И разобралась бы, но времени ведь тогда куда больше ушло бы. Спасибо, добрый человек. ;)
-
а вот я и примерчик нашла в другой доке, правда:
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;}
-
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~~ : qq~~ ;
print qq~
$lineprint |
~;
}
print "";
\';
print "Conten-Type: text/plain\\n\\n";
my $formatter = new Syntax::Highlight::Perl;
my $content = $formatter->format_string($pages);
print \'
\',\'==x\'x25,\'
\';
print \'\',$content,\'
\';
exit;
Что в твоем примере Perl код, а что HTML???
Потом ответь на вопрос что ты пытаешься раскрасить...
Тогда, я думаю, поймешь, почему символы < > не заменяются на &_lt; и &_gt;
-
хочу раскрасить содержимое переменной $pages. это же очевидно. разве нет? в ней есть как перл-код, так и хтмл. угм?
да ладно - перед тем, как скормить модулю подсветки переменную я сначала позаменяла регекспом знаки тэгов да и всё.
-
блин.
почему нельзя нормально сказать, а? почему нельзя написать одну строчку примера в документации? А то "если это, - то то, а вот если так - это, если эдак тогда - да..." неудивительно потом, что все программисты слывут страшными занудами. блин. (что б не сказать крепче).
это "крик души". не обращайте внимания.
знаю, что сама виновата.