Page 253 - 6734
P. 253
аналізатор Python
from pygments.formatters import HtmlFormatter # для
форматування у вигляді HTML
code = u'print "Hello World" # коментар' # Юнікод (!)
рядок Python коду
print highlight(code, PythonLexer(), HtmlFormatter())
# повертає проаналізований PythonLexer() та
відформатований HtmlFormatter() текст
#print HtmlFormatter().get_style_defs('.highlight') #
повертає текст стилю CSS
# все в одному файлі HTML
#print highlight(code, PythonLexer(),
HtmlFormatter(full=True))
# все в одному файлі HTML окрім стилю. Стиль окремим
файлом python.css
#print highlight(code, PythonLexer(),
HtmlFormatter(full=True,cssfile='python.css'))
# новий лексичний аналізатор на основі регулярних
виразів
from pygments.lexer import RegexLexer
from pygments.token import *
class MyLexer(RegexLexer):
tokens = {'root': [(r'[^#]+', Text),(r'#.*\n',
Comment),(r'\n.*', Text)]} # послідовність (рег.
вираз, токен)
print highlight(code, MyLexer(), HtmlFormatter())
<div class="highlight"><pre><span></span><span
class="k">print</span> <span class="s2">"Hello
World"</span> <span class="c1"># коментар</span>
</pre></div>
252