Есть ли Perl Syntax Highlighter (вывод в HTML), как в PHP GeSHi? - PullRequest
3 голосов
/ 25 декабря 2010

Большинство разработчиков PHP, вероятно, знакомы с подсветкой синтаксиса под названием " GeSHi ", которая принимает код, выделяет его с использованием HTML и CSS:

include('geshi.php');
$source = 'echo "hello, world!";
$language = 'php';
$path = 'geshi/';
$geshi = new GeSHi($source, $language, $path);
echo $geshi->parse_code();

GeSHi Поддерживает широкий диапазон языков .

Интересно, есть ли подобный модуль для Perl?

Ответы [ 5 ]

7 голосов
/ 25 декабря 2010
  1. В Perl есть порт Kate Система подсветки: Синтаксис :: Highlight :: Engine :: Kate , который, кажется, несколько близок к тому, что вам нужно,Похоже, что это часть Padre .

  2. У вас также есть опция подсветки на стороне клиента HTML (логика, очевидно, JS), такая как код Googleprettifyer

  3. Два хороших списка механизмов подсветки синтаксиса:

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

1 голос
/ 25 декабря 2010

У меня были очень хорошие результаты с пакетом PPI :: HTML .Он использует PPI для анализа Perl перед преобразованием текста в HTML.

1 голос
/ 25 декабря 2010

Вы также можете рассмотреть это для подсветки синтаксиса на стороне клиента.http://alexgorbatchev.com/SyntaxHighlighter/

0 голосов
/ 09 января 2012

Вы всегда можете написать небольшой php-скрипт, чтобы GeSHi можно было использовать из командной строки, а затем вызвать его в вашем perl-скрипте.
Я сделал это для gitweb, чтобы навсегда оставить svn (и websvn).

0 голосов
/ 26 декабря 2010

Pure Perl: Синтаксис :: Highlight :: Engine :: Kate (есть плагин Kate для Padre IDE).

Оболочки для библиотек C: Синтаксис :: Highlight :: Universal, Синтаксис :: SourceHighlight.

Использование внешних инструментов: Text :: VimColor, Text :: EmacsColor.

Также на CPAN есть много одноязыковых маркеров.

...