Python эквивалентно "php -s" - PullRequest
6 голосов
/ 18 марта 2009

Как вы можете знать или не знать, вы можете создать HTML-файл с подсветкой синтаксиса из исходного файла PHP, используя php -s .

Я знаю о синтаксическом маркере , который использует Stackoverflow, и это не совсем то, что я ищу. Я ищу что-то будет генерировать вывод HTML без Javascript.

Кто-нибудь знает что-то эквивалентное php - s для Python?

Ответы [ 4 ]

12 голосов
/ 18 марта 2009
$ pygmentize -O full -O style=native -o test.html test.py

Для установки Pygments :

$ easy_install Pygments

Вы можете использовать его как библиотеку.

from pygments import highlight
from pygments.lexers import guess_lexer
from pygments.formatters import HtmlFormatter

code = '#!/usr/bin/python\nprint "Hello World!"'
lexer = guess_lexer(code) # or just pygments.lexers.PythonLexer()
formatter = HtmlFormatter(noclasses=True, nowrap=True, lineseparator="<br>\n")
print highlight(code, lexer, formatter)

Выход:

<span style="color: #408080; font-style: italic">#!/usr/bin/python</span><br>
<span style="color: #008000; font-weight: bold">print</span> 
<span style="color: #BA2121">&quot;Hello World!&quot;</span><br>

(для ясности добавлены пробелы)

Как HTML:

#! / USR / бен / питон
Распечатать «Привет, мир!»

1 голос
/ 27 августа 2009

Я нашел Highlight at http://www.andre -simon.de как чрезвычайно хороший инструмент для этого. Это с открытым исходным кодом (хотя GPL!)

0 голосов
/ 18 марта 2009

, если вам нужно всего несколько файлов для преобразования в html-страницы и в Windows, вы можете использовать Notepad ++. Он поставляется (с последней версии) с плагином NppExport, который позволяет конвертировать исходный код в выделенный HTML и RTF (согласно вашей схеме раскраски). Конечно, он работает не только с python, но и с любым языком, который вы можете использовать в Notepad ++.

0 голосов
/ 18 марта 2009

Если у вас есть доступ к kwrite из KDE, вы можете экспортировать файл в формате HTML, который будет иметь ту же цветность, что и для редактирования. Это работает для всех языков.

...